FTP鏈接及傳輸模式linux
控制鏈接:TCP 21,用於發送FTP命令信息數據庫
數據鏈接:TCP 20,用於上傳、下載數據安全
數據鏈接的創建類型:服務器
主動模式:服務端從20端口主動向客戶端發起鏈接ide
被動模式:服務端在指定範圍內某個端口被動等待客戶端鏈接工具
環境準備:(同網段兩臺虛擬機、一臺客戶機、一臺服務器)測試
注意:iptables和Selinux對服務的影響:ui
兩臺虛擬機IP:加密
服務器搭建:spa
㈠、匿名用戶操做:
匿名用戶登陸實驗:(實現匿名用戶上傳、下載、建立,刪除、目錄、文件)
服務端安裝軟件(vsftpd)
客戶端須要安裝FTP軟件
服務端修改配置文件(/etc/vsftpd/vsftpd.conf)
客戶端登陸:
此時客戶端登陸後上傳文件顯示的仍是失敗:
這時,咱們先查看一下,FTP服務默認開放目錄的權限:
發現,目錄並無權限支持用戶上傳,這時咱們更改目錄的權限(更改目錄擁有者爲FTP)
這時,重啓服務後,再登陸就能夠上傳了
上傳:
下載:
建立目錄:
刪除:
㈡、本地用戶操做實驗:
注意:iptables和Selinux對實驗的影響
服務器端:
安裝軟件(vsftpd)
修改配置文件:
建立登陸用戶:
啓動服務客戶端驗證:
客戶端:
須要安裝ftp工具(ftp)
測試上傳、下載:
因爲此時雖然是用戶登陸,可是用能夠任意切換到某個目錄下,查看相應文件,這對系統的安全存在很大的隱患,咱們須要採起措施來限制用戶來禁止離開本身的家目錄:
這時咱們要引入chroot機制,修改服務器端配置文件:
注意:將配置文件中此三項所有開啓以後:效果是:
在/etc/vsftpd/建立chroot_list文件,在此文件中添加的用戶將容許離開本身的家目錄。
此時咱們系統中有三個,測試用戶:
在chroot_list文件中添加cwy用戶,容許cwy用戶離開本身的家目錄,其餘用戶則禁止:
客戶端測試:
發現,chroot_list文件中添加的cwy用戶能夠離開本身的家目錄,未被添加進去的用戶zhangsan則被禁止離開。
此時在服務器端修改第二種狀況:
開啓後面兩個,獲得的效果是:添加的用戶將被禁止離開家目錄,未被添加進去的用戶,則能夠離開
客戶端驗證:
爲了加強ftp服務器的安全性,這裏能夠禁止特定的惡意用戶登錄:
這裏分爲兩種狀況:userlist_enable=YES&&userlist_deny=YES
userlist_enable=YES&&userlist_deny=NO
當userlist_enable=YES&&userlist_deny=YES時:
(/etc/vsftpd/user_list文件中的用戶將被禁止登錄)
客戶端驗證:
當userlist_enable=YES&&userlist_deny=NO時:
(/etc/vsftpd/user_list文件中外的用戶將被禁止登錄)
客戶端驗證:
注意:出如今/etc/vsftpd/ftpusers文件中的用戶將被所有禁止登陸,無論userlist相關文件作什麼設置,ftpusers權限高於其餘!
㈢、虛擬用戶登陸實驗:
建立用戶文件:
在/etc/vsftpd/目錄下建立virtual.list
生成用戶數據庫文件:
進入/etc/pam.d/目錄下,建立pam認證模塊配置:
建立虛擬映射用戶:
修改配置文件,開啓虛擬用戶模塊:
建立vsftpd_dir目錄,併爲不一樣用戶,設置不一樣權限:
u1用戶能夠上傳
u2用戶能夠建立目錄
u3用戶能夠給文件更名
客戶端測試:
注意:爲用戶所設置的權限,配置文件中必需要添加,與之對應,不然不生效!
Openssl+vsftpd加密驗證方式:
因爲ftp在傳輸過程當中使用密碼明文傳輸方式,這樣用戶的密碼、帳戶等信息都暴露在互聯網上,極大地加強了服務器的風險:
例如:當用戶在登陸過程當中:
此時密碼和帳戶信息是能夠被破解的:
這時須要對用戶登陸過程過程加密:
安裝軟件
檢查vsftpd是否支持ssl
生成加密信息:
把證書存放到特定目錄:
修改配置文件/etc/vsftpd/vsftpd.conf
客戶端驗證: