Iptables合理配置FTP策略

FTP簡要介紹:ftp協議是一個簡單、保密性差(明碼)的tcp協議,它的工作原理是客戶端先連服務器端的21端口,然後經過3步的握手以後建立了一條連接。要注意的是,這條連接只可以用來傳輸ftp的命令,只有這條連接的話是什麼都傳不了的,就算是用“ls”命令來查看文件也不行。

建立了命令的連接以後,服務器端就要建立一條數據的連接。數據的連接又分爲主動模式(port)和被動模式(passive)。

 PORT(主動)方式的連接過程:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈路上用PORT命令告訴服務器:“我打開了XXXX端口,你過來連接我”。於是服務器從20端口向客戶端的XXXX端口發送連接請求,建立一條 數據鏈路來傳送數據。

 PASV(被動)方式的連接過程:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時,服務器在命令鏈路上用PASV命令告訴客戶端:“我打開了XXXX端口,你過來連接我”。於是客戶端向服務器的XXXX端口發送連接請求,建立一條數據鏈路來 傳送數據。

ftp默認是被動模式,主動和被動之間使用"pass"命令切換。主動模式通過20端口與客戶端相連,而被動模式卻使用1024以後的端口與客戶端相連。由於1024以後的端口是隨機分配的,所以在被動模式下我們是不知道服務端是使用什麼端口與客戶端連接的。也就是說,我們是不知道iptables要開放什麼端口。

 

【測試環境 紅帽企業6.5】

業務需求:

(1)服務器1 的eth0網卡所連網絡屬於可信區域,不需要在服務器配置相關安全策略;

(2)服務器1的默認網關在eth0上;

(3)服務器1的eth1所連網絡是不可信區域,需要在服務器上配置iptables,實現eth1只允許接收或發送FTP相關數據,可以Ping通網卡IP地址,其餘請求全部丟棄;

(4)服務器1作爲client通過eth1網卡向FTP SERVER上傳文件;

wKioL1RFKw_xfQlAAAB7ToHVx8E843.jpg

【驗證FTP網絡正常】

在服務器1沒有配置任何的策略時先驗證FTP功能正常,例如:

(1)ssh 192.168.8.150登錄到服務器1

(2)執行ftp 192.168.80.4

(3)輸入用戶名和密碼

(4)執行mput xxx隨便上傳一個文件確認上傳正常

 

【配置iptables且只放行可信網絡eth0的流量】

(1)ssh 192.168.8.150登錄到服務器1

(2)執行如下iptables命令

       iptables -A INPUT -i eth0 -j ACCEPT

       iptables -A INPUT -s 127.0.0.0/8 -j ACCEPT

       iptables -A INPUT -p icmp -j ACCEPT

       iptables -P INPUT DROP

(3)執行service iptables save

(4)執行service iptables start

(5)登錄Network2中的客戶端,然後確認無法ssh登錄192.168.80.3,可ping通192.168.80.3,說明iptables生效

(6)執行ftp 192.168.80.4,會發現無法建立正常的FTP連接

【配置iptables且放行eth1的FTP流量第一步】

(1)ssh 192.168.8.150登錄到服務器1

(2)執行iptables -I INPUT 2 -i eth1 -p tcp --sport 21 -d 192.168.80.3 -j ACCEPT

(3)執行ftp 192.168.80.4

(4)輸入用戶名和密碼

(5)執行mput xxx隨便上傳一個文件,此時發現無法上傳

 

【配置iptables放行eth1的FTP流量第二步】

(1)ssh 192.168.8.150登錄到服務器1

(2)執行modprobe ip_nat_ftp

(3)執行modprobe ip_conntrack_ftp

(4)執行iptables -I INPUT 2 -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

(5)執行ftp 192.168.80.4

(6)輸入用戶名和密碼

(7)執行mput xxx隨便上傳一個文件,確認文件可正常上傳

wKiom1RFK3fBGnZHAAFdMAPdnS4363.jpg

 

wKioL1RFK9jDVkc_AABWQ8PBw2M647.jpg


(8)執行service iptables save

(9)執行vim /etc/sysconfig/iptables-config,修改相關內容如下

wKiom1RFK67RxQVyAACW4do3bi8348.jpg

(10)執行chkconfig iptables on設置開機啓動

(11)登錄Network2中的客戶端,然後確認無法ssh登錄192.168.80.3,可ping通192.168.80.3

(12)重啓服務器,然後再重新測試FTP上傳功能正常

wKioL1RFLBexMNMjAAD9OcFbF9k975.jpg

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