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