vsftpd被动模式下启用iptables访问设置的方法分享(图文)

发布时间:2019-09-10编辑:脚本学堂
本文介绍下,在vsftpd的被动模式下,启用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 ftp
ip_nat_ftp 8881 0
iptable_nat 27237 1 ip_nat_ftp
ip_conntrack_ftp 76273 1 ip_nat_ftp
ip_conntrack 45957 4 ip_nat_ftp,iptable_nat,ip_conntrack_ftp,ipt_state

以上说明模块加载成功。

现在就可以使用被动模式连接试试是否成功,如下图:
vsftpd被动模式

以上修改完成测试没有问题。使用系统为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