EBtable 不工作

EBtable 不工作

我想更进一步,安装 EBtables(2 层过滤和路由表)。其目的是只允许最低限度的必要(IPv4 和 ARP)。为了测试它,我运行了:

ebtables -P INPUT DROP
ebtables -P FORWARD DROP
ebtables -P OUTPUT DROP

然后我测试了一下ping 8.8.8.8,果然得到了回复。我尝试了其他几种组合,检查没有其他表,但 ping 仍然有效。如果 EBtables 不能阻止/过滤,那就毫无意义。

我是不是试图阻止 ICMP,我试图阻止除 IPv4 之外的所有内容。为了测试 EBtables,我尝试过使用 ICMP,但它没有被阻止(意味着 EBtables 不起作用)。

我究竟做错了什么? (Debian Squeeze、iptables 等、EBtables v2.0.9-2)

答案1

它不起作用,因为 ebtables 应该只与桥接设备一起使用(我认为这不是你的情况)。改为查看 iptables。

答案2

听起来你根本不需要 ebtables。 Ebtables 用于处理跨桥接设备路由的流量。您描述的用例由 iptables 控制。

Ping 使用 ICMP 数据包,可以使用 iptables 上的 icmp 协议选项来阻止。

iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP

答案3

其他人关于您滥用 ebtables 的说法都是正确的。然而,要真正回答你的问题,如果你所做的只是输入上述命令,仅此而已,那么它不起作用的原因是这些命令只是修改“策略”,这就是 ebtables 在数据包发生变化时对数据包所做的事情。没有要经过的链,或者数据包经过了一条链而没有被规则接收。

因此,您可能有一些数据包正在经过的链被 ACCEPT 规则接收。

使用任何“x”表的典型方法是首先清除所有链,然后设置策略,然后输入链,然后用规则填充链。

相关内容