如何阻止两个接口之间的所有流量?

如何阻止两个接口之间的所有流量?

假设我在一台主机上有两个接口,eth0 和 eth1。我目前看到的行为是:

在 eth0 上接收流量,它在 eth1 上找到合适的路由并尝试发送。

我已经拦截了从 eth0 传入的数据包,因此我想停止此转发并丢弃所有从 eth0 传入的数据包,而不是将它们发送到 eth1。

本质上,我想阻止一台主机上两个接口之间的所有流量。使用 iptables 或路由可以实现这一点吗?

答案1

iptables -A FORWARD -i eth0 -o eth1 -j DROP应该按照你的要求去做。

答案2

您应该能够使用 来在内核级别控制这一点sysctl。将 net.ipv4 和/或 net.ipv6 转发值设置为关闭。

net.ipv4.conf.all.forwarding = 0
net.ipv4.conf.eth0.forwarding = 0
net.ipv4.conf.eth1.forwarding = 0

根据发行版,您可以在启动时通过编辑 /etc/sysctl.conf 或在 /etc/sysctl.d 中添加文件来配置此功能。通常默认情况下转发是禁用的,因此您可能有一行启用转发。

一些防火墙构建器将根据配置启用或禁用转发。

相关内容