Iptables 例外不起作用

Iptables 例外不起作用

我想用 iptables 设置防火墙,但它总是阻止我不想阻止的东西 :(

添加例外并执行以下代码后:
iptables -A INPUT -j DROP

我无法运行:
curl www.whatismyip.com/automation/n09230945.asp
curl www.whatismyip.com

我添加了 whois 列出的 whatismyip.com 的所有 IP 和名称服务器:

iptables -A 输入 -s 72.233.195 -j 接受
iptables -A 输入 -s 72.233.195 -j 接受
iptables -A 输入 -s 72.233.195 -j接受
iptables -A 输入 -s 72.233.195 -j 接受 iptables -A 输入 -s 72.233.195 -j 接受
iptables
-A 输入 -s 72.233.195 -j 接受

发现自:http://cqcounter.com/whois/

答案1

要检查的一些事项:

  • 您是否阻止了 DNS?仅仅解除对 whatismyip.com 名称服务器的阻止是不够的;要找出 www.whatismyip.com 正在使用的名称服务器,您的机器至少需要通过另一个名称服务器。
  • 您的 OUTPUT 策略中是否有任何内容阻止您访问该站点?

此外,为了进行调试,我建议您在每个 -j DROP 前面立即添加 -j LOG;这样,您就可以查看系统日志以查看删除了什么。

答案2

我建议使用状态检查iptables。通过添加此规则

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

您调用的页面的 DNS 服务器和 Web 服务器可以向您发送对您的请求的响应。

当然您必须在 OUTPUT 链上允许 DNS 和 HTTP 请求。

答案3

以下是名称为 www.whatismytrip.com 的 IP

72.233.89.198 72.233.89.199 72.233.89.200

1) 按照“tetromino”的建议,检查您的 DNS 设置。查看名称是否已解析。

2) 您使用 -A 选项将规则附加到 INPUT 链的末尾。使用 iptables -L 检查默认的 drop-all 规则是否是最后一个。

3)您还必须在OUTPUT链中为其解析的所有IP添加规则。

iptables -A 输出 -d 72.233.89.198 -j 接受

相关内容