ebtables介紹【轉】

(轉自:https://blog.csdn.net/kv110/article/details/47919913

ebtables是與iptables類似的命令, 區別在於ebtables用於對以太網幀的過濾,iptables用於對ip數據包的過濾。

過濾流程見圖

1. 命令格式

ebtables [-t table ] -[ACDI] chain rule specification [match extensions] [watcher extensions] target
ebtables [-t table ] -P chain ACCEPT | DROP | RETURN
ebtables [-t table ] -F [chain]
ebtables [-t table ] -Z [chain]
ebtables [-t table ] -L [-Z] [chain] [ [--Ln] | [--Lx] ] [--Lc] [--Lmac2]
ebtables [-t table ] -N chain [-P ACCEPT| DROP| RETURN]
ebtables [-t table ] -X [chain]
ebtables [-t table ] -E old-chain-name new-chain-name
ebtables [-t table ] --init-table
ebtables [-t table ] [--atomic-file file]--atomic-commit
ebtables [-t table ] [--atomic-file file]--atomic-init
ebtables [-t table ] [--atomic-file file]--atomic-save

2. table

filter: 默認表,處理幀的過濾的表。沒有-t就指filter表
nat: 用於改變Mac地址的表(network address translation)
broute: 用於決定是route還是bridge的表。

3. Chain    Rule的集合,通常跟幀流向有關

默認的Chain:

filter: INPUT (接收的幀), OUTPUT(發出去的幀), FORWARD(要轉發的幀)

nat: PREROUTING(幀進來前處理,filter的INPUT之前), POSTROUTING(幀發出去時處理,OUTPUT之後), OUTPUT(要發出去的幀)

broute:只有一個BROUTING, 這個處理比較早。 只有兩個targets.一個是DROP(要路由), 另一個是ACCEPT(要橋接)。

4. 命令

4.1 Chain命令

-N, --new-chain        新建chain

-X, --delete-chain     刪除chain

-E, --rename-chain  重命名chain

-P, --policy    設置chain的default規則。如默認是ACCEPT, DROP 或RETURN.

-F, --flush     清空chain的規則

-Z, --zero     設置chain的counters爲0. 如沒有指定chain, 則所有chains的counter都置爲0

-L, --list  列出chain的規則(rules), 如沒有指定chain, 則指有chains.

4.2 rule命令

-A, --append  新加指定chain的一條rule在後面

-D, --delete 刪除指定chain的一條rule

-I, --insert 插入指定chain的一條rule

-C, --change-counters 改變指定chain的rule的counters

4.3 table命令

--init-table 用init_table數據替換當前table的數據

--atomic-init 拷貝kernel的table的init data到指定文件

--atomic-save 拷貝kernel的table的當前data到指定文件

--atomic-commit 用指定文件的數據替換當前的kernel table數據

4.4 其他命令

-V, --version 顯示版本信息

-h, --help

-j, --jump target    target指ACCEPT, DROP, CONTINUE, RETURN。

--atomic-file file    command來源於一個指定文件

-M, --modprobe program   如果某個module沒有load, 則在kernel裏load

--concurrent   在update kernel表時使用文件鎖來進行並行操作

5. target    指的是要做什麼操作。

通常指ACCEPT(接受,允許通過, BROUTE指bridge), DROP(不允許通過,放棄, BROUTE指route), CONTINUE(繼續下一個檢查), RETURN(這個檢查停止,進行上一個檢查調用的地方進行下一個檢查)。

target也可以用一個表達式,也可以是自定義的chain.

6. 規則匹配

-p, --protocol [!] protocol   協議匹配

-i, --in-interface [!] name  輸入接口匹配

-o, --out-interface [!] name 輸出接口匹配

--logical-in [!] name    邏輯輸入bridge接口
--logical-out [!] name 邏輯輸出bridge接口
-s, --source [!] address[/mask]                 源地址(MAC)
-d, --destination [!] address[/mask]           目的地址(MAC)

-c, --set-counter pcnt bcnt
更多匹配規則詳見http://ebtables.netfilter.org/misc/ebtables-man.html


參考文檔

http://ebtables.netfilter.org/misc/ebtables-man.html
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章