標籤:ip地址 防火牆 filter linux 資料包 iptables
Linux包過濾防火牆概述
netfilter、iptables都可以稱作Linux的防火牆,區別在於netfilter位於Linux核心的包過濾功能體系中,叫做Linux防火牆的“核心態”;而iptables位於/sbin/iptables,是用來管理防火牆規則的工具,可以叫做Linux防火牆的“使用者態”。
iptables的作用在於為包過濾機制的實現提供了規則(策略),通過不同的規則告訴netfilter該怎麼處理資料包,為了方便管理,iptables採用了“表”和“鏈”的分層結構。稱為規則表、規則鏈,規則表相當一個容器,裡麵包涵有不同的規則鏈。根據處理時機的不同劃分為五種規則鏈,按順序放在不同的規則表中。根據功能的不同iptables劃分管理了四個表,分別為filter表、nat表、mangle表和raw表,各個表中包含的鏈及各自的用途如下:650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/54/99/wKiom1SHLrvSW0PEAAG3C2EbhGw307.jpg" title="" alt="wKiom1SHLrvSW0PEAAG3C2EbhGw307.jpg" />
filter表:確定是否允許存取資料包(過濾)。表內包涵三個鏈:INPUT、OUTPUT、FORWARD
nat表:修改資料包中的源、目標IP地址或連接埠。表內包涵三個鏈:PREROUTING、POSTROUTING、OUTPUT
mangle表:為資料包設定標記、修改TOS(type of service 服務類型)、TTL(生存周期)。表內包涵五個鏈:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
raw表:確定是否對該資料包進行狀態跟蹤。表內包涵兩個鏈:OUTPUT、PREROUTING
五個規則鏈的不同介入時機如下:
INPUT鏈:資料包入站時 OUTPUT鏈:資料包出站時 FORWARD鏈:當收到需要通過防火牆轉寄給其他地址的資料包時 PREROUTING鏈:在對資料包進行路由選擇之前 POSTROUTING鏈:在對資料包進行路由選擇後
當資料包到達防火牆時是按照什麼樣的順序來匹配規則表和規則鏈的呢? 下面有解》》》》》》
規則表之間的順序:當資料包到達防火牆時將依次應用raw、mangle、nat、filter表中對應鏈內的規則(如果有)。
規則鏈之間的順序:1、入站資料流向:首先被PREROUTING鏈處理,進行路由選擇,如果資料包的目標是防火牆本機,那麼將交給INPUT鏈處理,決定是否允許通過,通過以後再交給系統的上層應用程式進行響應。
2、轉寄資料流向:首先被PREROUTING鏈處理,進行路由選擇,再由FORWARD處理(允許轉寄或者攔截、丟棄),最後交給POSTROUTING鏈處理(是否修改資料包的地址等等)。 3、出站資料流向:先由OUTPUT鏈處理,再交給POSTROUTING鏈處理。
規則鏈內部各條防火牆規則之間的匹配順序:
當資料包經過每條規則鏈的時候將依次按第一、第二......條規則進行匹配,一旦找到一條相匹配的規則後就不再繼續檢查這個鏈後面的其他規則,既遵循“匹配即停止”的原則。如果都找不到相匹配的規則,就按照預設策略處理。
-------------------------------------------------------------------------------------
未完待續............
本文出自 “南國之境、” 部落格,請務必保留此出處http://452133dream.blog.51cto.com/8930483/1588121
Linux的iptables(一)