假设我在一台主机上有两个接口,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 中添加文件来配置此功能。通常默认情况下转发是禁用的,因此您可能有一行启用转发。
一些防火墙构建器将根据配置启用或禁用转发。