iptables = 数据包流 = 我能在 PREROUTING 链中安全地接受数据包吗?

iptables = 数据包流 = 我能在 PREROUTING 链中安全地接受数据包吗?

我有一些“受信任的 IP”,我想允许它们以“最小的性能影响”完全访问我的机器。这 PREROUTING -t mangle是数据包进入系统时要经过的第一个链。-j ACCEPTPREROUTING -t mangle链中使用有效/允许吗?

我不确定这是否允许,因为 PREROUTING 链位于内部 ROUTING 之前(!!)。如果我在 PREROUTING 链中接受一个数据包,会发生什么情况?这个数据包是否仍然会被正确路由?还是 -j ACCEPT 会导致“绕过”路由?

答案1

不。你应该只在过滤器链中设置所有允许/拒绝。Mangle 旨在以某种方式更改数据包。

如果流量与一系列 IP 地址匹配,您可以使用 mangle 在流量上设置 fwmark,然后通过 fwmark 允许流量。

答案2

在 iptables 中,ACCEPT基本上意味着“完成此链的处理,将数据包传递到下一个链”。

必须在 mangle 表中执行任何操作;路由将要无论你在那里做什么,都会发生这种情况。当然,只要你不丢弃数据包 :)

我认为以下页面将帮助您理解。它包含 2 个很好的图表,说明数据包如何遍历 netfilter/iptables 链。第一个更直观,第二个更规范(但遗憾的是过时了):

http://vinojdavis.blogspot.com/2010/04/packet-flow-diagrams.html

相关内容