Linux --- 使用 Vsftpd 服務傳輸文件

看完本篇文章可以學習到的內容:①理解FTP協議的作用,②安裝 vsftpd 服務程序並瞭解配置文件參數,③完整演示vsftpd 服務匿名訪問模式、本地用戶模式、虛擬用戶模式的配置方法,④瞭解 PMA可插拔式認證模塊的原理與認證流程,⑤通過配置vsftpd 服務程序加強對 SELinux 服務策略、安全上下文的配置與排錯能力。

FTP 文件傳輸協議:能夠讓用戶在互聯網中上傳、下載文件的文件協議。

FTP 協議端口號:

21端口:命令控制,用於接收客戶端執行的FTP命令。

20端口:數據傳輸,用於上傳、下載文件數據。

FTP數據傳輸的類型:

主動模式:FTP服務端主動向FTP客戶端發起連接請求。

被動模式:FTP服務端等待FTP客戶端的連接請求。

安裝 vdftpd 服務程序     yum install vsftpd -y

清空默認的防火牆默認規則

保存清空後的防火牆規則表

使用 cat 命令查看vsftpd 程序的主配置文件

備份 vsftpd 的主配置文件

# 號是註釋行,可以使用 grep 過濾掉這些註釋,讓配置文件的內容看起來更加直觀

Vsftpd 程序配置文件參數的作用:

        參數                                                                                                    作用

Listen=[YES/NO]                                                                      是否以獨立運行的方式監聽服務

Listen_address=IP地址                                                            設置要監聽的IP地址

Listen_port=21                                                                         設置FTP 服務的監聽端口

Download_enable=[YES/NO]                                                   是否允許下載文件

Userlist_enable=[YES/NO] (Userlist_deny=[YES/NO] )      是否啓用“禁止登陸用戶名單”                

Max_clients=[YES/NO]                                                             最大客戶端連接數,0爲不限制

Max_per_ip=0                                                                           通一IP地址最大連接數,0爲不限制

Anomymous_enable=[YES/NO]                                                是否允許匿名用戶訪問

Anon_upload_enable=[YES/NO]                                               是否允許匿名用戶上傳文件

Anon_umask=220                                                                     匿名用戶上傳文件的umask值

Anon_root=/var/ftp                                                                    匿名用戶的FTP根目錄

Anon_mkdir_write_enable=[YES/NO]                                       是否允許匿名用戶創建目錄   

Anon_other_write_enable=[YES/NO]                                        是否開放匿名用戶其他寫入權限

Anon_max_rate=0                                                                     匿名用戶最大傳輸速率(字節),0爲不限制

Local_enable=[YES/NO]                                                           是否允許本地用戶登錄FTP

Local_umask=022                                                                     本地用戶上傳文件的umask值

Local_root=/var/ftp                                                                    本地用戶的FTP根目錄

Chroot_local_user=[YES/NO]                                                   是否將用戶權限禁錮在FTP目錄,更加的安全

Local_max_rate=0                                                                    本地用戶最大傳輸速率(字節),0爲不限制

vdftpd 的驗證方式

vsftp 程序提供的FTP服務認證方式有:匿名訪問、本地用戶、虛擬用戶

①匿名用戶:任何人無需驗證口令即可登入FTP客戶端(用於存放公開的數據)

②本地用戶:使用FTP服務器中的用戶、密碼和資料

③虛擬用戶:創建獨立的FTP賬號資料

本地用戶和虛擬用戶需要用戶提供賬號和密碼後才能登入FTP服務,更加的安全,而虛擬用戶則是最安全的。

匿名訪問模式   比較不安全的訪問模式

使用 vim 打開vsftpd.conf 配置文件,填寫下面方框內參數後保存退出

   

重啓 vsftpd 服務程序並設置爲開機啓動

ftp 命令用於FTP服務, 格式爲:ftp [參數] [FTP主機]

如果出現拒接連接,請在配置文件末尾添加下圖指定用戶的權限配置文件存放的目錄

設置之後就可以使用匿名用戶登入FTP服務了,可以切換目錄但是不能創建目錄

查看所有與 ftp 相關的SELinux 規則

設置SELinux 服務對 ftp 服務的訪問規則策略爲允許

因爲FTP根目錄所有者/組都是 root,匿名用戶沒有寫入權限,所有還要將所有者改爲 ftp 

經過上面的操作之後匿名用戶登入FTP服務後就可以寫入、修改和刪除目錄了。

本地用戶模式      比匿名用戶模式更安全

vsftpd 服務程序默認已經允許本地用戶模式,我們要做的事添加設置本地用戶模式權限的參數:

  

填寫好參數之後保存退出 vsftpd.conf 文件,然後重啓 vsftpd 服務程序並設置爲開機自啓動

查看本地用戶:

在客戶端登入FTP服務

虛擬用戶模式      比本地用戶模式更安全

虛擬用戶模式的賬號口令都不是真實系統中存在的,配置虛擬用戶模式的操作步驟相對複雜一些:

①建立虛擬FTP用戶數據庫文件

②創建FTP根目錄及虛擬用戶映射的系統用戶

③建立支持虛擬用戶的PAM認證文件

④在 vsftpd.conf 文件中添加支持配置

⑤爲虛擬用戶設置不同的權限

⑥重啓 vsftpd 服務,驗證

第一步:建立虛擬 FTP 用戶數據庫文件

切換到 vsftpd 程序目錄:

創建用於生成 FTP 用戶數據庫的原始賬號和密碼文件(奇數爲賬號,偶數爲密碼)

使用 db_load 命令用 HASH算法生成 FTP 用戶數據庫文件 vuser.db

第2步:創建 FTP根目錄及虛擬用戶映射的系統用戶

爲保證其他用戶可以訪問,給與 讀取和可執行權限(rwxr-xr-x)

第3步:建立支持虛擬用戶的 PAM 認證文件

第4步:在 vsftpd.conf 文件中添加支持的配置

 

   

第5步:創建空白的 chd 的配置文件,指定 chuid 用戶的具體權限

第6步:重啓 vsftpd 服務,驗證

 

可插拔認證模塊 PAM   

PAM 是一種認證安全機制的模塊(插件),通過一些動態鏈接庫和統一的 API 將系統提供的服務與認證方式分開,使得管理員可以根據需求靈活的調整服務程序的不同認證方式。

PAM採取了分層設計的思想:①應用程序層②應用接口層③鑑別模塊層

PAM模塊的重要目錄:

/lib/security:pam 認證模塊

/etc/pam.d:針對不同服務而定義好的 pam 配置文件

 例:vsftpd 程序會在主配置文件(/etc/vsftpd/vsftpd.conf)中寫入下面的參數:

pam_service_name=vsftpd

表示登錄FTP服務器時是根據 /etc/pam.d/vsftpd 的文件內容進行安全認證的。

 

 

 

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