it-swarm.cn

有没有办法找到哪个iptables规则负责丢弃数据包?

我有一个已配备防火墙的系统。防火墙包含1000多个iptables规则。这些规则之一是丢弃我不想丢弃的数据包。 (我知道这是因为我做了iptables-save 其次是 iptables -F,应用程序开始运行。)有太多规则无法手动分类。我可以做些什么来告诉我哪个规则丢弃数据包吗?

35
Shawn J. Goff

您可以在链的早期添加TRACE规则,以记录数据包遍历的每个规则。

我会考虑使用iptables -L -v -n | less让您搜索规则。我会看港口;地址;和适用的界面规则。鉴于您有太多的规则,您可能运行的是封闭的防火墙,并且缺少流量的允许规则。

防火墙如何构建?查看构建器规则可能比构建的规则容易。

21
BillThor

由于iptables -L -v -n具有计数器,您可以执行以下操作。

iptables -L -v -n > Sample1
#Cause the packet that you suspect is being dropped by iptables
iptables -L -v -n > Sample2
diff Sample1 Sample2

这样,您将仅看到递增的规则。

15
Kyle Brandt

iptables -L -v -n查看每个表和每个规则的包和字节计数器。

14
ninjalj

在我的公司中,我们使用watch -n 2 -d iptables -nvL,它显示请求之间的更改

9
Marcelo Salazar
watch -n1 -d "iptables -vnxL | grep -v -e pkts -e Chain | sort -nk1 | tac | column -t"

请记住,这只会显示表格的内容filter

-t nat(或除过滤器外使用的任何表)调用iptables,以检查那里的规则。

5
sjas