FTP文件傳輸服務

需求描述:

Ø 採用FTP虛擬用戶的方式,添加三個用戶:zhangsan、lisi、wangwu。

Ø 用戶訪問及文件權限控制

u 開放匿名訪問,任何用戶均可下載服務器/var/ftp/soft/目錄中的軟件資料。

u 用戶zhangsan可以對服務器的/var/ftp/soft/目錄進行上傳、刪除等操作。

u 用戶lisi可以下載服務器/var/market/目錄中的市場活動、銷售方案的資料。

u 用戶wangwu可以對服務器/var/market/目錄進行上傳、刪除等操作。

u 所有通過FTP上傳的文件,均去除非屬主位的寫權限(即將權限掩碼設爲022)。

u 對服務器中沒有明確授權的其他目錄,禁止任何用戶訪問。

Ø 傳輸速率和併發連接控制

u 最多允許150個併發用戶連接,每個IP併發連接數不超過5個。

u 匿名用戶及lisi用戶的下載帶寬限制爲100KB/s。

u wangwu用戶的下載、上傳帶寬限制爲200KB/s。

具體步驟:

1. 插入光盤並掛載,然後安裝vsftpd包。如圖所示:

圖片1.png

2. vsftpd服務使用Berkeley DB格式的數據庫文件來存放虛擬用戶賬號。建立這種數據庫文件需要用到db_load工具,db_load工具由db4_utils軟件包提供,而db4_utils軟件包需要先從RHEL5光盤目錄中進行安裝,其安裝可以執行以下操作:

圖片2.png

3. 創建文本格式的用戶名、密碼列表

首先需要建立文本格式的用戶名/密碼列表文件,奇數行爲用戶名,偶數行爲上一行中用戶所對應的密碼。如圖所示:

圖片3.png

圖片4.png

4. 創建Berkeley DB格式的數據庫文件

有了文本格式的用戶名/密碼列表文件以後,以此文件爲數據流通過db_load工具創建出Berkeley DB格式的數據庫文件。

圖片5.png

db_load命令中,“-f”選項用於指定數據源文件,“-T”選項允許非Berkeley DB的應用程序使用從文本格式轉換的DB數據文件,“-t hash”選項指定讀取數據文件的基本方法。

爲了提高虛擬用戶賬號問價的安全性,應將問價權限設置爲600,以避免數據外泄。其具體操作如下:

圖片6.png

1. 添加虛擬用戶的映射賬號、創建FTP根目錄

vsftp服務器對虛擬用戶的控制採用了映射的控制方式,將所有的虛擬用戶對應到同一個系統用戶,該系統用戶宿主目錄作爲所有虛擬用戶登錄後共用的FTP根目錄。因此還需要添加一個對應的系統用戶賬戶(此賬號無需設置密碼及shell)。

圖片7.png

1. 爲虛擬用戶建立PAM認證文件

vsftpd服務默認的PAM認證文件位於/etc/pam.d/vsftpd,該文件適用於以Linux主機的系統用戶賬號進行認證。若要讀取虛擬用戶的賬號文件,就需要創建新的PAM認證配置。

圖片8.png

圖片9.png

上述PAM配置內容中,通過“db=/etc/vsftpd/vusers”參數指定了要使用的虛擬用戶數據庫文件位置(省略了.db擴展名),即對應爲/etc/vsftpd/vusers.db文件。

7. 修改vsftpd配置,添加虛擬用戶支持

vsftpd.conf配置文件中添加guest_enableguest_username配置項,將訪問FTP服務的所有虛擬用戶對應到同一系統用戶賬號virtual,並修改pam_serivce_name配置項,指向上一步建立的/etc/pam.d/vsftpd.vu認證文件。

圖片10.png圖片11.png圖片12.png

  在vsftpd服務中,虛擬用戶被默認作爲匿名用戶進行處理以降低權限,因此對應的配置項通常以anon_開頭。

創建目錄/var/ftp/soft/,將屬主設爲virtual,權限爲755如圖所示:

圖片13.png

1. 爲不同的虛擬用戶建立獨立的配置文件

通過前面的幾個步驟,實際上已經可以重新加載vsftpd並提供服務了,使用任一個虛擬用戶賬號都可以登錄FTP服務器並下載文件。但因爲所有的虛擬用都映射到同一個系統用戶賬號,因此FTP訪問權限也是相同的,要麼都只能下載,要麼都能夠上傳。

若要爲不同的虛擬用戶賬號設置不同的訪問權限,可以通過爲每個虛擬用戶建立單獨的配置文件來實現,爲FTP用戶啓用獨立配置文件,需要通過vsftpd.conf配置文件,添加“user_config_dir”配置項。

圖片14.png

圖片15.png

有了上述配置以後,就可以在/etc/vsftpd/vusers_dir/目錄中爲每個虛擬用戶分別建立配置文件了。

圖片16.png

圖片17.png

圖片18.png

圖片19.png

圖片20.png

圖片18.png

圖片19.png

圖片20.png

圖片21.png圖片22.png

vsftpd.conf文件中啓用了“user_config_dir”配置項以後,應該爲每一個虛擬用戶都建立一個單獨的配置用戶(可以是空文件),否則該用戶可能會無法登錄。在每個用戶的獨立配置文件中,可以添加新的配置項來限制訪問權限、下載速率等。

有了虛擬用戶數據庫文件,併爲vsftpd正確添加了虛擬用戶支持以後,就可以重新加載vsftpd服務程序了。用戶可以使用FTP客戶程序訪問該FTP服務器,以虛擬用戶賬號進行測試。

FTP服務器搭建完成!

使用user_list用戶列表文件

vsftpd服務器開放了“local_enable”配置項以後,默認情況下所有的系統用戶都可以登錄到此FTP服務器。若只希望對一小部分系統用戶開放FTP服務,則需要開放用戶列表控制的相關配置項,其中主要包括userlist_enbaleuserlist_deny。如圖所示:

圖片23.png

圖片24.png圖片25.png圖片26.png

修改vsftpd服務的監聽地址、端口

圖片27.png

圖片28.png圖片29.png

更改端口號後,Linux訪問:ftp://IP地址 端口號

允許使用FTP服務器的被動模式

圖片30.png圖片31.png

Ø 主動模式:服務器主動發起數據連接。首先由客戶端向服務端的21端口建立FTP控制連接,當需要傳輸數據時,客戶端以PORT命令告知服務器“我打開了某端口,你過來連接我”,於是服務器從20端口向客戶端的該端口發送請求並建立數據連接。

Ø 被動模式:服務器被動等待數據連接 。如果客戶機所在網絡的防火牆禁止主動模式連接,通常會使用被動模式。首先由客戶端向服務器端的21端口建立FTP控制連接。當需要傳輸數據時,服務器已PASV命令告知客戶端“我打開了某端口,你過來連接我”,於是客戶端向服務器的該端口(非20)發送請求並建立數據連接。

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章