ebtables是以太网桥防火墙,以太网工作在数据链路层,ebtables过滤数据链路层包。2.6内核内置了ebtables,要使用它必须先按装她的用户空间工具(ebtables-V2.0.6),安装完成后可以使用ebtables来过滤网桥的数据包。

ebtables规则如下:

1)对所有的数据包默认通过

2)分清楚源地址、目的地址、源端口、目的端口

3)对TCP、udp包分别过滤

ebtables同iptables类似, 都是linux系统下的包过滤配置工具。包过滤功能是由内核底层进行支持的,ebtables和iptable只提供了过滤规则。

ebtables 是主要是控制数据链路层的,在内核中,ebtables 的数据截获点比 iptables 更“靠前”,它获得的数据更“原始”,ebtables 多用于模式,比如控制 VLAN ID 等。

ebtables 就像以太网桥的 iptables。iptables 不能过滤桥接流量,而 ebtables 可以。ebtables 不适合作为 Internet 防火墙。

ebtables的配置如下:

分为表、链和规则三级

1)表

表是内置且固定的,只有三种,分别是filter、nat(用于地址转换)、broute(主要用于以太网桥)。

2)链

分为内置和自定义两种。不同的表内置的链不同,这个从数据包的流程图中就可以看出来。所谓自定义的链也是挂接在对应的内置链内的,使用-j让其跳转到新的链中。
3. 规则

每个链中有一系列规则,每个规则定义了一些过滤选项。每个数据包都会匹配这些项,一但匹配成功就会执行对应的动作。

所谓动作,就是过滤的行为了。有四种,ACCEPT,DROP,RETURN和CONTINUE。常用的就是ACCEPT和DROP,另两种就不细述了。

Ebtables使用规则如下:

ebtables [-t table] -[ADI] chain rule-specification [match-extensions] [watcher-extensions]

-t table :一般为FORWARD链

-ADI:A添加到现有链的末尾;D删除规则链(必须指明规则链号);I插入新的规则链(必须指明规则链号)。

-P:规则表的默认规则的设置。可以DROP,ACCEPT,RETURN。

-F:对所有的规则表的规则链清空。

-L:指明规则表。可加参数,--Lc,--Ln

-p:指明使用的协议类型,ipv4,arp等可选(使用时必选)详情见/etc/ethertypes

--ip-proto:IP包的类型,1为ICMP包,6为TCP包,17为UDP包,在/etc/protocols下有详细说明

--ip-src:IP包的源地址

--ip-dst:IP包的目的地址

--ip-sport:IP包的源端口

--ip-dport:IP包的目的端口

-i:指明从那片网卡进入

-o:指明从那片网卡出去

 

ebtables基本配置命令