CentOS系統IPTables防火牆中FTP規則設置


時間 2016-04-21 10:32:15  蟲蟲開源

在設置ftp通過iptables規則前,需要先了解下ftp工作的兩種模式,他們分別是主動模式和被動模式。如果對ftp原理不是很清楚,可以先參考下下面幾篇文章。

FTP簡介

1、 FTP主動模式和被動模式的區別

2、 Active FTP vs. Passive FTP, a Definitive Explanation

簡單的說,主動模式是從服務器端向客戶端發起連接;被動模式是客戶端向服務器端發起連接。兩者的共同點是都使用 21端口進行用戶驗證及管理,差別在於傳送數據的方式不同,PORT模式的FTP服務器數據端口固定在20,而PASV模式則在1025-65535之間 隨機。

了解ftp原理后,接下來就去設置iptables規則。我自己服務器上默認INPUT規則是DROP,OUTPUT是ACCEPT。

命令

1、開放21、20端口

# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
# iptables -A INPUT -p tcp --dport 21 -j ACCEPT

如果OUTPUT默認也是DROP,那么還需要添加一下規則。

# iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT

2、接受所有狀態為ESTABLISHED、RELATED的連接

# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

有關related狀態的說明:

RELATED狀態在有雙通道的服務中會出現的。比如ftp服務的控制通道和數據通道。client發送syn請求到server的21端口,中間的linux系統變為NEW狀態。server回復syn+ack應答包給client,中間的linux變為ESTABLISHED狀態。當ftp的控制通道建立完后,會建立數據通道,而數據通道的第一個包就是RELATED狀態,以后的包又變成ESTABLISHED狀態。

3、配置iptables

# vi /etc/sysconfig/iptables-config

找到IPTABLES_MODULES,取消注釋,添加ip_conntrack_ftp模塊,保存。ip_conntrack_ftp模塊可以讓iptables支持被動模式的ftp連接。

IPTABLES_MODULES="ip_conntrack_ftp"

4、保存iptables規則、重啟。

[root@iZ94myad6wkZ ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] [root@iZ94myad6wkZ ~]# service iptables restart iptables: Setting chains to policy ACCEPT: filter nat [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] iptables: Applying firewall rules: [ OK ] iptables: Loading additional modules: ip_conntrack_ftp [ OK ]

重啟iptables是多了個加載模塊的地址,ok正常。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM