我的CentOS 6.2机器上有iptables。 安装和configurationapache2与SSL支持,并与iptables禁用。
当我添加以下规则:
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
当我保存这个并重新启动iptables,在浏览器中的连接超时…任何build议?
完整的脚本
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [19:1748] -A INPUT -p tcp -m tcp --dport 389 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
您将此规则添加到您的iptables的末尾。
如果你有一个:
iptables -A INPUT -j DROP
在此之前,数据包将被丢弃,然后再评估您的规则。 您应该尝试将规则放在顶部(插入,而不是附加):
iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT # -I instead of -A
此外,iptables立即应用,所以它应该工作,而不保存/重新启动重新启动。
-A INPUT -j REJECT --reject-with icmp-host-prohibited -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
第一行:如果现在的规则已经匹配,拒绝这个数据包。 REJECT是一个terminal规则,所以如果在匹配之后什么都没有匹配的话就进行评估。
自从443之后,它将永远不会被testing。 您需要将您的规则插入到拒绝行上方的脚本中。
iptables -I用于在活动表上插入规则。
而不是使用iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT将该规则放在INPUT表的末尾,应该使用iptables -I INPUT 5 -p tcp -m tcp --dport 443 -j ACCEPT把它放在INPUT表中的“REJECT”规则之前。
没有必要把它作为表中的第一个条目,只要将该规则放在“拒绝”规则之上就足够了。 此外,您可能更愿意将选项-m state --state NEW添加到您的命令,以便它只会匹配新的连接。