在Linux環境配置功能完善的WU-FTP伺服器的方法分享

來源:互聯網
上載者:User

FTP服務可以根據服務物件的不同分為兩類:一類是系統FTP伺服器,它只允許系統上的合法使用者使用; 另一類是匿名FTP伺服器,Anonymous FTP Server,它使用任何人都可以登入到FTP伺服器上去擷取檔案。下面,本文將介紹如何在LINUX系統中利用wu-ftp架設一台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-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 guest@xxx.net
email guest@yyy.net
deny *.com.tw /etc/ftpd/deny.msg

下面我們逐句進行講解,並給出每條設定的含義,以便大家觸類旁通,以便根據自己FTP伺服器的具體情況進行合理的設定。

1)格式:loginfails [次數]

功能:設定當使用者登入到FTP伺服器時,允許使用者輸錯密碼的次數。

執行個體:loginfails 3:密碼輸入錯誤三次就切斷串連。

2)格式:class [類名] [real/guest/anonymous] [IP地址]

功能:這個指令的功能設定FTP伺服器上使用者的類別。並可對用戶端的IP地址進行限制,允許某部分的IP地址或全部的IP地址訪問。而在FTP伺服器上的使用者基本上可以分為以下三類:

real 在該FTP伺服器有合法帳號的使用者;

guest 有記錄的匿名使用者;

anonymous 許可權最低的匿名使用者

執行個體:class local real *:定義一個名為local的類,它包含了在任何地方登入(*代表所有IP地址)的real使用者。

class remote anonymous guest *:定義一個名為remote的類,它包含了在任何地方登入的anonymous使用者和guest使用者。

3)格式limit[類別] [人數] [時間] [檔案名稱]

功能:這個指令的功能為設定指定的時間內指定的類別允許串連的指定人數上限。當達到人數上限的時候,顯示指定檔案的內容。

執行個體:limit remote 100 Any /etc/ftpd/toomany.msg:在任何時間內,remote類的訪問使用者達到100人時,將不再允許無法產生新的串連,當第101位客戶要串連時,串連將失敗,並象使用者出示檔案/etc/ftpd/toomany.msg的內容。

4)格式message [檔案名稱] [指令]

功能:當使用者執行所指定的指令時,系統將指定的檔案內容顯示出來。

執行個體:message /etc/ftpd/welcome.msg login:當使用者執行login命令時,也就是登入到FTP伺服器上的時候,系統將顯示檔案/etc/ftpd/welcome.msg的內容。
5)格式:compress [yes/no] [類別]

功能:設定哪一個類別的使用者可以使用compress(壓縮)功能。

執行個體:compress yes local remote:允許local和remote兩個類別的使用者都能使用 compress(壓縮)功能。

6)格式:tar [yes/no] [類別]

功能:設定哪一個類別的使用者可以使用tar(歸檔)功能。

執行個體:tar yes local remote:允許local和remote兩類的使用者都能使用tar功能。

7)格式:private [yes/no]

功能:設定是否支援群組對檔案的取用。

執行個體:private yes:支援群組對檔案的取用。

8)格式:passwd-check [none/trivial/rfc822] [enforce/warn]

功能:設定對匿名使用者anonymous的密碼使用方式。

none 表示不做密碼驗證,任何密碼都可以登入;

trival 表示只要輸入的密碼中含有字元“@”就可以登入;

rfc822 表示密碼一定要符合RFC822中所規定的E-Mail格式才能登入;

enfore 表示輸入的密碼不符合以上指定的格式就不讓登入;

warn 表示密碼不符合規定時只出現警告資訊,仍然能夠登入。

執行個體:passwd-check rfc822 warn:希望能夠得到符合規定的E-Mail作為密碼,但如果不是,也允許登入。

9)格式:log command [real/guest/anonymous]

功能:設定哪些使用者登入後的操作記錄在檔案/usr/adm/xferlog中。

執行個體:log command real:當real使用者登入後,將他的操作記錄下來。由於其它使用者權限較低,所以操作不會引起太大的安全隱患,所以一般只需記下real使用者的操作就可以了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.