Sha*_*off 41 firewall iptables
我有一个带有防火墙的系统。防火墙由 1000 多个 iptables 规则组成。这些规则之一是丢弃我不想丢弃的数据包。(我知道这一点,因为我确实iptables-save
遵循了iptables -F
并且应用程序开始工作。)有太多规则需要手动排序。我可以做些什么来告诉我哪个规则正在丢弃数据包吗?
Bil*_*hor 23
您可以在链的早期添加一个 TRACE 规则来记录数据包遍历的每个规则。
我会考虑使用iptables -L -v -n | less
让你搜索规则。我会看港口;地址; 和适用的接口规则。鉴于您有如此多的规则,您可能正在运行一个几乎封闭的防火墙,并且缺少流量的许可规则。
防火墙是怎么搭建的?查看构建器规则可能比查看构建规则更容易。
Kyl*_*ndt 17
由于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
Run Code Online (Sandbox Code Playgroud)
这样,您将只看到递增的规则。
watch -n1 -d "iptables -tfilter -vnxL | grep -vE 'pkts|Chain' | sort -nk1hr | column -t"
Run Code Online (Sandbox Code Playgroud)
请记住,这只会显示 table filter 的内容。
如果你想要所有的表,试试这个:
watch -n1 -d "(iptables -tfilter -vnxL;iptables -tnat -vnxL;iptables -tmangle -vnxL;iptables -traw -vnxL;iptables -tsecurity -vnxL) | grep -vE 'pkts|Chain' | sort -nk1,1hr | column -t"
Run Code Online (Sandbox Code Playgroud)