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

ton*_*ytz 1 nat routing iptables

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

iptables -t nat -A POSTROUTING -d ip_address -j DROP
Run Code Online (Sandbox Code Playgroud)

那么有没有办法做到这一点?如果 iptables 做不到,有没有其他选择?请指教。谢谢你。

Fal*_*mot 10

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

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

有关数据包如何流经 iptables 的信息,请参见此图:

在此处输入图片说明

这个优秀的图表有时仍然维护,来自http://xkr47.outerspace.dyndns.org/netfilter/packet_flow/