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包。如圖所示:
2. vsftpd服務使用Berkeley DB格式的資料庫檔案來存放虛擬使用者賬號。建立這種資料庫檔案需要用到db_load工具,db_load工具由db4_utils軟體包提供,而db4_utils軟體包需要先從RHEL5光碟目錄中進行安裝,其安裝可以執行以下操作:
3. 建立文字格式的使用者名稱、密碼列表
首先需要建立文字格式的使用者名稱/密碼列表檔案,奇數行為使用者名稱,偶數行為上一行中使用者所對應的密碼。如圖所示:
4. 建立Berkeley DB格式的資料庫檔案
有了文字格式的使用者名稱/密碼列表檔案以後,以此檔案為資料流通過db_load工具創建出Berkeley DB格式的資料庫檔案。
在db_load命令中,“-f”選項用於指定資料來源檔案,“-T”選項允許非Berkeley DB的應用程式使用從文字格式轉換的DB資料檔案,“-t hash”選項指定讀取資料檔案的基本方法。
為了提高虛擬使用者賬號問價的安全性,應將問價許可權設定為600,以避免資料外洩。其具體操作如下:
1.新增虛擬使用者的對映賬號、建立FTP根目錄
vsftp伺服器對虛擬使用者的控制採用了對映的控制方式,將所有的虛擬使用者對應到同一個系統使用者,該系統使用者宿主目錄作為所有虛擬使用者登入後共用的
1.為虛擬使用者建立PAM認證檔案
vsftpd服務預設的PAM認證檔案位於/etc/pam.d/vsftpd,該檔案適用於以Linux主機的系統使用者賬號進行認證。若要讀取虛擬使用者的賬號檔案,就需要建立新的PAM認證配置。
上述PAM配置內容中,通過“db=/etc/vsftpd/vusers”引數指定了要使用的虛擬使用者資料庫檔案位置(省略了.db副檔名),即對應為/etc/vsftpd/vusers.db檔案。
7.修改vsftpd配置,新增虛擬使用者支援
在vsftpd.conf配置檔案中新增guest_enable、guest_username配置項,將訪問FTP服務的所有虛擬使用者對應到同一系統使用者賬號virtual,並修改pam_serivce_name配置項,指向上一步建立的/etc/pam.d/vsftpd.vu認證檔案。
在vsftpd服務中,虛擬使用者被預設作為匿名使用者進行處理以降低許可權,因此對應的配置項通常以anon_開頭。
建立目錄/var/ftp/soft/,將屬主設為virtual,許可權為755。如圖所示:
1.為不同的虛擬使用者建立獨立的配置檔案
通過前面的幾個步驟,實際上已經可以重新載入vsftpd並提供服務了,使用任一個虛擬使用者賬號都可以登入FTP伺服器並下載檔案。但因為所有的虛擬用都對映到同一個系統使用者賬號,因此FTP訪問許可權也是相同的,要麼都只能下載,要麼都能夠上傳。
若要為不同的虛擬使用者賬號設定不同的訪問許可權,可以通過為每個虛擬使用者建立單獨的配置檔案來實現,為FTP使用者啟用獨立配置檔案,需要通過vsftpd.conf配置檔案,新增“user_config_dir”配置項。
有了上述配置以後,就可以在/etc/vsftpd/vusers_dir/目錄中為每個虛擬使用者分別建立配置檔案了。
在vsftpd.conf檔案中啟用了“user_config_dir”配置項以後,應該為每一個虛擬使用者都建立一個單獨的配置使用者(可以是空檔案),否則該使用者可能會無法登入。在每個使用者的獨立配置檔案中,可以新增新的配置項來限制訪問許可權、下載速率等。
有了虛擬使用者資料庫檔案,併為vsftpd正確添加了虛擬使用者支援以後,就可以重新載入vsftpd服務程式了。使用者可以使用FTP客戶程式訪問該FTP伺服器,以虛擬使用者賬號進行測試。
FTP伺服器搭建完成!
n使用user_list使用者列表檔案
當vsftpd伺服器開放了“local_enable”配置項以後,預設情況下所有的系統使用者都可以登入到此FTP伺服器。若只希望對一小部分系統使用者開放FTP服務,則需要開放使用者列表控制的相關配置項,其中主要包括userlist_enbale、userlist_deny。如圖所示:
n修改vsftpd服務的監聽地址、埠
更改埠號後,Linux訪問:ftp://IP地址埠號
n允許使用FTP伺服器的被動模式
Ø主動模式:伺服器主動發起資料連線。首先由客戶端向服務端的21埠建立FTP控制連線,當需要傳輸資料時,客戶端以PORT命令告知伺服器“我打開了某埠,你過來連線我”,於是伺服器從20埠向客戶端的該埠傳送請求並建立資料連線。
Ø被動模式:伺服器被動等待資料連線 。如果客戶機所在網路的防火牆禁止主動模式連線,通常會使用被動模式。首先由客戶端向伺服器端的21埠建立FTP控制連線。當需要傳輸資料時,伺服器已PASV命令告知客戶端“我打開了某埠,你過來連線我”,於是客戶端向伺服器的該埠(非20)傳送請求並建立資料連線。
轉載於:https://blog.51cto.com/wuhui1994/2062315