ftp實現普通賬號和vip賬號限速
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賬號限速