Centos7搭建vsftpd及被動模式下的防火牆設定
一、安裝vsftpd:yum -y install vsftpd
二、 建立使用者名稱
useradd zhangsan
passwd 123456
useradd lisi
passwd 123456
在配置檔案下設定拒絕匿名訪問
重啟下服務
systemctl restart vsftpd.service
將lisi新增進黑名單
vim /etc/vsftpd/ftpusers
黑名單是路徑位於/etc/vsftpd/user_list
暫時關閉selinux的安全模式與防火牆
setenforce 0 (0是關閉,1是開啟,重啟後失效)
測試一下,zhangsan能夠登陸,lisi無法登陸
匿名使用者登陸的話,此時上傳檔案是不能上傳檔案的,Linux伺服器預設vsftpd的檔案存放在/var/ftp/下,進入這個目錄修改許可權,使其它使用者具有修改的許可權
測試一下上傳檔案是成功的
使用zhangsan使用者登陸,無法上傳和下載檔案,zhangsan的ftp檔案目錄存放在/home/zhangsan下,檢視一下發現zhangsan的許可權只有drwx——,給予許可權chmod 777 zhangsan
測試一下能夠上傳檔案
三、 開啟防火牆與selinux
systemctl start firewall_service
進入/etc/selinux/config下修改檔案,使selinux永久生效(setenforce 0只是暫時性關閉)
SELINUX=enforcing
測試一下
四、 將伺服器設定為被動模式
在/etc/vsftpd/vsftpd.conf下新增,伺服器預設開啟的是被動模式(port_enable=NO)關閉主動模式
connect_from_port=20(預設情況下,主動模式傳輸資料使用20號埠,yes為使用,no不使用)
五、被動模式防火牆設定
firewall-cmd –zone=public –add-port=21/tcp –permanent 開啟21號埠
firewall-cmd –zone=public –add-port=30000-40000/tcp –permanent 開啟30000到40000的埠
firewall-cmd –add-service=ftp –permanent 永久開發ftp服務
重啟防火牆
firewall-cmd –reload
檢視開放的埠
六、 連線上去無法開啟檔案的錯誤
此時要注意,不管伺服器端是主動還是被動,客戶端連線伺服器的ftp時,客戶端都是用passive(被動模式),檢視一下客戶機,window系統在 internet選項高階使用被動ftp(用於防火牆和DSL調變解調器的相容)
此時ftp上去會提示錯誤
200 Switching to ASCII mode.
200 PORT command successful. Consider using PASV
425 Failed to establish connection.
顯示已連線成功,但是無法開啟
此時上Linux檢視下sellinux的故障報錯
檢視一下ftp布林引數
getsebool –a | grep ftpd
由上邊的故障提示檢視
ftpd_connect_all_unreserved 關閉了,需要允許連線的ftp無保留的通過,敲下命令
setsebool -P ftpd_connect_all_unreserved 1
再檢視下
此時測試一下成功
七、 使用抓包工具檢視
第一次發表,思路有些不是很清晰!!記錄下學習,一天一點積累