歡迎您光臨本站 註冊首頁

Linux系列-Red Hat5平台下的FTP服務搭建

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
上次我們看到了基於Red Hat5平台下的DHCP服務的搭建,本次我們通過一個例子來看一下Red Hat5平台下的FTP服務的搭建. FTPFile Transfer Protocol,文件傳輸協議)是典型的C/S結構的應用層網路協議,需要有相應的客戶端和伺服器端軟體才能進行文件傳輸.本次我們以vsftpd伺服器端軟體為例.該軟體可以從站點http://vsftpd.beasts.org/中下載,在

RHEL5系統中會自帶有vsftpd軟體.並且,安裝好vsftpd軟體包以後,將自動添加vsftpd系統服務,通過「/etc/init.d/vsftpd」腳本可以控制vsftpd服務的啟動和終止,而無需手動執行「/usr/sbin/vsftpd」程序.
下面我們來看看在Red Hat5上是如何通過vsftpd伺服器軟體,搭建FTP的.具體的概念以及配置步驟和注意事項,咱們邊做邊說.

第一部分:建立基於本地用戶的vsftpd服務<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 1.匿名FTP 訪問匿名FTP伺服器時不需要密碼,只要使用用戶名「ftp」或「anonymous」即可通過驗證.當需要提供公開訪問的文件下載資源,或者讓用戶上傳一些無需保密的數據資料時,可以選擇搭建匿名FTP伺服器.搭建的步驟如下所示: 1>.調整匿名上傳目錄許可權.

RHEL5系統中,匿名用戶對應的系統帳戶為ftp,其宿主目錄為「/var/ftp,該目錄也就是匿名用戶訪問vsftpd服務時所在的根目錄(可通過anon_root配置項更改). 說明:將其中pub子目錄的屬主修改為ftp,並保留其可寫許可權,可提供給匿名用戶上傳文件使用.我們給

/var/ftp/創建一個文件到/var/ftp/目錄下,以便稍後的測試.
2>.修改vsftpd.conf配置文件,開放匿名用戶訪問、上傳許可. 說明:如果希望匿名用戶在上傳目錄中能夠進行覆蓋、刪除、重命名文件等寫入操作,還可以添加「anon_other_write_enable=YES」的配置項.此項配置可能帶來安全性問題,所以應謹慎使用. 注意:由於匿名FTP根目錄「

/var/ftp/」的默認許可權為755,因此不要將該目錄的屬主更改為ftp,否則匿名訪問時可能會報錯「500 OOPSvsftpd:refusing to run with writable anonymous root,此錯誤會導致訪問失敗.
3>.重新啟動vsftpd服務 4>.此時,我們到客戶機上訪問

FTP伺服器,測試下載及上傳功能.
可以看到,用戶使用匿名用戶FTP,不但可登錄,並且可以下載FTP伺服器上的資源. 2.本地用戶FTP Vsftpd可以直接使用Linux系統的本地用戶作為FTP用戶,提供基於用戶名/密碼的登錄驗證.使用本地用戶登錄FTP伺服器后,默認將位於自己的宿主目錄中,且在宿主目錄中擁有讀寫許可權,並允許切換到其他目錄.使用

chroot_local_user配置項可以將本地用戶禁錮在宿主目錄中(不允許切換到其他目錄),使用local_root配置項可以將本地用戶的FTP根目錄設置為同一個文件夾.
下面我們配置一個基於本地用戶並進行用戶限制的FTP伺服器步驟如下: 1>.添加FTP測試用戶(也就是本地用戶).新建一個文件file1以便測試. 2>.修改vsftpd.conf配置文件,開放本地用戶.

說明:配置「chroot_local_user=YES」項,可以有效提高FTP伺服器的安全性.否則,默認將允許用戶切換到伺服器中的「/var/」、「/etc/」、「/boot/」等宿主目錄以外的文件夾,可能帶來安風險.如果啟用「local_root=/var/ftproot」的配置選項時,本地用戶登錄該FTP伺服器后,根目錄將更改為指定的文件夾.該選項適用於

FTP根目錄需要保持固定的情況.如果希望vsftpd服務 只對特定的本地用戶開放,可以使用userlist_enableuserlist_deny配置項並結合用戶列表文件「/etc/vsftpd/user_list」實現,此處不做演示.
3>.重新啟動vsftpd服務. 4>.在客戶端訪問

FTP伺服器,測試下載及上傳功能.
可以看到用戶登錄和下載伺服器上的資源都沒有問題 第二部分:建立基於虛擬用戶的vsftpd服務 1. 建立虛擬用戶的用戶名/密碼資料庫 Vsftpd服務的虛擬用戶資料庫是使用Berkeley DB格式的數據文件.建立該資料庫文件需要用到db_load

命令工具,從RHEL5光碟中安裝db4-utils-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />4.3.29-9.fc6.i386.rpm軟體包后可獲得該工具.
建立文本格式的用戶名/密碼列表文件,奇數行為用戶名,偶數行為上一行中用戶所對應的密碼. 說明:此處建立了兩個密碼都為123.com的虛擬用戶zpp001zpp002. 然後用

db_load工具將列表文件轉化為DB資料庫文件.
說明:在db_load命令中,「-f」選項用於指定用戶名/密碼列表文件,「-T」選項允許非Berkeley DB的應用程序使用從文本格式轉換的DB數據文件,「-t hash

」選項指定讀取數據文件的基本方法.將文件vusers.db的許可權降底為600是為了安全性考慮.關於db_load命令的詳細說明可參閱「/usr/share/doc/db4-utils-4.3.29/utility/db_load.html」文件.
2. 建立FTP訪問的根目錄及虛擬用戶對應的系統帳號

說明:Vsftpd虛擬用戶需要有一個對應的系統用戶帳號(該帳號不需要設置密碼及登錄Shell,該用戶帳號的宿主目錄作為所有虛擬用戶登錄后的共同FTP根目錄. 3. 建立PAM認證文件 說明:

PAM配置文件主要用於為程序提供用戶認證控制,vsftpd服務使用的默認PAM配置文件為「/etc/pam.d/vsftpd,s可以參考該文件的格式建立新的PAM配置文件,用於虛擬用戶的認證控制.配置時請注意將db選項指定為先前建立的虛擬用戶數據文件vusers(省略.db擴展名)

4. 修改vsftpd.conf配置文件,添加虛擬用戶支持 vsftpd.conf配置文件中,添加guest_enableguest_userusername配置項,將訪問FTP服務的所有虛擬用戶對應到同一系統用戶帳號virtual,並修改pam_service_name配置項,指向上一步建立的PAM配置文件「

/etc/pam.d/vsftpd.vu」.
說明:在vsftpd服務中,虛擬用戶賬戶默認作為匿名用戶處理以降低許可權,因此對應的許可權設置通常使用以anon_開頭的配置項, 5. 為不同的虛擬用戶建立獨立的配置文件 通過前面的四步,實際上已經可以重啟vsftpd並提供服務了,使用虛擬用戶帳號可以登錄FTP伺服器並下載文件.此步驟介紹如何為個別虛擬用戶設置不同的訪問許可權.

假如現在有這樣的要求:zpp001用戶只有瀏覽和下載的許可權,而zpp002可以瀏覽、下載、改名、刪除文件、建立和刪除目錄的許可權,可以按如下的步驟實現: 1>.修改vsftpd.conf主配置文件,添加用戶配置目錄支持. 說明:添加此行配置,指定用戶配置目錄的位置. 2>.為用戶zpp001zpp002建立獨立的配置目錄及文件.

說明:如果需要禁用或者允許一部分虛擬用戶帳號,同樣可以使用「/etc/vsftpd/user_list」列表文件.需要注意的是,在「/etc/vsftpd/ftpusers」文件中加入虛擬用戶名,並不能禁用對應的系統帳號. 6. 重新啟動vsftpd服務 7.使用虛擬用戶帳戶訪問FTP服務

說明:現在可以看到,虛擬用戶zpp001只有瀏覽和下載的許可權,並沒有創建目錄等其它許可權. 說明:可以看到,用戶zpp002不但有瀏覽和下載許可權,同時也具備創建目錄等


[火星人 ] Linux系列-Red Hat5平台下的FTP服務搭建已經有576次圍觀

http://coctec.com/docs/linux/show-post-52171.html