當前位置:
首頁 > 最新 > Linux防火牆基礎與編寫防火牆規則

Linux防火牆基礎與編寫防火牆規則

Iptables採用了表和鏈的分層結構,每個規則表相當於內核空間的一個容器,根據規則集的不同用途劃分為默認的四個表,raw表,mangle表,nat表,filter表,每個表容器內包括不同的規則鏈,根據處理數據包的不同時機劃分為五種鏈,而決定是否過濾或處理數據包的各種規則,按先後順序存放在各規則鏈中。

1、防火牆:內核中具有包過濾體系

內核態:netfilter

用戶態:iptables 管理工具

工作在網路層:可以對ip地址、埠、協議等信息進行處理

2、規則鏈:規則的集合

五種鏈:(必須大寫)

INPUT:入站

OUTPUT:出站

FORWARD:轉發

POSTROUTING:路由後轉換

PREROUTING:路由前轉換

1)INPUT鏈:當收到訪問防火牆本機地址的數據包(入站),應用此鏈中的規則。

2)OUTPUT鏈:當防火牆本機向外發送數據包(出站)時,應用此鏈中的規則。

3)FORWARD鏈:當收到需要通過防火牆中轉發送給其他地址的數據包(轉發)時,應用此鏈中的規則。

4)PREROUTING鏈:在對數據包做路由選擇之前,應用此鏈中的規則。

5)POSTROUTING鏈:在對數據包做路由選擇之後,應用此鏈中的規則。

3、規則表:規則鏈的集合

有4個表:

Raw:狀態跟蹤

Mangle:設置標記

Nat:地址轉換

Filter:包過濾

1)filter表:用來對數據包進行過濾,表內包含三個鏈,即:INPUT,FORWARD,OUTPUT

2)Nat表:nat表主要用來修改數據包的ip地址、埠號等信息。包含三個鏈,即PREROUTING,POSTROUTING,OUTPUT

3)Mangle表:用來修改數據包的TOS、TTL,或者為數據包設置MARL標記,實現流量整形,策略路由等高級應用,包含五個鏈,PREROUTING,POSTROUTING,INPUT,OUTPUT,FORWARD

4)Raw表:用來決定是否對數據包進行狀態跟蹤,包含兩個鏈:即OUTPUT,PREROUTING

4、規則的匹配順序:

1)規則表的順序

當數據包抵達防火牆時,將依次應用raw表,mangle表,nat表和filter表中對應鏈內的規則,應用順序為raw-mangle-nat-filter

按順序依次檢查,匹配即停止(LOG策略除外),無匹配項,執行默認策略。

2)規則鏈之間的順序

入站數據流向:來自外界的數據包到達防火牆後,首先被PRETOUTING鏈處理,然後進行路由選擇,如果數據包的目標地址是防火牆本機,那麼內核將其傳遞給INPUT鏈進行處理,通過以後再講給系統的上層應用程序進行響應。

轉發數據流向:來自外界的數據包到達防火牆後,首先被PREROUTING鏈處理,然後再進行路由選擇,如果數據包的目的地址是其他外部的地址,則內核將其傳遞給FORWARD鏈進行處理,最後交給POSTROUTING鏈進行處理。

出站數據流向:防火牆本機向外部地址發送的數據包,首先被OUTOUT處理,然後進行路由選擇,再交給POSTROUTING鏈進行處理。

3)規則鏈內部各條防火牆規則之間的順序

當數據包經過每條規則鏈時,依次按第一條規則,第二條規則......的順序進行匹配和處理,鏈內的過濾遵循「匹配即停止」的原則,一旦找到一條相匹配的規則,則不再檢查本鏈內後續的其它規則,如果比對完整個鏈,也找不到與數據包相匹配的規則,就按照規則鏈的默認策略進行處理。

5、iptables語法:

Iptables -t 表名 命令選項 鏈名 條件選項 -j 控制類型

1)不指定表名,為filter表

2)命令選項、鏈名、控制類型必須大寫,其他必須小寫

3)條件選項可以設置多項

6、控制類型:

1)ACCEPT:允許

2)REJECT:拒絕,返回信息

3)DROP:丟棄,無信息

4)LOG:記錄日誌,傳給下一條規則

5)SNAT:源地址轉換

6)DNAT:目標地址轉換

7)MASQUERADE:ip偽裝,源地址轉換

8)REDIRECT:重定向

7、命令選項:

-A:追加到末尾

-I:插入(默認插入到第一條)

-L:查看

-D:刪除(必須加序號)

-F:清空,但默認策略不清空

-P:默認策略,只有ACCEPT或DROP兩種

-R:替換

-X:刪除自定義鏈

-N:新建自定義鏈

-n:以數字方式顯示

--line-number:添加序號

8、條件選項:

1)通用匹配:不依賴於任何條件可直接使用

-s:源地址 -d:目標地址

-p:協議 -i:入口

-o:出口 !:取反

2)隱含匹配:依賴指定的協議

--sport:源埠 --dport:目標埠

--tcp—flags:TCP標記

--icmp-type:icmp類型,有兩種:

Echo-request(可用8代替) 請求

Echo-reply(可用0代替) 回應

開啟轉發功能:

永久有效:vim /etc/sysctl.conf

生效:sysctl -p

臨時轉發,立即生效

Echo 「1」 > /proc/sys/net/ipv4/ip_forward

3)顯示配置:依賴於指定的功能模塊,必須明確指定模塊名稱才可以使用

多埠匹配:-m multiport --sports 源埠列表

-m multiport --dports 目的埠列表

IP範圍匹配:-m iprange --src-range ip範圍

MAC地址匹配:-m mac --mac-source MAC地址

狀態匹配:-m state --state 連接狀態


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

大果凍的深夜電台 2
寧願做乞丐,也不做國王

TAG:全球大搜羅 |