ettables 基本使用

2021-07-24 08:12:19 字數 3256 閱讀 4322

2012-10-24 16:51

12617人閱讀收藏

舉報

linux-net(6)

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

oracle基本使用

ocm oracle 大師認證 ocp oracle 專家認證 oca oracle 初級認證 認證 1千 1.oracle啟動 電腦 管理 服務 oracleorahome90tnslistener oracleservice 你要開啟的資料庫 2.oracle使用者 syssystem scot...

Git基本使用

設定使用者名稱與郵箱 git config global user.name my name git config global user.email my email.com 從已有的git庫中提取 每次更改 的操作 更新本地 到最新版本 需要merge才能合到本地 中 git fetch 合併更...

PyMongo基本使用

引用pymongo import pymongo 建立連線connection import pymongo conn pymongo.connection localhost 27017 或import conn connection localhost 27017 建立connection時,指...