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

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

在設置ftp經過iptables規則前,須要先了解下ftp工做的兩種模式,他們分別是主動模式和被動模式。若是對ftp原理不是很清楚,能夠先參考下下面幾篇文章。html

FTP簡介

一、 FTP主動模式和被動模式的區別linux

二、 Active FTP vs. Passive FTP, a Definitive Explanationruby

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

瞭解ftp原理後,接下來就去設置iptables規則。我本身服務器上默認INPUT規則是DROP,OUTPUT是ACCEPT。服務器

命令

一、開放2一、20端口

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

若是OUTPUT默認也是DROP,那麼還須要添加一下規則。tcp

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

二、接受全部狀態爲ESTABLISHED、RELATED的鏈接

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

有關related狀態的說明:ui

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

三、配置iptables

# vi /etc/sysconfig/iptables-config

找到IPTABLES_MODULES,取消註釋,添加ip_conntrack_ftp模塊,保存。ip_conntrack_ftp模塊可讓iptables支持被動模式的ftp鏈接。.net

IPTABLES_MODULES="ip_conntrack_ftp"

四、保存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正常。rest

相關文章
相關標籤/搜索