vsftpd+iptables
1.查看系统版本
[root@Apache vsftpd]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID: CentOS Description: CentOS release 6.5 (Final) Release: 6.5 Codename: Final [root@Apache vsftpd]#
- 由于FTP采用的是被动方式传输,所以使用的端口是随机的, 造成iptable 无法打开指定的端口 所以我们需要把FTP使用的端口限定在一定范围内。
方法如下: 编辑/etc/vsftpd/vsftpd.conf在文件后面添加如下代码:
pasv_enable=YES //使用被动模式,等待客户端连接
pasv_min_port=60001 pasv_max_port=60010
然后保存,wq 重启vsftp
[root@Apache vsftpd]# service vsftpd restart
- 编辑iptable的配置文件
[root@Apache vsftpd]# vim /etc/sysconfig/iptables
添加如下代码,开放端口60001~60010
-A INPUT -m state --state NEW -m tcp -p tcp --dport 60001:60010 -j ACCEPT
同时要将默认的FTP,21要端口添加到放行端口的列表
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 60001:60010 -j ACCEPT //开放端口60001到60010 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT //开放21端口 -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
4.重启iptables
[root@Apache vsftpd]# service iptables restart