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