vsftp被動模式啓用iptables訪問設置




vsftp被動模式啓用iptables訪問設置

vsftpd服務搭建好之後,如果是使用主動模式訪問。那麼啓用iptables只需添加以下規則即可:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --sport 20 -j ACCEPT

這樣客戶端需要更改爲主動模式即可連接成功並可進行數據傳輸。
但是瀏覽器或者ftp連接工具一般默認都是使用pasv方式進行默認連接。爲了保證客戶端儘可能簡單設置的原則,那麼需要設置服務器端能夠支持默認的pasv方式連接。
1、編輯/etc/sysconfig/iptables-config文件,添加以下兩行:

IPTABLES_MODULES="ip_conntrack_ftp"
IPTABLES_MODULES="ip_nat_ftp"

請一定注意兩行內容的位置關係不要搞反了。如果將"ip_nat_ftp"放到前面是加載不到的。如果你的ftp服務是過路由或者防火牆(即內網映射方式一定需要此模塊)。以上等同於在加載iptables之前運行modprobe命令加載"ip_nat_ftp"和"ip_conntrack_ftp"模塊。

2、編輯iptables文件添加如下兩行:

[root@xmydlinux ~]# grep 21 /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --sport 21 -j ACCEPT

3、檢查iptables文件是否存在以下行(默認是有的),如沒有則添加;

-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

4、重啓iptables服務

[root@xmydlinux ~]# service iptables restart
清除防火牆規則: [ 確定 ]
把 chains 設置爲 ACCEPT 策略:filter [ 確定 ]
正在卸載 Iiptables 模塊: [ 確定 ]
應用 iptables 防火牆規則: [ 確定 ]
載入額外 iptables 模塊:ip_nat_ftp [ 確定 ]

可以使用以下命令查看模塊是否加載成功

[root@xmydlinux ~]# lsmod |grep ftpip_nat_ftp 8881 0
iptable_nat 27237 1 ip_nat_ftpip_conntrack_ftp 76273 1 ip_nat_ftpip_conntrack 45957 4 ip_nat_ftp,iptable_nat,ip_conntrack_ftp,ipt_state

以上說明模塊加載成功。。

現在就可以使用被動模式連接試試是否成功。

以上修改完成測試沒有問題。使用系統爲centos5.5。vsftpd版本2.0.5。。

但是我在rhel4.0的主機上,vsftp版本2.0.1。同樣操作卻提示操作失敗。。最後在vsftpd.conf配置文件添加以下一句就搞定了。。僅作參考:

[root@xmydlinux ~]# tail -1 /etc/vsftpd/vsftpd.conf
pasv_enable=YES



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