您現(xiàn)在的位置:首頁 >關(guān)于我們 >行業(yè)新聞 >如何配置FTP服務(wù)器 wu-ftp

如何配置FTP服務(wù)器 wu-ftp

時間:2007年5月2日
前言:
在眾多的網(wǎng)絡(luò)應(yīng)用中,FTP(File Transfer porotocol)有著非常重要的地位。在Internet中一個十分重要的資源就是軟件資源。而各種各樣的軟件資源大多數(shù)都是放在FTP服務(wù)器中的?梢哉f,FTP與WEB服務(wù)幾乎占據(jù)了整個Internet應(yīng)用的80%以上。
FTP服務(wù)可以根據(jù)服務(wù)對象的不同分為兩類:一類是系統(tǒng)FTP服務(wù)器,它只允許系統(tǒng)上的合法用戶使用;另一類是匿名FTP服務(wù)器,Anonymous FTP Server,它使用任何人都可以登錄到FTP服務(wù)器上去獲取文件。

一、選擇和安裝FTP服務(wù)器軟件

如果你在安裝LINUX系統(tǒng)的時候,在選擇啟動進(jìn)程的時候選擇了“ftpd”這一項的話,安裝完LINUX系統(tǒng)后,它已經(jīng)將一個默認(rèn)的FTP服務(wù)器安裝到系統(tǒng)中去了。我們已經(jīng)可以利用它來實現(xiàn)系統(tǒng)FTP服務(wù)器的功能了。我們只需在此基礎(chǔ)上根據(jù)我們的需要進(jìn)行一些個性化設(shè)定就可以了。
在絕大多數(shù)的LINUX發(fā)行版本中都選用的是WashingtonUniversity FTP,它是一個著名的FTP服務(wù)器軟件,一般簡稱為wu-ftp。它功能強大,能夠很好地運行于眾多的UNIX操作系統(tǒng),例如:IBM AIX、FreeBSD、HP-UX、NeXTstep、Dynix、SunOS、Solaris等。所以Internet上的FTP服務(wù)器,一大半以上采用了它。wu-ftp擁有許多強大的功能,很適于吞吐量較大的FTP服務(wù)器的管理要求:
1) 可以在用戶下載文件的同時對文件做自動的壓縮或解壓縮操作;
2) 可以對不同網(wǎng)絡(luò)上的機器做不同的存取限制;
3) 可以記錄文件上載和下載時間;
4) 可以顯示傳輸時的相關(guān)信息,方便用戶及時了解目前的傳輸動態(tài);
5) 可以設(shè)置最大連接數(shù),提高了效率,有效地控制了負(fù)載。

二、wu-ftp的組成
安裝了wu-ftp后,你將在/bin目錄下看到以下五個可執(zhí)行文件:

ftpd FTP服務(wù)器程序
ftpshut 用于關(guān)閉FTP服務(wù)器程序
ftpcount 顯示目前在線人數(shù)
ftpwho 查看目前FTP服務(wù)器的連接情況
ckconfig 檢查FTP服務(wù)器的設(shè)置是否正確

除了這些可執(zhí)行文件以外,它還在/etc和/var目錄下生成了七個配置文件:

/etc/ftpusers
/etc/ftpaccess
/var/run/ftp.pids
/etc/ftpconversions
/var/log/xferlog
/etc/ftpgroups
/etc/ftphosts

系統(tǒng)安裝了wu-ftp后,會建立一個特殊的用戶ftp,并在/home目錄下建立了一個ftpd目錄,當(dāng)用戶以匿名登錄上來時,將會自動定位于這個目錄下。在這個目錄下一般會建立幾個子目錄。

/home/ftpd/bin 存放一些供FTP用戶使用的可執(zhí)行文件
/home/ftpd/etc 存放一些供FTP用戶使用的配置文件
/home/ftpd/pub 存放供下載的信息
/home/ftpd/incoming 存放供上載信息的空間

三、wu-ftp的配置
1. 查看、修改/etc/inetd.conf文件
/etc/inetd.conf文件是LINUX系統(tǒng)的超級服務(wù)器inetd的配置文件。它負(fù)責(zé)監(jiān)聽多個TCP/IP端口。當(dāng)它收到請求,就根據(jù)配置文件派生一個相應(yīng)的服務(wù)器。通過使用超級服務(wù)器,其他服務(wù)就可以只在需要時才派生,從而大大節(jié)省了系統(tǒng)資源。而wu-ftp就是利用超極服務(wù)器inetd來監(jiān)聽請求的。當(dāng)超級服務(wù)器inetd收到了客戶端的FTP請求時,就根據(jù)配置文件打開一個FTP服務(wù)進(jìn)程。所以我們?nèi)绻褂脀u-ftp,就必須確認(rèn)在超級服務(wù)器inetd的配置文件inetd.conf中有這樣一句:

ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd

以便當(dāng)超級服務(wù)器收到FTP請求的時候,能夠派生一個wu-ftp的FTP服務(wù)進(jìn)程。(注:要確認(rèn)是否有這樣一行時,可以使用文件內(nèi)容查找命令來確認(rèn):

cat /etc/inetd.conf | grep ftp

如果沒有,則用手工加入或手工修改。
2. wu-ftpd的命令選項
wu-ftpd就是wu-ftp的服務(wù)進(jìn)程。它可以不帶參數(shù)執(zhí)行,也可以帶參數(shù)執(zhí)行。下面簡單介紹一下wu-ftpd的執(zhí)行參數(shù)。
-d 當(dāng)FTP服務(wù)器出錯時,將錯誤入系統(tǒng)的syslog中;
-l 將每次FTP客戶端進(jìn)行連接的入系統(tǒng)的syslog中;
-t 設(shè)置FTP客戶端連接幾分鐘無操作就切斷連接;
-a 使wu-ftp使用/etc/ftpaccess的設(shè)定;
-A 使wu-ftp不使用/etc/ftpaccess的設(shè)定;
-L 將FTP客戶端連線后所執(zhí)行的程序記錄在系統(tǒng)的syslog中;
-I 將FTP客戶端上載文件的日志記錄在/usr/adm.xferlog文件中;
-o 將FTP客戶端下載文件的日志記錄在/usr/adm/xferlog文件中。
通過對以上參數(shù)的理解,我們建議,將上面系統(tǒng)安裝時的那條默認(rèn)配置改為:

ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd –a –I

3.提供自動壓縮、解壓縮的功能
如果想讓FTP服務(wù)器有自動壓縮、解壓縮的功能,必須先將一些壓縮、解壓縮的命令文件如tar、gzip、gunzip、compress、uncompress等命令文件拷貝到/home/ftpd/bin目錄下。
4. 關(guān)于/etc/ftpaccess的設(shè)置
這個配置文件是FTP服務(wù)器上最重要的配置文件,它直接關(guān)系到你的FTP服務(wù)器能否正常工作,還有許多權(quán)限上的設(shè)置。下面是一個典型的配置實例。

loginfails 3
class local real *
class remote anonymous guest *
limit remote 100 Any /etc/ftpd/toomany.msg
message /etc/ftpd/welcome.msg login
compress yes local remote
tar yes local remote
private yes
passwd-check rfc822 warn
log commands real
log transfer anonymous guest inbound outbound
log transfer real inbound
shutdown /etc/ftpd/shut.msg
delete no anonymous,guest
overwrite no anonymous,guest
rename no anonymous
chmod no anonymous,guest
umask no anonymous
upload /home/ftpd * no
upload /home/ftpd /bin no
upload /home/ftpd /etc no
upload /home/ftpd /pub yes real 0644 dirs
upload /home/ftpd /incoming yes real guest anonymous 0644 dirs
alias in /incoming
email guest@xxx.net
email guest@yyy.net
deny *.com.tw /etc/ftpd/deny.msg

下面我們逐句進(jìn)行講解,并給出每條設(shè)置的含義,以便大家觸類旁通,以便根據(jù)自己FTP服務(wù)器的具體情況進(jìn)行合理的設(shè)置。
1. 格式:loginfails [次數(shù)]
功能:設(shè)定當(dāng)用戶登錄到FTP服務(wù)器時,允許用戶輸錯密碼的次數(shù)。
實例:loginfails 3:密碼輸入錯誤三次就切斷連接。
2. 格式:class [類名] [real/guest/anonymous] [IP地址]
功能:這個指令的功能設(shè)定FTP服務(wù)器上用戶的類別。并可對客戶端的IP地址進(jìn)行限制,允許某部分的IP地址或全部的IP地址訪問。而在FTP服務(wù)器上的用戶基本上可以分為以下三類:
real 在該FTP服務(wù)器有合法帳號的用戶;
guest 有記錄的匿名用戶;
anonymous 權(quán)限最低的匿名用戶
實例:class local real *:定義一個名為local的類,它包含了在任何地方登錄(*代表所有IP地址)的real用戶。
class remote anonymous guest *:定義一個名為remote的類,它包含了在任何地方登錄的anonymous用戶和guest用戶。
3. 格式:limit [類別] [人數(shù)] [時間] [文件名]
功能:這個指令的功能為設(shè)置指定的時間內(nèi)指定的類別允許連接的指定人數(shù)上限。當(dāng)達(dá)到人數(shù)上限的時候,顯示指定文件的內(nèi)容。
實例:limit remote 100 Any /etc/ftpd/toomany.msg:在任何時間內(nèi),remote類的訪問用戶達(dá)到100人時,將不再允許無法產(chǎn)生新的連接,當(dāng)?shù)?01位客戶要連接時,連接將失敗,并象用戶出示文件/etc/ftpd/toomany.msg的內(nèi)容。
4. 格式:message [文件名稱] [指令]
功能:當(dāng)用戶執(zhí)行所指定的指令時,系統(tǒng)將指定的文件內(nèi)容顯示出來。
實例:message /etc/ftpd/welcome.msg login:當(dāng)用戶執(zhí)行l(wèi)ogin命令時,也就是登錄到FTP服務(wù)器上的時候,系統(tǒng)將顯示文件/etc/ftpd/welcome.msg的內(nèi)容。
5. 格式:compress [yes/no] [類別]
功能:設(shè)置哪一個類別的用戶可以使用compress(壓縮)功能。
實例:compress yes local remote:允許local和remote兩個類別的用戶都能使用 compress(壓縮)功能。
6. 格式:tar [yes/no] [類別]
功能:設(shè)置哪一個類別的用戶可以使用tar(歸檔)功能。
實例:tar yes local remote:允許local和remote兩類的用戶都能使用tar功能。
7. 格式:private [yes/no]
功能:設(shè)定是否支持群組對文件的取用。
實例:private yes:支持群組對文件的取用。
8. 格式:passwd-check [none/trivial/rfc822] [enforce/warn]
功能:設(shè)定對匿名用戶anonymous的密碼使用方式。
none 表示不做密碼驗證,任何密碼都可以登錄;
trival 表示只要輸入的密碼中含有字符“@”就可以登錄;
rfc822 表示密碼一定要符合RFC822中所規(guī)定的E-Mail格式才能登錄;
enfore 表示輸入的密碼不符合以上指定的格式就不讓登錄;
warn 表示密碼不符合規(guī)定時只出現(xiàn)警告信息,仍然能夠登錄。
實例:passwd-check rfc822 warn:希望能夠得到符合規(guī)定的E-Mail作為密碼,但如果不是,也允許登錄。
9. 格式:log command [real/guest/anonymous]
功能:設(shè)置哪些用戶登錄后的操作記錄在文件/usr/adm/xferlog中。
實例:log command real:當(dāng)real用戶登錄后,將他的操作記錄下來。由于其它用戶權(quán)限較低,所以操作不會引起太大的安全隱患,所以一般只需記下real用戶的操作就可以了。
10. 格式:log transfers [real/guest/anonymous] [inbound/outbound]
功能:設(shè)置哪些用戶的上載(inbound)和下載(outbound)操作做日志。
實例:log transfer anonymous guest inbound outbound:對于匿名用戶要更加的關(guān)注它們的文件操作,所以無論上載、下載都進(jìn)行記錄。
log transfer real inbound:對于合法用戶則只記錄他的上載記錄。
11. 格式:shutdown [文件名]
功能:FTP服務(wù)器關(guān)閉的時間可以設(shè)置在后面所指定的文件中,當(dāng)設(shè)置的時間一到,便無法登錄FTP服務(wù)器了,要恢復(fù)的話只有將這個文件刪掉。而這個文件必 須由指令/bin/ftpshut來生成。
實例:shutdown /etc/ftpd/shut.msg
12. 格式:delete [yes/no] [real/anonymous/guest]
功能:設(shè)置是否允許指定用戶使用delete命令刪除文件。默認(rèn)是允許。
實例:delete no anonymous,guest:為了更好地管理FTP服務(wù)器,一般情況下,我們不允許匿名用戶執(zhí)行delete命令。
13. 格式:overwrite [yes/no] [real/anonymous/guest]
功能:設(shè)置是否允許指定用戶覆蓋同名文件。默認(rèn)是允許。
實例:overwrite no anonymous,guest:為了更好地管理FTP服務(wù)器,一般情況下,我們不允許匿名用戶覆蓋同名文件。
14. 格式:rename [yes/no] [real/anonymous/guest]
功能:設(shè)置是否允許指定用戶使用rename命令來為文件改名。默認(rèn)是允許。
實例:delete no anonymous:為了更好地管理FTP服務(wù)器,一般情況下,我們不允許匿名用戶執(zhí)行rename命令改變文件名。而對有記錄的匿名用戶則適當(dāng)?shù)姆艑?允許他們使用改名命令。
15. 格式:chmod [yes/no] [real/anonymous/guest]
功能:設(shè)置是否允許指定用戶使用chmod命令更改文件權(quán)限。默認(rèn)是允許。
實例:delete no anonymous,guest:為了更好地管理FTP服務(wù)器,一般情況下,我們不允許匿名用戶執(zhí)行chmod命令更改文件權(quán)限。
16. 格式:umask [yes/no] [real/anonymous/guest]
功能:設(shè)置是否允許指定用戶使用umask命令。默認(rèn)是允許。
實例:delete no anonymous:為了更好地管理FTP服務(wù)器,一般情況下,我們不允許匿名用戶執(zhí)行umask命令。
17. 格式:upload [根目錄] [上載目錄] [yes/no] [用戶] [權(quán)限] [dirs/nodirs]
功能:對可以上載的目錄進(jìn)行更加詳細(xì)的設(shè)置。
實例:upload /home/ftpd * no:表示在子目錄/home/ftpd下不允許上載;
upload /home/ftpd /bin no:表示在子目錄/home/ftpd/bin下不允許上載;
upload /home/ftpd /etc no:表示在子目錄/home/ftpd/etc下不允許上載;
upload /home/ftpd /pub yes real 0644 dirs:允許用服務(wù)器上的合法用戶在子目錄/home/ftpd/pub目錄下能上載權(quán)限為0644(也就是-rw-r--r--)的文件,而且在這個目錄下可以新建子目錄。
upload /home/ftpd /incoming yes real guest anonymous 0644 dirs:允許所有的用戶在子目錄/home/ftpd/incoming下能上載權(quán)限為0644的文件,而且在這個目錄下可以新建子目錄。
18. 格式:alias [目錄別名] [目錄名]
功能:給指定目錄設(shè)置一個別名,在切換目錄時就可以使用較短的目錄別名。
實例:alias inc: /incoming:為子目錄incoming設(shè)置一個別名inc:。
19. 格式:email [guest的E-Mail地址]
功能:只要將某些E-Mail地址設(shè)置在這個地方,那么這些用戶登錄到FTP服務(wù)器時,他的身份將為guest,一般權(quán)限比real低一些,比anonymous高。
實例:email guest@xxx.net email guest@yyy.net:這里僅是一個示例,實際上可 以包含多個符合規(guī)范的E-Mail地址。
20. 格式:deny [IP地址/域名] [說明文件]
功能:這個設(shè)置可以限制哪一些IP地址或域名的用戶無法登入FTP服務(wù)器。
實例:deny *.com.tw /etc/ftpd/deny.msg:設(shè)置凡是域名是以“.com.tw”結(jié)束的域名,都禁止其訪問。而將/etc/ftpd/deny.msg的內(nèi)容顯示給用戶看。

5. 設(shè)置/etc/ftpuser,禁止某些用戶登錄
有時我們需要禁止一些用戶使用FTP服務(wù)。其實這個設(shè)置是十分簡單的,只需要將要禁止的用戶帳號寫入文件/etc/ftpuser中。由于從系統(tǒng)的安全考慮,一般我們是不希望權(quán)限過大的用戶和一些與命令名相同的用戶進(jìn)入FTP服務(wù)器。所以在缺省的配置中,一般以下用戶已經(jīng)被列入了“黑名單”。

root
uucp
news
bin
adm
nobody
lp
sync
shutdown
halt
mail

6. 設(shè)置/etc/ftphosts,禁止某些來自指定機器上的登錄如果你需要拒絕來自某些主機的登錄,一種方法就是在/etc/ftpaccess中設(shè)置deny命令,另一種更加簡單的方法就是在/etc/ftphosts中寫入你要禁止的主機的IP地址或域名。
7. 使新的配置生效
到此為止,我們已經(jīng)能夠根據(jù)自己的需要對FTP服務(wù)器配置進(jìn)行必要的修改和調(diào)整。而讓我們重新配置后,就必須使其生效。一般的,對/etc/ftpaccess的配置是直接作用于設(shè)置后的下一次FTP服務(wù)進(jìn)程。而其它的則要對inetd進(jìn)程重新啟動。

5.4 wu-ftp相關(guān)的其他一些命令的使用
5.4.1 連接數(shù)統(tǒng)計命令ftpcount
我們可以使用ftpcount命令十分清楚地統(tǒng)計出當(dāng)前連接到FTP服務(wù)器上的用戶數(shù)目,并且同時列出上限。命令輸出如下所示:

Service class local 0 Users(20maximum)
Service class remote 5 Users(100maximum)

5.4.2 在線用戶查看命令ftpwho
我們可以使用ftpwho命令十分清楚地列出當(dāng)前連接的用戶的詳細(xì)情況。
5.4.2 FTP關(guān)閉文件生成命令ftpshut
我們可以使用ftpshut命令生成一個在/etc/ftpaccess中設(shè)置的shut.msg文件,用于關(guān)機設(shè)定。ftpshut命令的格式為:

Ftpshut <-l min> <-d min> time <說明>

-l 這個參數(shù)設(shè)定在關(guān)閉FTP服務(wù)器功能前多少分鐘時停止用戶的連接;
-d 這個參數(shù)設(shè)定在關(guān)閉FTP服務(wù)器功能前多少分鐘時切斷用戶連接;
time 指定關(guān)閉FTP服務(wù)器的時間。例如6:20分則寫為0620;

Copyright© 2004-2020 河南海騰電子技術(shù)有限公司 版權(quán)所有   經(jīng)營性ICP/ISP證 備案號:B1-20180452   豫公網(wǎng)安備 41019702002018號    電子營業(yè)執(zhí)照