1. 程式人生 > >ftp實現普通賬號和vip賬號限速

ftp實現普通賬號和vip賬號限速

都是 ble 說明 瀏覽器 認證 保存 get 防止 啟動服務

ftp工作流程:

ftp回話包含了兩個通道,控制通道和數據通道,ftp的工作有兩種模式,一種是主動模式,一種是被動模式,以ftpserver為參照物,主動模式,服務器主動連接客戶端傳輸,被動模式,等待客戶端的連接

主動模式:

ftp客戶端連接到ftp服務器的21端口,發送用戶名和密碼,客戶端隨機開放一個端口(1024以上),發送PORT命令道ftp服務器,告訴服務器客戶端采用主動模式並開放端口;ftp服務器收到PORT主動模式命令和端口號後,通過服務器的20端口和客戶端開放的端口連接,發送數據,(無論是主動模式還是被動模式,首先的控制通道都是先建立起來的,只是在數據傳輸模式上的區別)

被動模式(PASV):

工作原理:

ftp客戶端連接到ftp服務器的21端口,發送用戶名和密碼,發送PASV命令道ftp服務器,服務器在本地隨機開放一個端口(1024以上),然後把開放的端口告訴客戶端,客戶端再連接到服務器開放的端口進行數據傳輸,

服務環境:服務器(xuegod-server 192.168.2.9/24)客戶機(xuegod-client 192.168.2.64/24)

初始化服務器:

技術分享圖片

1,安裝所需軟件

技術分享圖片

LFTP :

lftp 是一個功能強大的下載工具,它支持訪問文件的協議:ftp,ftps,HTTP,HTTPS,fish,lftp的界面類似shell,有命令補全,歷史記錄,允許多個後臺任務執行等功能,使用起來非常方便,它還有書簽,排隊,鏡像,斷點續傳,多進程下載等功能,

vsftpd 相關文件

/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件

/etc/vsftpd/ftpusers:用於指定哪些用戶不能訪問FTP 服務器。 黑名單

/etc/vsftpd/user_list:指定允許使用vsftpd 的用戶列表文件。 默認情況下是黑名單,也可以改成白

也可使用 rpm -ql vsftpd 查看安裝產生的相關文件目錄

2,啟動服務,並設置開機啟動,

技術分享圖片

查看服務啟動與否

技術分享圖片

本機上測試服務運行情況:

技術分享圖片

3,配置虛擬賬號

(1)創建用戶文本文件,單數行為賬號,雙數行為密碼

技術分享圖片

(2)生成虛擬用戶數據庫:

技術分享圖片

參數說明:

選項-T允許應用程序能夠將文本文件轉譯載入進

數據庫

由於我們之虛擬用戶信息,以文本文件存儲的。為讓Vsftpd應用程序能夠通過來載入用戶數據,必須要使用選項來轉譯成vsftpd可以讀懂的內容。

-t hash使用hash碼加密

-f 指定包含用戶名和密碼文本文件。此文件格式要示:奇數行用戶名、偶數行密碼

[root@xuegod-server ~]# rm -rf /etc/vsftpd/vsftpd_user.txt  #為了安全起見,刪除原文件

(3)修改數據庫文件訪問權限

數據庫文件中保存著虛擬帳號的密碼信息,為了防止非法用戶盜取哈,我們可以修改該文件的訪

問權限。生成的認證文件的權限應設置為只對root 用戶可讀可寫,即600

技術分享圖片

4,配置PAM文件

為了使服務器能夠使用數據庫文件,對客戶端進行身份驗證,需要調用系統的PAM模塊。

PAM(Plugable Authentication Module)為可插拔認證模塊,不必重新安裝應用系統,通過修

改指定的配置文件,調整對該程序的認證方式。PAM 模塊配置文件路徑為/etc/pam.d/目錄,此

目錄下保存著大量與認證有關的配置文件,並以服務名稱命名。

修改vsftpd 對應的PAM 配置文件/etc/pam.d/vsftpd。將默認配置使用“#”全部註釋,添加兩行字段。修改後內容如下圖:

技術分享圖片

5,創建虛擬賬號對應的系統用戶及ftp共享的目錄

對於公共帳號和客戶帳號,因為需要配置不同的權限,所以可以將兩個帳號的目錄進行隔離,控

制用戶的文件訪問。公共帳號ftp 對應系統帳號ftpuser,並指定其主目錄為/var/ftp/share,

而客戶帳號vip 對應系統帳號ftpvip,指定主目錄為/var/ftp/vip。

6,創建虛擬帳號對應的系統用戶及ftp共享的目錄技術分享圖片

7,建立配置文件

(1)修改vsftpd.conf 主配置文件

配置主配置文件/etc/vsftpd/vsftpd.conf 添加虛擬帳號的共同設置並添加user_config_dir 字

段,定義虛擬帳號的配置文件目錄。

改:

anonymous_enable=YES

為:

anonymous_enable=NO

local_enable=YES #確認此選項打開,允許本地用戶登錄。 Uncomment :取消註釋

chroot_local_user=YES #確認此選項打開。將所有本地用戶限制在家目錄中,NO 則不限制

pam_service_name=vsftpd #確認在文件的最後有選項。配置vsftpd 使用的PAM 模塊為vsftpd

配置文件末尾,修改後內容如下:

技術分享圖片

user_config_dir=/etc/vsftpd/vuserconfig:設置虛擬帳號的主目錄為/vuserconfig

max_clients=300:設置FTP 服務器最大接入客戶端數為300 個

max_per_ip=10:設置每個IP 地址最大連接數為10 個

(2)建立虛擬帳號配置文件

技術分享圖片

配置虛擬帳號配置文件,寫入以下內容:

技術分享圖片

解釋:

guest_enable=yes開啟虛擬帳號登錄

guest_username=ftpuser設置ftp 對應的系統帳號為ftpuser

anon_world_readable_only=no允許匿名用戶瀏覽整個服務器的文件系統

anon_max_rate=50000限定傳輸速率為50KB/s

下面是VIP賬號的配置文件vip

技術分享圖片

解釋:

guest_enable=yes開啟虛擬帳號登錄

guest_username=ftpvip設置ftp 對應的系統帳號為ftpvip

anon_world_readable_only=no允許匿名用戶瀏覽器整個服務器的文件系統

write_enable=yes允許在文件系統寫入權限

anon_mkdir_write_enable=yes:允許創建文件夾

anon_upload_enable=yes開啟匿名帳號的上傳功能

allow_writeable_chroot=YES

anon_max_rate=100000限定傳輸速度為100KB/s

8、重啟vsftpd 使配置生效,建立測試文件,並使用客戶端測試,

systemctl restart vsftpd

dd寫入一個大文件:

技術分享圖片

分別把文件復制到普通賬號和VIP賬號共享目錄

技術分享圖片

9,在客戶機上下載測試

技術分享圖片

(1)確認客戶端lftp軟件已安裝:

技術分享圖片

(2)客戶端登錄並下載測試:

技術分享圖片

如上圖所示,可以看出普通賬號與VIP賬號的區別,

ftp實現普通賬號和vip賬號限速