ebtables基本使用

2021-07-11 14:59:39 字數 3180 閱讀 9796

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鏈上作了...