在眾多的網絡應用中,FTP(File Transfer porotocol)有著非常重要的地位。在Internet中一個十分重要的資源就是軟件資源。而各種各樣的軟件資源大多數都是放在FTP服務器中的。可以說,FTP與WEB服務幾乎占據了整個Internet應用的80%以上。
FTP服務可以根據服務對象的不同分為兩類:一類是系統FTP服務器,它只允許系統上的合法用戶使用; 另一類是匿名FTP服務器,Anonymous FTP Server,它使用任何人都可以登錄到FTP服務器上去獲取文件。
一、選擇和安裝FTP服務器軟件
如果你在安裝LINUX系統的時候,在選擇啟動進程的時候選擇了“ftpd”這一項的話,安裝完LINUX系統後,它已經將一個默認的FTP服務器安裝到系統中去了。我們已經可以利用它來實現系統FTP服務器的功能了。我們只需在此基礎上根據我們的需要進行一些個性化設定就可以了。
在絕大多數的LINUX發行版本中都選用的是WashingtonUniversity FTP,它是一個著名的FTP服務器軟件,一般簡稱為wu-ftp。它功能強大,能夠很好地運行於眾多的UNIX操作系統,例如:ibm AIX、FreeBSD、hp-UX、NeXTstep、Dynix、SunOS、Solaris等。所以Internet上的FTP服務器,一大半以上采用了它。wu-ftp擁有許多強大的功能,很適於吞吐量較大的FTP服務器的管理要求:
1) 可以在用戶下載文件的同時對文件做自動的壓縮或解壓縮操作;
2) 可以對不同網絡上的機器做不同的存取限制;
3) 可以記錄文件上載和下載時間;
4) 可以顯示傳輸時的相關信息,方便用戶及時了解目前的傳輸動態;
5) 可以設置最大連接數,提高了效率,有效地控制了負載。
二、wu-ftp的組成
安裝了wu-ftp後,你將在/bin目錄下看到以下五個可執行文件:
ftpd FTP服務器程序
ftpshut 用於關閉FTP服務器程序
ftpcount 顯示目前在線人數
ftpwho 查看目前FTP服務器的連接情況
ckconfig 檢查FTP服務器的設置是否正確
除了這些可執行文件以外,它還在/etc和/var目錄下生成了七個配置文件:
/etc/ftpusers
/etc/ftpaccess
/var/run/ftp.pids
/etc/ftpconversions
/var/log/xferlog
/etc/ftpgroups
/etc/ftphosts
系統安裝了wu-ftp後,會建立一個特殊的用戶ftp,並在/home目錄下建立了一個ftpd目錄,當用戶以匿名登錄上來時,將會自動定位於這個目錄下。在這個目錄下一般會建立幾個子目錄。/home/ftpd/bin 存放一些供FTP用戶使用的可執行文件
/home/ftpd/etc 存放一些供FTP用戶使用的配置文件
/home/ftpd/pub 存放供下載的信息
/home/ftpd/incoming 存放供上載信息的空間
三、wu-ftp的配置
1. 查看、修改/etc/inetd.conf文件
/etc/inetd.conf文件是LINUX系統的超級服務器inetd的配置文件。它負責監聽多個TCP/IP端口。當它收到請求,就根據配置文件派生一個相應的服務器。通過使用超級服務器,其他服務就可以只在需要時才派生,從而大大節省了系統資源。而wu-ftp就是利用超極服務器inetd來監聽請求的。當超級服務器inetd收到了客戶端的FTP請求時,就根據配置文件打開一個FTP服務進程。所以我們如果要使用wu-ftp,就必須確認在超級服務器inetd的配置文件inetd.conf中有這樣一句:
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd以便當超級服務器收到FTP請求的時候,能夠派生一個wu-ftp的FTP服務進程。(注:要確認是否有這樣一行時,可以使用文件內容查找命令來確認:cat /etc/inetd.conf grep ftp如果沒有,則用手工加入或手工修改。)
2. wu-ftpd的命令選項wu-ftpd就是wu-ftp的服務進程。它可以不帶參數執行,也可以帶參數執行。下面簡單介紹一下wu-ftpd的執行參數。
-d 當FTP服務器出錯時,將錯誤入系統的syslog中;
-l 將每次FTP客戶端進行連接的入系統的syslog中;
-t 設置FTP客戶端連接幾分鐘無操作就切斷連接;
-a 使wu-ftp使用/etc/ftpaccess的設定;
-A 使wu-ftp不使用/etc/ftpaccess的設定;
-L 將FTP客戶端連線後所執行的程序記錄在系統的syslog中;
-I 將FTP客戶端上載文件的日志記錄在/usr/adm.xferlog文件中;
-o 將FTP客戶端下載文件的日志記錄在/usr/adm/xferlog文件中。
通過對以上參數的理解,我們建議,將上面系統安裝時的那條默認配置改為:ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd –a –I
3.提供自動壓縮、解壓縮的功能
如果想讓FTP服務器有自動壓縮、解壓縮的功能,必須先將一些壓縮、解壓縮的命令文件如tar、gzip、gunzip、compress、uncompress等命令文件拷貝到/home/ftpd/bin目錄下。
4. 關於/etc/ftpaccess的設置
這個配置文件是FTP服務器上最重要的配置文件,它直接關系到你的FTP服務器能否正常工作,還有許多權限上的設置。下面是一個典型的配置實例。
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 [email protected]
email [email protected]
deny *.com.tw /etc/ftpd/deny.msg