1. 程式人生 > >FTP文件傳輸服務

FTP文件傳輸服務

ftp服務 hash ftpd onf username 相同 端口 系統 dir

FTP安裝及運用

需求描述:
1.采用FTP虛擬用戶的方式,添加三個用戶:zhangsan、lisi、wangwu。
2.用戶訪問及文件權限控制
3.開放匿名訪問,任何用戶均可下載服務器/var/ftp/soft/目錄中的軟件資料。
4.用戶zhangsan可以對服務器的/var/ftp/soft/目錄進行上傳、刪除等操作。
5.用戶lisi可以下載服務器/var/market/目錄中的市場活動、銷售方案的資料。
6.用戶wangwu可以對服務器/var/market/目錄進行上傳、刪除等操作。
7.所有通過FTP上傳的文件,均去除非屬主位的寫權限(即將權限掩碼設為022)。
8.對服務器中沒有明確授權的其他目錄,禁止任何用戶訪問。
9.傳輸速率和並發連接控制

10.最多允許150個並發用戶連接,每個IP並發連接數不超過5個。
11.匿名用戶及lisi用戶的下載帶寬限制為100KB/s。
12.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,以避免數據外泄。其具體操作如下:
技術分享圖片
5.添加虛擬用戶的映射賬號、創建FTP根目錄
vsftp服務器對虛擬用戶的控制采用了映射的控制方式,將所有的虛擬用戶對應到同一個系統用戶,該系統用戶宿主目錄作為所有虛擬用戶登錄後共用的FTP根目錄。因此還需要添加一個對應的系統用戶賬戶(此賬號無需設置密碼及shell)。
技術分享圖片
6.為虛擬用戶建立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_開頭。
8.創建目錄/var/ftp/soft/,將屬主設為virtual,權限為755。如圖所示:
技術分享圖片
9.為不同的虛擬用戶建立獨立的配置文件
通過前面的幾個步驟,實際上已經可以重新加載vsftpd並提供服務了,使用任一個虛擬用戶賬號都可以登錄FTP服務器並下載文件。但因為所有的虛擬用都映射到同一個系統用戶賬號,因此FTP訪問權限也是相同的,要麽都只能下載,要麽都能夠上傳。
若要為不同的虛擬用戶賬號設置不同的訪問權限,可以通過為每個虛擬用戶建立單獨的配置文件來實現,為FTP用戶啟用獨立配置文件,需要通過vsftpd.conf配置文件,添加“user_config_dir”配置項。
技術分享圖片
技術分享圖片
有了上述配置以後,就可以在/etc/vsftpd/vusers_dir/目錄中為每個虛擬用戶分別建立配置文件了。
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
在vsftpd.conf文件中啟用了“user_config_dir”配置項以後,應該為每一個虛擬用戶都建立一個單獨的配置用戶(可以是空文件),否則該用戶可能會無法登錄。在每個用戶的獨立配置文件中,可以添加新的配置項來限制訪問權限、下載速率等。
有了虛擬用戶數據庫文件,並為vsftpd正確添加了虛擬用戶支持以後,就可以重新加載vsftpd服務程序了。用戶可以使用FTP客戶程序訪問該FTP服務器,以虛擬用戶賬號進行測試。
FTP服務器搭建完成!
使用user_list用戶列表文件
當vsftpd服務器開放了“local_enable”配置項以後,默認情況下所有的系統用戶都可以登錄到此FTP服務器。若只希望對一小部分系統用戶開放FTP服務,則需要開放用戶列表控制的相關配置項,其中主要包括userlist_enbale、userlist_deny。如圖所示:
技術分享圖片
技術分享圖片
技術分享圖片
技術分享圖片
修改vsftpd服務的監聽地址、端口
技術分享圖片
技術分享圖片
技術分享圖片
更改端口號後,Linux訪問:ftp://IP地址端口號
允許使用FTP服務器的被動模式

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

FTP文件傳輸服務