安装完vsftpd后,默认情况下,CentOS的防火墙是不开放ftp服务的,需要添加模块和开放21端口才能提供ftp访问。
1.添加ip_conntrack_ftp 模块
[root@hexuweb101 ~] vi /etc/sysconfig/iptables-config
添加下面一行
IPTABLES_MODULES="ip_conntrack_ftp"
2.打开21端口
[root@hexuweb101 ~] vi /etc/sysconfig/iptables
CentOS 5.x版本添加如下规则
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
CentOS 6.x版本添加如下规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
3.重启iptables使新的规则生效
[root@hexuweb101 ~] service iptables restart
4. 检查iptables 是否正常
[root@hexuweb101 ~]$service iptables status
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
3 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
8 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
10 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21
从结果上来看ftp的21号端口已打开,可以使用FTP软件登陆测试了。
另外说明一下,如果端口号20也没有打开的朋友,请使用命令:
[root@hexuweb101 ~]$iptables -A INPUT -p tcp --dport 20 -j ACCEPT
这时ftp连接已经可以,为了保险起见我们把被动模式连接的端口也打开:
[root@hexuweb101 ~]$iptables -A INPUT -p tcp --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT