ebtables 是一个用于管理以太网帧的防火墙工具,主要用于在数据链路层(第 2 层)过滤和控制网络流量。它类似于 iptables,但专注于以太网流量。以下是 ebtables 的基本使用方法和示例。

基本命令

ebtables 的基本命令格式如下:

ebtables [options] [command] [chain] [rule-specification]

常用命令

  1. 查看当前规则

    sudo ebtables -L
    

    这将列出当前的所有规则。

  2. 添加规则

    例如,允许来自特定 MAC 地址的流量:

    sudo ebtables -A FORWARD -s 00:11:22:33:44:55 -j ACCEPT
    

    这条规则允许源 MAC 地址为 00:11:22:33:44:55 的流量通过 FORWARD 链。

  3. 删除规则

    要删除特定规则,可以使用 -D 选项。例如,删除刚才添加的规则:

    sudo ebtables -D FORWARD -s 00:11:22:33:44:55 -j ACCEPT
    
  4. 拒绝特定流量

    例如,拒绝来自特定 MAC 地址的流量:

    sudo ebtables -A FORWARD -s 00:11:22:33:44:66 -j DROP
    
  5. 保存规则

    ebtables 的规则不会在重启后自动保存。您可以使用以下命令将规则保存到文件中:

    sudo ebtables-save > /etc/ebtables.rules
    

    然后,您可以在启动时加载这些规则:

    sudo ebtables-restore < /etc/ebtables.rules
    
  6. 清空所有规则

    如果您想清空所有规则,可以使用:

    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
12-08 15:53