1. 程式人生 > 實用技巧 >FTP檔案傳輸服務

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伺服器搭建完成!

n使用user_list使用者列表檔案

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

圖片23.png

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

n修改vsftpd服務的監聽地址、埠

圖片27.png

圖片28.png圖片29.png

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

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

圖片30.png圖片31.png

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

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


轉載於:https://blog.51cto.com/wuhui1994/2062315