iptables 问题

iptables 问题

大家好,我的 ubuntu 12.04 服务器有以下 iptables 文件。它有点乱,因为我尝试了不同的方法来修复它,但问题是它不允许运行 apt 命令(例如 apt-get)。它显示连接到 archive.ubuntu.com 并且连接超时。我猜这与传出规则有关,但我不确定。使用 UFW 也出现了完全相同的问题。您能否建议我如何修复/改进我的 iptables 结构,或者修复 UFW 使其正常工作。谢谢!

更新::

于 2012 年 5 月 14 日星期一 23:09:19 完成
# 由 iptables-save v1.4.12 于 2012 年 5 月 14 日星期一 23:09:19 生成
*筛选
:输入下降 [0:0]
:转发接受 [0:0]
:输出接受 [0:0]
-A 输入 -m 状态 --状态相关,已建立 -j 接受
-A 输入-p tcp -m tcp --dport 22 -j 接受
-A 输入-p tcp -m tcp --dport 80 -j 接受
-A 输入-p tcp -m tcp --dport 443 -j 接受
-A 输入-p tcp -m tcp --dport 3306 -j 接受
-A 输入 -s 127.0.0.1/32 -j 接受
-A 输入 -m 限制 --limit 5/分钟 -j LOG --log-prefix "iptables denied" --log-level 7
-A 输入-p icmp -m icmp --icmp-type 0 -j 接受
-A 输入-p icmp -m icmp --icmp-type 8 -j 接受
-A 输入-p tcp -m tcp --sport 53 -j 接受
-A 输入-p udp-m udp --sport 53-j 接受
-A 输入-i lo -j 接受
犯罪
# 于 2012 年 5 月 14 日星期一 23:09:19 完成

答案1

您有冗余规则,所有OUTPUT规则 ( A OUTPUT) 都是冗余的,因为-A OUTPUT -j ACCEPT规则 (“接受所有传出流量”)。如果您将 OUTPUT 策略设置为ACCEPT而不是DROP(“如果没有规则匹配,则接受所有传出流量” vs “如果没有规则匹配,则忽略/丢弃所有传出流量”),则此规则本身是不必要的。要设置策略,请使用:

:OUTPUT ACCEPT

(计数器不是必需的,也已被删除)。由于您的 OUTPUT 链没有问题,请查看您的输入链。我没有发现任何明显问题,允许现有 TCP 连接(包括握手数据包)和 DNS 响应的行是存在的:

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

作为调试辅助,我建议您使用-v( --verbose) 标志作为规则匹配计数器。我最喜欢的是每秒更新一次的统计数据:

sudo watch -n1 iptables -vnL

这可能是与 iptables 无关的问题。也许您的路由表有误、DNS 服务器无效或上游路由器阻止了您的流量。

有关的:

答案2

我认为解决此问题的最简单方法是刷新所有规则,然后逐一重新添加,直到它停止工作。请注意,如果您从远程执行此操作,则当您盲目刷新/清零所有规则时,您的默认 DROP 策略可能会断开您的连接。

相关内容