路由完成后,有没有什么办法可以过滤数据包(例如通过 iptables)?

路由完成后,有没有什么办法可以过滤数据包(例如通过 iptables)?

我想在到达 POSTROUTING 链后丢弃发往 ip_address 的某些数据包。但是,对于 iptables,“nat”表不能用于过滤,因此以下方法不起作用:

iptables -t nat -A POSTROUTING -d ip_address -j DROP

那么有什么办法可以做到这一点吗?如果 iptables 无法做到这一点,还有其他选择吗?请指教。谢谢。

答案1

路由在后路由链执行之前立即完成(因此得名)。

我认为,您想要完成的任何任务的方法都不是正确的方法,因为这是不可能的。但是,任何合理的过滤谓词通常都会在后路由之前存在。您应该能够将相同的过滤条件应用到转发或输出规则上,否则会导致您想要过滤的后路由发生变化。

请参阅此图表了解数据包如何流经 iptables:

在此处输入图片描述

这个出色的图表有时仍被保留,并且来自http://xkr47.outerspace.dyndns.org/netfilter/packet_flow/

相关内容