FTP文件傳輸服務

                                  FTP文件傳輸服務

需求描述:
 採用FTP虛擬用戶的方式,添加三個用戶:zhangsan、lisi、wangwu。
 用戶訪問及文件權限控制
 開放匿名訪問,任何用戶均可下載服務器/var/ftp/soft/目錄中的軟件資料。
 用戶zhangsan可以對服務器的/var/ftp/soft/目錄進行上傳、刪除等操作。
 用戶lisi可以下載服務器/var/market/目錄中的市場活動、銷售方案的資料。
 用戶wangwu可以對服務器/var/market/目錄進行上傳、刪除等操作。
 所有通過FTP上傳的文件,均去除非屬主位的寫權限(即將權限掩碼設爲022)。
 對服務器中沒有明確授權的其他目錄,禁止任何用戶訪問。
 傳輸速率和併發連接控制
 最多允許150個併發用戶連接,每個IP併發連接數不超過5個。
 匿名用戶及lisi用戶的下載帶寬限制爲100KB/s。
 wangwu用戶的下載、上傳帶寬限制爲200KB/s。
具體步驟:

  1. 插入光盤並掛載,然後安裝vsftpd包。如圖所示:
    FTP文件傳輸服務

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

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

    FTP文件傳輸服務

    FTP文件傳輸服務

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

    在db_load命令中,“-f”選項用於指定數據源文件,“-T”選項允許非Berkeley DB的應用程序使用從文本格式轉換的DB數據文件,“-t hash”選項指定讀取數據文件的基本方法。
    爲了提高虛擬用戶賬號問價的安全性,應將問價權限設置爲600,以避免數據外泄。其具體操作如下:

    FTP文件傳輸服務

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

    FTP文件傳輸服務

  6. 爲虛擬用戶建立PAM認證文件
    vsftpd服務默認的PAM認證文件位於/etc/pam.d/vsftpd,該文件適用於以Linux主機的系統用戶賬號進行認證。若要讀取虛擬用戶的賬號文件,就需要創建新的PAM認證配置。
    FTP文件傳輸服務
    FTP文件傳輸服務
    上述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認證文件。
    FTP文件傳輸服務
    FTP文件傳輸服務

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

  8. 創建目錄/var/ftp/soft/,將屬主設爲virtual,權限爲755。如圖所示:
    FTP文件傳輸服務
  9. 爲不同的虛擬用戶建立獨立的配置文件
    通過前面的幾個步驟,實際上已經可以重新加載vsftpd並提供服務了,使用任一個虛擬用戶賬號都可以登錄FTP服務器並下載文件。但因爲所有的虛擬用都映射到同一個系統用戶賬號,因此FTP訪問權限也是相同的,要麼都只能下載,要麼都能夠上傳。
    若要爲不同的虛擬用戶賬號設置不同的訪問權限,可以通過爲每個虛擬用戶建立單獨的配置文件來實現,爲FTP用戶啓用獨立配置文件,需要通過vsftpd.conf配置文件,添加“user_config_dir”配置項。
    FTP文件傳輸服務

    FTP文件傳輸服務
    有了上述配置以後,就可以在/etc/vsftpd/vusers_dir/目錄中爲每個虛擬用戶分別建立配置文件了。
    FTP文件傳輸服務
    FTP文件傳輸服務
    FTP文件傳輸服務
    FTP文件傳輸服務
    FTP文件傳輸服務
    FTP文件傳輸服務
    FTP文件傳輸服務
    在vsftpd.conf文件中啓用了“user_config_dir”配置項以後,應該爲每一個虛擬用戶都建立一個單獨的配置用戶(可以是空文件),否則該用戶可能會無法登錄。在每個用戶的獨立配置文件中,可以添加新的配置項來限制訪問權限、下載速率等。
    有了虛擬用戶數據庫文件,併爲vsftpd正確添加了虛擬用戶支持以後,就可以重新加載vsftpd服務程序了。用戶可以使用FTP客戶程序訪問該FTP服務器,以虛擬用戶賬號進行測試。
    FTP服務器搭建完成!
     使用user_list用戶列表文件
    當vsftpd服務器開放了“local_enable”配置項以後,默認情況下所有的系統用戶都可以登錄到此FTP服務器。若只希望對一小部分系統用戶開放FTP服務,則需要開放用戶列表控制的相關配置項,其中主要包括userlist_enbale、userlist_deny。如圖所示:
    FTP文件傳輸服務
    FTP文件傳輸服務
    FTP文件傳輸服務
    FTP文件傳輸服務
     修改vsftpd服務的監聽地址、端口
    FTP文件傳輸服務
    FTP文件傳輸服務

    FTP文件傳輸服務

更改端口號後,Linux訪問:ftp://IP地址端口號
 允許使用FTP服務器的被動模式
FTP文件傳輸服務

FTP文件傳輸服務

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

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