我尝试向 iptables 添加几个 Web 端口,但这样做失去了解析任何外部地址的能力。我打开了一个工作 SSH 会话,如果需要,可以轻松访问该盒子。
这是当前的 iptables 配置:
[user@boxen]# iptables --line-numbers -n -L
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443 /* 100 allow http and https access */ state NEW
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport ports 22 /* 100 ssh 22 */
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
和 cat /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:196]
-A INPUT -p tcp -m multiport --dports 80,443 -m comment --comment "100 allow http and https access" -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m multiport --ports 22 -m comment --comment "100 ssh 22" -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Wed Sep 25 14:20:02 2013
我无法 ping 通网关或其他任何东西。我能够 ping 通同一机架中另一个盒子上的网关。在 iptables 更新失败之前,我能够 ping 通网关。
这个配置有什么问题吗?
答案1
好吧,您丢弃了所有不属于以下内容的传入流量:
- TCP 端口 80 或 443
- TCP端口22
- 来自本地主机
最有可能的是,您打算制定如下规则:
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
现在您的 DNS 回复(通常是 UDP 源端口 53)正在被丢弃。您的 ICMP 回显回复(ping 响应)也是如此。