ebtables和
iptables
類似,都是
linux
系統下網路資料報過濾的配置工具。既然稱之為配置工具,就是說過濾功能是由核心底層提供支援的,這兩個工具只是負責制定過濾的
rules.
ebtables即是乙太網橋防火牆,乙太網橋工作在資料鏈路層,
ebtables
來過濾資料鏈路層資料報。
2.6核心內建了
ebtables
,要使用它必須先安裝
ebtables
的使用者空間工具(
ebtables-v2.0.6
),安裝完成後就可以使用
ebtables
來過濾網橋的資料報。 參照使用者實際要求,設定
ebtables
規則如下:
1:對所有的資料報預設通過
2:分清楚源位址和目的位址和源埠和目的埠
3:對tcp,u***
資料報分別過濾
ebtables 是主要是控制資料鏈路層的,在核心中,ebtables
的資料截獲點比
iptables 更「
靠前」,它獲得的資料更「原始
」,ebtables 多用於橋模式,比如控制
vlan id
等。 ebtables 就像乙太網橋的
iptables
。iptables
不能過濾橋接流量,而
ebtables
可以。ebtables
不適合作為
internet
防火牆。
一、過濾時機
要了解過濾時機,首先得了解網路資料報進入網絡卡後,在系統中的轉換流程,見下圖:
從上圖可以看到資料報從進入到離開系統,要經過preroute
,input
,forward
,output
,postroute
這五個階段。每個階段中包括了一些節點,每個節點就是乙個過濾時機。當資料報行進到某個節點時,系統就是檢測對應節點的過濾規則並進行過濾。從圖中還可以發現,對於每個階段,
ebtables
的過濾時機都比
iptables
要早。
二、ebtables
配置ebtables的配置分為表、鏈和規則**。
1. 表
表是內建且固定的,共有三種: filter, nat, broute
,用-t
選項指定。最常用的就是
filter
了,所以不設
-t時預設就是這個表。
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基本命令
有了上面的簡單介紹,再熟悉一些基本命令就可以使用了。
1. 列表:
ebtables -l
ebtables -l –
lc ,
檢視各rule
的匹配次數以及位元組數
2. 新建
/刪除鏈
ebtables -n
ebtables -x
3. 新建規則
ebtables -a [ rules ]
[rules]有幾種
-s 源
mac -d
目標mac -i
入介面
-o 出介面
命令示例:
ebtables -p forward accept
ebtables -p input accept
ebtables -p output accept
ebtables -f
ebtables -a forward -p ipv4 -i eth0/eth1 --ip-proto (6/17) --ip-dst(目的
ip) --ip-dport(
目的埠) -j drop
ebtables -a fprward -p ipv4 -i eth0/eth1 --ip-proto (7/17) --ip-src(源
ip) --ip-sport(
源埠) -j drop
ebtables基本使用說明
targets 1 accept 讓幀通過 2 drop 丟棄幀。3 continue 讓幀繼續走下面的規則 rule 注意 在brouting鏈中accept和drop有不同的含義 如果是drop,則規則 到路由 iptables 去處理 內建三個表 tables 1 filter 預設使用此表,...
ebtables的OUTPUT鏈DNAT問題
man一下ebtables即可知道,或者隨便想一下也會知道,ebtables在output鏈上可以做dnat,修改目的mac位址,和iptables一樣,到達output鏈的時候已經經過路由表了,只不過對於橋裝置,該路由表是乙個 mac位址 出口裝置 的對映表。我們知道,ip層的output鏈上作了...
ebtables的OUTPUT鏈DNAT問題
man一下ebtables即可知道,或者隨便想一下也會知道,ebtables在output鏈上可以做dnat,修改目的mac位址,和iptables一樣,到達output鏈的時候已經經過路由表了,只不過對於橋裝置,該路由表是乙個 mac位址 出口裝置 的對映表。我們知道,ip層的output鏈上作了...