抱歉,问了这么愚蠢的问题,但我无法在 CentOS 6.5 上从浏览器打开我的 FTP (ProFTPd)。当我停止 IPtables 时,我没有遇到问题,但运行时就会出现问题。
端口21开放,端口20未开放(我不知道如何打开它)。
编辑1:
“iptables -L -n”的输出
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8000
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
编辑 2:@HBruijn 他的方式对我有用。
答案1
您的问题表述得不太好,但您描述的症状表明被动 FTP 与防火墙结合时无法正常工作。
通常,该命令insmod nf_conntrack_ftp
足以在配置不当的 RHEL6 或 CentOS 防火墙中加载 FTP 辅助模块。
为了使其持久:
编辑配置文件/etc/sysconfig/iptables-config
并将辅助模块添加nf_conntrack_ftp
到 IPTABLES_MODULES 变量:
IPTABLES_MODULES="nf_conntrack_ftp"
或将其添加到已列出的任何其他模块中。
答案2
您可以直接编辑 iptables 配置文件/etc/sysconfig/iptables
,然后重新启动 iptables 服务。或者修改并保存正在运行的配置。以 root 身份或 sudo 身份:
# If using a custom chain for this sort of thing, APPEND port to chain:
iptables -A MYCHAIN -m state --state NEW -p tcp --dport 20 -j ACCEPT
service iptables save
如果你的 INPUT 链中有一个 REJECT 行,你需要确保添加到防火墙的端口插入在 REJECT 之前:
# List the Chain with line numbers
iptables -L INPUT -n --line-numbers
# in this example 7 is REJECT line from the above, this will push the REJECT line down
# and insert this right above it:
iptables -I INPUT 7 -m state --state NEW -p tcp --dport 20 -j ACCEPT
service iptables save
如果需要的话,也不要忘记做同样的事情ip6tables
。