我有一个Linux服务器,默认的INPUT操作是DROP 。 OUTPUT和FORWARD都是ACCEPT 。
我必须添加哪条规则才能使机器build立FTP会话作为FTP客户端。 服务器不是FTP服务器。 这是我的防火墙规则。 为什么我不能ping任何远程机器或任何有关OUTPUT。
# Generated by iptables-save v1.4.12 on Wed Oct 10 15:30:17 2012 *nat :PREROUTING ACCEPT [379:59440] :INPUT ACCEPT [162:34762] :OUTPUT ACCEPT [5008:361967] :POSTROUTING ACCEPT [5008:361967] COMMIT # Completed on Wed Oct 10 15:30:17 2012 # Generated by iptables-save v1.4.12 on Wed Oct 10 15:30:17 2012 *filter :INPUT DROP [8:528] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [201:14768] :LOGGING - [0:0] -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p esp -j ACCEPT -A INPUT -i ppp+ -j ACCEPT -A INPUT -p udp -m udp --dport 500 -j ACCEPT -A INPUT -p udp -m udp --dport 4500 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -i lo -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A INPUT -p udp -m udp --dport 1701 -j ACCEPT -A FORWARD -i ppp+ -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
承诺
更新:
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p esp -j ACCEPT -A INPUT -i ppp+ -j ACCEPT -A INPUT -p udp -m udp --dport 500 -j ACCEPT -A INPUT -p udp -m udp --dport 4500 -j ACCEPT -A INPUT -p udp -m udp --dport 1701 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -i lo -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 -A FORWARD -i ppp+ -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
作为一个客户端 ,为了让FTP处于被动模式,只要允许后半部分连接即可:
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
尽pipe由于规则处理是顺序敏感的,因此您需要将该规则放在INPUT链的正确位置。 靠近顶部可能是一个好地方。
编辑:根据您发布的规则,允许输出stream量。 如果您认为不是,那么看到运行规则集不是启动规则集会很有帮助; 尝试iptables -L -n -v ,并发布的输出。
至于PING,你也不允许那些进入的人。 我上面的规定也应该开始那些工作。
您可能还需要确保FTP的连接跟踪模块已经加载(如果尚未加载的话)(正是它所调用的将取决于您的内核版本/分配)。