ebtables
是一个用于管理以太网帧的防火墙工具,主要用于在数据链路层(第 2 层)过滤和控制网络流量。它类似于 iptables
,但专注于以太网流量。以下是 ebtables
的基本使用方法和示例。
基本命令
ebtables
的基本命令格式如下:
ebtables [options] [command] [chain] [rule-specification]
常用命令
-
查看当前规则:
sudo ebtables -L
这将列出当前的所有规则。
-
添加规则:
例如,允许来自特定 MAC 地址的流量:
sudo ebtables -A FORWARD -s 00:11:22:33:44:55 -j ACCEPT
这条规则允许源 MAC 地址为
00:11:22:33:44:55
的流量通过FORWARD
链。 -
删除规则:
要删除特定规则,可以使用
-D
选项。例如,删除刚才添加的规则:sudo ebtables -D FORWARD -s 00:11:22:33:44:55 -j ACCEPT
-
拒绝特定流量:
例如,拒绝来自特定 MAC 地址的流量:
sudo ebtables -A FORWARD -s 00:11:22:33:44:66 -j DROP
-
保存规则:
ebtables
的规则不会在重启后自动保存。您可以使用以下命令将规则保存到文件中:sudo ebtables-save > /etc/ebtables.rules
然后,您可以在启动时加载这些规则:
sudo ebtables-restore < /etc/ebtables.rules
-
清空所有规则:
如果您想清空所有规则,可以使用:
sudo ebtables -F
示例
以下是一个完整的示例,展示如何使用 ebtables
:
# 允许来自特定 MAC 地址的流量
sudo ebtables -A FORWARD -s 00:11:22:33:44:55 -j ACCEPT
# 拒绝来自另一个特定 MAC 地址的流量
sudo ebtables -A FORWARD -s 00:11:22:33:44:66 -j DROP
# 查看当前规则
sudo ebtables -L
# 保存规则
sudo ebtables-save > /etc/ebtables.rules
# 清空所有规则
sudo ebtables -F
注意事项
ebtables
主要用于以太网层的流量控制,适用于桥接网络环境。- 在使用
ebtables
时,确保您了解网络拓扑和流量流向,以避免意外阻止合法流量。
通过这些基本命令和示例,您可以开始使用 ebtables
来管理以太网流量。根据您的需求,可以逐步添加更复杂的规则和配置。
默认拒绝传入流量
sudo ebtables -P INPUT DROP