Linux下FTP的配置與應(yīng)用
FTP服務(wù)是Internet上的標(biāo)準(zhǔn)服務(wù)之一,用來在網(wǎng)絡(luò)上傳輸文件。在linux系統(tǒng)中,通常用wu-ftpd來實(shí)現(xiàn)該服務(wù)(www.wu-ftpd.org)。
通常,wu-ftpd提供三種ftp登錄形式:
1、anonymous ftp
2、real ftp
3、guest ftp
anonymous ftp 應(yīng)用最廣泛的一種ftp,通常,用戶以anonymous為用戶名,以電子郵件地址為密碼進(jìn)行登錄。
real ftp 就是以真實(shí)的用戶名和密碼進(jìn)行登錄,登錄以后,用戶可以訪問整個(gè)目錄結(jié)構(gòu)。通常認(rèn)為,real ftp 能對(duì)系統(tǒng)安全構(gòu)成極大威脅,所以,除非萬不得以,應(yīng)盡量避免使用real ftp。
guest ftp 也是real ftp 的一種形式,不同之處在于,一個(gè)geust登錄后,他就不能訪問除宿主目錄以外的內(nèi)容。
在wu-ftpd中,是通過特定的配置文來控制ftp 訪問的,主要的配置文件有:
/etc/ftpaccess
/etc/ftpusers
/etc/ftphosts
/etc/ftpconversions
等等,下面我們就分別來講講這些配置文件。
ftpaccess是主要的ftp配置文件,在該文件內(nèi)你可以實(shí)現(xiàn)對(duì)ftp各方面的控制,由于控制命令名目繁多,我們將以wu-ftpd的2.6版本為例分幾個(gè)部分來講,相關(guān)文檔可見wu-ftpd手冊(cè)。
1、訪問控制
class [...]
說明:該命令用于定義用戶類,定義用戶類的目的是為了方便對(duì)服務(wù)的控制。其中:
為類名,為一字符串;
可以以逗號(hào)分隔的"anonymous"、"guest"、"real"關(guān)鍵字之一,real說明該用戶類中的用戶可以用真實(shí)的賬號(hào)來訪問ftp,anonymous說明該用戶類中的用戶使用匿名ftp,guest說明該用戶類中的用戶用guest賬號(hào)訪問ftp。
定義該用戶類源ip地址或域名,可以用以下定義方法:ip地址:子網(wǎng)掩碼,或address/cidr。這里也可以指定一個(gè)文件,該文件包含了該用戶類源ip地址的定義。之前還可以用驚嘆號(hào)表示除以外的地址類。
例子:
class anon anonymous *
class mng real 210.221.80.0/24
class user real !domainname.com
第一條定義了anon用戶類,為匿名用戶,可以是來自任何地方。
第二條定義了mng用戶類,為真實(shí)用戶,來自210.221.80網(wǎng)段。
第三條定義了user用戶類,為真實(shí)用戶,可以是除domainname.com以外的任何地址。
我們接著來看ftpaccess的其他配置。
deny
說明:拒絕源地址符合的訪問,同時(shí)顯示文件的內(nèi)容。也可以是某一文件,該文件包含了拒絕的ip地址類的定義??梢杂?!nameserverd來拒絕沒有注冊(cè)域名的客戶端請(qǐng)求。
如:
deny !nameserverd /home/ftp/etc/noname.msg
拒絕沒有注冊(cè)域名的客戶端請(qǐng)求,并且顯示noname.msg的內(nèi)容。
guestgroup [...]
guestuser [...]
realgroup [...]
realuser [...]
說明:如果客戶端為中的真實(shí)用戶(real user)則該客戶端被當(dāng)作guest用戶處理;如果客戶端為真實(shí)用戶則該客戶端也被當(dāng)作guest用戶處理;realgroup和realuser把非匿名連接視為真實(shí)用戶連接。和也可以用用戶id和組id代替。
比如:guestuser *
realgroup admin
表示除了admin組以外的任何非匿名連接視為guest用戶連接,admin仍舊視為真實(shí)用戶連接。
nice []
說明:如果為中的用戶連接的話,則調(diào)整ftpd進(jìn)程的nice值為中指定的值。
keepalive
說明:是否在會(huì)話過程中保持?jǐn)?shù)據(jù)通道的激活狀態(tài)。
timeout accept
timeout connect
timeout data
timeout idle
timeout maxidle
timeout RFC931
說明:設(shè)置各種超時(shí)。
accept設(shè)置ftpd服務(wù)等待被動(dòng)數(shù)據(jù)通道連接請(qǐng)求的超時(shí)。(缺省為120秒)
connect設(shè)置ftpd服務(wù)標(biāo)準(zhǔn)數(shù)據(jù)通道連接請(qǐng)求的超時(shí)。(缺省為120秒)
data設(shè)置ftpd服務(wù)等待客戶端在數(shù)據(jù)通道上多長時(shí)間沒有動(dòng)作為超時(shí)。(缺省為1200秒)
idle 設(shè)置ftpd服務(wù)等待客戶端用戶在命令通道上多長時(shí)間沒有動(dòng)作為超時(shí)。(缺省為900秒)
maxidle 設(shè)置用戶可以在客戶端設(shè)置的更長的空閑時(shí)間的上限。(缺省為10秒)
RFC931 設(shè)置一個(gè)RFC931協(xié)議會(huì)話的最長時(shí)間。為零則取消對(duì)該協(xié)議的支持。
tcpwindows []
說明:設(shè)置tcp 窗口的大小。一般linux系統(tǒng)缺省值為6。如果網(wǎng)絡(luò)連接情況較好可以增大該值,否則,應(yīng)減小之。
我們接著來看ftpaccess的其他配置。
file-limit [] []
說明:用來限制在給定類中的用戶可以傳輸?shù)奈募?shù)目??煞譃檫M(jìn)、出、合計(jì)三類。如果沒有指定類,則改選項(xiàng)將應(yīng)用于所有沒有傳輸文件限制的類??蛇x參數(shù)raw用來限制總的流量。
byte-limit [] []
說明:說明:用來限制在給定類中的用戶可以傳輸?shù)臄?shù)據(jù)流量??煞譃檫M(jìn)、出、合計(jì)三類。如果沒有指定類,則改選項(xiàng)將應(yīng)用于所有沒有傳輸文件限制的類。可選參數(shù)raw用來限制總的流量。
limit-time {*|anonymous|guest}
說明:用于限制一個(gè)ftp會(huì)話的總時(shí)間。缺省值為無限,真實(shí)用戶不受限制。
guestserver []
說明:控制那一部主機(jī)用來提供anonymous或guest訪問。如果沒有指定,則拒絕所有anonymous或guest訪問。
limit
說明:控制在一定的時(shí)間內(nèi),可以訪問ftp的指定),當(dāng)達(dá)到最大限制數(shù)時(shí),顯示的內(nèi)容。
格式有些復(fù)雜:星期天到星期六分別為Su、Mo、Tu、We、Th、Fr、Sa,時(shí)間采用軍用格式,在小時(shí)和分鐘間沒有冒號(hào),范圍用破折號(hào)指定。
如:
limit anon 20 MoTuWe,Th0800-1730 /home/ftp/etc/topmsg
表示在星期一、星期二、星期三的全天,星期四的上午八點(diǎn)到下午五點(diǎn)半這段時(shí)間內(nèi),對(duì)anon類的用戶登錄數(shù)目限制為20,達(dá)到這一限制時(shí)顯示topmsg的內(nèi)容。
noretrieve [absolut|relative][class=]...[-]
說明:拒絕傳送某些文件。你可以指定該文件的絕對(duì)路徑,也可以只給出文件名。如果只給出文件名,則將拒絕傳送所有符合該文件名的文件。
如:
noretrieve /etc/group passwd anon
將拒絕向anon類傳送etc目錄下的group文件及任何目錄下的passwd文件。
allow-retrieve [absolut|relative] [class=]...[-]
說明:定義允許傳送的文件,即使被noretrieve拒絕。
loginfails
說明:當(dāng)?shù)卿浭〉拇螖?shù)達(dá)到時(shí),顯示“repeated login failures"并終止ftp會(huì)話。
private
說明:是否允許用戶利用SITE GROUP和SITE GPASS命令進(jìn)入需要密碼的特權(quán)用戶組中。
在這里要引用到/etc/ftpgroups文件,該文件的格式為:
access_groupname:encrypted_passard:real_group
access_groupname為用來引用特殊組的名字,encrypted_passard是該組的密碼, real_group為/etc/group中實(shí)際被引用的組。
2、顯示信息控制
指當(dāng)用戶連接到ftp或做出某些特定行為(如改變目錄)時(shí),向用戶顯示的特定信息。
greeting full|breif|terse
greeting text
說明:定義再用戶登錄前向用戶顯示的信息。
full 向用戶顯示主機(jī)名和ftp服務(wù)程序的版本,為缺省設(shè)置。
breif 只向用戶顯示主機(jī)名。
terse 僅僅顯示“FTP server ready"
text 可以指定你所想顯示的任何信息。
從安全角度出發(fā),建議用terse.
banner
說明:在用戶鍵入用戶名和密碼前向用戶顯示的信息。
為想要顯示的文件的完整路徑名。
如:banner /home/ftp/etc/.banner
hostname
說明:定義在greeting時(shí),向用戶顯示的主機(jī)名。
email
說明:定義網(wǎng)絡(luò)管理員的email地址。
message { {...}}
說明:當(dāng)用戶登錄或更改目錄時(shí),向用戶顯示所定義的文件的內(nèi)容。
可以是LOGIN,說明當(dāng)用戶登錄成功時(shí)向用戶顯示信息。
也可以是CWD=,即當(dāng)用戶更改目錄到時(shí)顯示信息。
為了避免迷惑用戶,該信息將只顯示一次。
當(dāng)anonymous用戶觸發(fā)message時(shí),必須相對(duì)于ftp主目錄。
在該文件中可以包含一些特殊的參數(shù)(完整參數(shù)請(qǐng)參考手冊(cè)):
%T 本地時(shí)間
%F 目錄的可用空間
%C 當(dāng)前的工作目錄
%E 管理員的email地址
%R 遠(yuǎn)程主機(jī)名
%L 本地主機(jī)名
%U 用戶登錄時(shí)的用戶名
%M 在該用戶類中最大的允許登錄數(shù)
%N 該用戶類的再線人數(shù)
readme {}
說明:基本用法和功能同message.
3、日志控制
log commands
說明:對(duì)特定的typelist的任何命令都進(jìn)行日志。
typelist可以是real、anonymous、guest 中的一種。
log transfers
說明:對(duì)特定的typelist的文件傳輸進(jìn)行日志。
typelist同上,direction可以是inbound或oubound兩種。
如:
log transfers real inbound,outbound
對(duì)r
關(guān)鍵詞:Linux,FTP
閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!
- 1
- 1
- 1
- 1
- 1
- 1