这个iptables脚本:
#!/bin/sh service iptables stop iptables -F iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT service iptables save service iptables restart
在Centos 6.3服务器(由VPSBlocks.com.au提供)上按预期工作,但不是Centos 6.0服务器(由VPSNine.com提供)。 通过“按预期工作”,我的意思是,它至less允许访问端口22,80和443.通过不工作,我的意思是它不允许访问。
工作的有以下/ etc / sysconfig / iptables:
# Generated by iptables-save v1.4.7 on Wed Feb 27 19:10:38 2013 *filter :INPUT DROP [3:453] :FORWARD DROP [0:0] :OUTPUT ACCEPT [1:52] -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT COMMIT # Completed on Wed Feb 27 19:10:38 2013
而不工作的则有以下/ etc / sysconfig / iptables:
# Generated by iptables-save v1.4.7 on Wed Feb 27 11:28:36 2013 *mangle :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] COMMIT # Completed on Wed Feb 27 11:28:36 2013 # Generated by iptables-save v1.4.7 on Wed Feb 27 11:28:36 2013 *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m multiport --dports 22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPT COMMIT # Completed on Wed Feb 27 11:28:36 2013 # Generated by iptables-save v1.4.7 on Wed Feb 27 11:28:36 2013 *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] COMMIT # Completed on Wed Feb 27 11:28:36 2013
如果将非工作的/ etc / sysconfig / iptablesreplace为在另一个服务器上工作的那个,它允许我保留当前的ssh连接,但是当我尝试重新连接时,我被locking了。
为什么在一台服务器上完全相同的iptablesconfiguration工作,而不是另一台? CentOS的小版本(6.3和6.0)的差异是否可以解释不同的行为?
更新: Centos 6.3服务器(iptablesconfiguration工作的服务器)使用iptables 1.4.7-5.1.el6_2。 另一台服务器使用iptables 1.4.7-3.el6。
更新: iptables --list在这两个服务器上返回以下内容:
Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere multiport dports ssh,http,https state NEW,ESTABLISHED Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
更新:当我login到6.0服务器,我看到这个警告:
Warning: Unknown iptable module: nf_conntrack_ipv4, skipped
我不知道如何安装这个。 它是一个内核模块? 如果是这样,它看起来像我snookered。
iptables multiport是一个模块,检查它是否安装在目标CentOS系统上。
在脚本中,除了filter (-F)之外,您可能还需要flush所有表格,默认filter表格。
/sbin/iptables -F /sbin/iptables -t nat -F /sbin/iptables -t mangle -F
然后在/etc/sysconfig/iptables正上方接受与loopback接口的accept规则相同的已build立会话的连接。
-A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
您可能还需要手动加载nf_conntrack_ipv4模块 –
modprobe nf_conntrack_ipv4
如果多端口给你一个问题,你可以单独添加端口进行testing。