安裝完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
5 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:631
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