FTP:檔案傳輸通訊協定,客戶/伺服器模式
一、安裝WU-FTPD
#rpm -ivh wu-ftpd*.rpm #tar zxvf wu-ftpd*.tar.gz #cd wu-ftp* #./configure #make #make install |
如果沒有指定安裝目錄,那麼其執行檔案預設會分別安裝在/usr/bin和/usr/sbin 中。
二、啟動WU-FTPD
開啟wu-ftpd檔案,將其中的disable = yes 改為disable = no。
然後重新啟動xinetd服務:
#/etc/rc.d/init.d/xinetd restart |
三、確認FTP是否啟動
#telnet localhost 21 Trying 127.0.0.1 connected to rh escape character is '^]', 220 rh.china.com FTP server (version wu-2.6.1) mon jul 24 01:59:25 EDT 2000)ready. |
^] //按ctrl+]號中斷。
telnet>q //按Q鍵退出。
四、匿名FTP的設定與組織
/etc/ftpaccess //WU-FTPD 最重要的設定檔案 /etc/ftpconversions //設定FTP匿名使用者傳輸檔案時,可對檔案做tar,壓縮,解壓縮等處理。 /etc/ftpgroups //限定哪些使用者組不能登陸到FTP伺服器。 /etc/ftphosts //限定哪些網路地址的機器不能串連到FTP伺服器 /etc/ftpusers //限定誰不能登陸FTP伺服器。 |
WU-FTPD的可執行程式
/usr/bin/ftpcount //查詢目前各類的上線使用者人數。 /usr/bin/ftprestart //重新啟用FTP /usr/bin/ftpshut //產生shutmsg檔案,並暫停FTP服務。 /usr/bin/ftpwho //查詢聯機情況 |
放置上,下載檔案的目錄
為了增加系統的安全性,可以使用adduser添加FTP伺服器資源的管理者,如:ftpadm,並將ftpadm加入到adm組,這樣當別人對FTP有所建議時,可以發email給ftpadm,而不必凡事都要root出馬。
修改 /etc/group內容應該如下:
adm:x4:root,adm,daemon,ftpadm |
然後:
/var/ftp/bin目錄
因為匿名使用者看不到除/var/ftp以外的東西,所以必須提供足夠的檔案供匿名FTP使用,預設/var/ftp是FTP使用者的根目錄,/var/ftp/bin目錄
放置一些常用的FTP命令,如:ls,tar,gzip,compress等執行檔案,此目錄許可權應該是111。
/var/ftp/etc目錄
這個目錄放置一些匿名FTP使用者需要的設定檔案,如passwd,group。當匿名使用者執行ls -l時,FTP伺服器的檔案、目錄才會顯示擁有者的名稱和組而不是出現數字。此目錄的許可權是111。
/var/ftp/pub目錄
放置下載檔案的起點,通常在pub目錄下,會將檔案資源特性分類,再建立子目錄,由管理員自行規劃。
/var/ftp/upload目錄
上傳目錄。系統預設不提供上傳目錄,如果需要做檔案上傳,要自己建立此目錄,以提供匿名FTP使用者上傳檔案,為了避免病毒,一個好的管理員會篩選upload裡的檔案和目錄,一切都沒有問題後,才將上傳的檔案移至下載區。一般設定upload目錄的許可權是:chmod 733
五、限制登入的使用者和主機
將可登入的使用者分為3類,分別是real,anonymous,guest。
real:
在此伺服器擁有帳號的使用者,並以他的帳號登陸,此類帳戶預設的登入的目錄是其專屬目錄,但只要他擁有某目錄的讀取許可權,即使該目錄不在其專屬目錄中,也能切換到哪個目錄。
anonymous:
指的是在此伺服器上沒有帳戶的使用者,可以用anonymous及電子郵件地址當作帳號名稱和密碼,以匿名方式登入伺服器,登入後的根是/var/ftp,此類使用者不能切換到除/var/ftp以外的目錄。
guest:
來賓帳號。在某些情況下,管理員可能只希望某些擁有帳號的使用者登入後,只能存取專屬目錄下的檔案,而不得存取專屬目錄以外的檔案,因此管理員可以利用ftpaccess設定檔案中的 guestuser或guestgroup參數指定屬於這類的使用者有哪些。
設定不可以登入的使用者
/etc/ftpusers設定檔案用來設定不允許哪些使用者登入,方法是每個使用者佔一行。
修改/etc/ftphosts設定檔案
該檔案是用來設定允許或拒絕使用者從不同的地址登入,有allow和deny兩種設定格式。
1允許特定使用者從指定地址登入 allow
格式如下:
allow <帳號名稱> <主機地址> ...例如,允許test使用者從*.china.com網域登陸, allow test *.china.com |
2拒絕特定使用者從指定地址登入 deny
格式如下:
deny <帳號名稱> <主機名稱> ...例如,不允許test使用者從202.198.16.8地址登陸, deny test 202.198.16.8 |
六、伺服器環境設定(/etc/ftpaccess檔案)
指令
class
class 用來定義使用者工作群組,並指定屬於這工作群組的是哪些類別的使用者,或來自哪個阻擊地址,同時我們可以在一個ftpaccess檔案中定義多個工作群組,格式如下:
class <工作群組名稱><使用者類別><使用者所在的主機地址> |
工作群組名稱:此工作群組名稱,由管理員定義
使用者類別: 可以使用的類別是real,anonymous,guest。
主機地址:登入使用者所在的主機的IP或網域名稱,此處可明確指明主機地址,或採用萬用字元*也可以。
下例為預設值:
class all real,guest,anonymous * //此定義的工作群組名稱是all,並設定此工作群組成員為從任何地方登入的所有類別的使用者。 |
例如,class group1 real *
class group2 real,guest,anonymous *.china.com 203.84.200.* |
email
設定FTP伺服器管理員的E-mail地址,當WU-FTPD要顯示管理者email地址時,即會顯示此處的設定格式:
例如:
練習:
1啟動FTP
2建立使用者帳戶aaa和bbb,設定不允許bbb登陸
3建立工作群組group1,定義此工作群組成員是從192.168.9.0網路登陸的real,和anonymous類別的使用者
guestuser
指定屬於guest類別的使用者
例如(格式):
guestgroup
用來指定屬於guest 類別的工作群組有哪些,下例將指定屬於guestgp工作群組的使用者,都屬於guest類別:guestgroup guestgp //guestgp工作群組要先建立才行。
loginfails
設定允許使用者最多登入失敗的次數,格式如下:
loginfails <登入次數> //登入次數指當使用者輸入了錯誤的帳號和密碼超過了設定的登入次數之後,即不再允許使用者再嘗試登入。
例如:
readme
用來設定當使用者登入FTP後,或第一次切換某目錄時,會出現提示資訊提醒使用者自行讀取說明檔案,其格式如下:
readme <說明檔案路徑><時機><工作群組名稱> |
說明檔案路徑:
設定說明檔案的位置,此處設定值可以使用萬用字元*
時機:
設定要顯示提示資訊的時機,使用login選項,表示使用者登入後;使用cwd=<路徑>選項,表示使用者第一次切換到該目錄時。
工作群組名稱:
只針對指定的工作群組,才顯示提示資訊。
練習:
設定:
readme README* login //當使用者登入FTP時,系統會提示使用者讀取同一目錄下的README*檔案在user的專屬目錄下建立以README檔案,或建立以README名稱開頭的檔案,並輸入些內容。
重新啟動xinetd服務
/etc/rc.d/init.d/xinetd restart |
在shell狀態以user身份串連ftp server。會有提示你讀取README檔案
例二
設定readme README* cwd=* //表示當使用者地一次切換到任一目錄時,系統會提示使用者讀取同一目錄下的README*檔案。
例三
設定readme README* CWD=/LIB GROUP1 //表示當group1工作群組的使用者第一次切換到/lib目錄時,系統才會提示該使用者讀取README*檔案。
message
是用來設定當使用者登入後,或第一次切換到某目錄時,系統所要顯示的歡迎資訊,其格式如下:
資訊檔路徑:
設定歡迎資訊檔存放的位置,此位置的路徑是相對於/var/ftp目錄的。
時機:
設定要顯示提示資訊的時機。使用login選項,表示使用者登入後,cwd=< 路徑>則表示使用者第一次切換到該目錄時,只有當使用者地一次切換到該目錄時,才顯示此提示資訊,若再次切換回到同一目錄則不再顯示資訊。