iptables之四表五鏈

 

iptables可謂是SA的看家本領,需要着重掌握。隨着雲計算的發展和普及,很多雲廠商都提供類似安全組產品來修改機器防火牆。

 

iptables概念

iptables只是Linux防火牆的管理工具而已。真正實現防火牆功能的是netfilter,它是Linux內核中實現包過濾的內部結構。

 

iptables具體是如何去過濾各種規則的呢?請看下面的四表五鏈

四表五鏈概念

  • filter表——過濾數據包
  • Nat表——用於網絡地址轉換(IP、端口)
  • Mangle表——修改數據包的服務類型、TTL、並且可以配置路由實現QOS
  • Raw表——決定數據包是否被狀態跟蹤機制處理
  • INPUT鏈——進來的數據包應用此規則鏈中的策略
  • OUTPUT鏈——外出的數據包應用此規則鏈中的策略
  • FORWARD鏈——轉發數據包時應用此規則鏈中的策略
  • PREROUTING鏈——對數據包作路由選擇前應用此鏈中的規則(所有的數據包進來的時侯都先由這個鏈處理)
  • POSTROUTING鏈——對數據包作路由選擇後應用此鏈中的規則(所有的數據包出來的時侯都先由這個鏈處理)

 

 

再來一張十分形象的netfilter圖:

 

 

上圖十分清晰的表明數據包的流向。由於四表中我們常用的就只有filter和nat,所以再來一張鳥哥版精簡圖:

默認4種規則表
raw表:是自1.2.9以後版本的iptables新增的表,debug測試,確認是否對該數據包進行狀態跟蹤,對應的內核模塊爲iptable_raw,包含兩個鏈:PREROUTING - OUTPUT

mangle表:主要用於修改數據包的TOS(Type Of Service,服務類型)、TTL(Time ToLive,生存週期)值以及爲數據包設置Mark標記,以實現Qos (Quality of Service,服務質量)調整以及策略路由等應用,由於需要相應的路由設備支持,因此應用並不廣泛。對應的內核模塊爲iptable_mangle,包含五個鏈:

nat表:(Network Address Translation,網絡地址轉換)主要用於修改數據包的IP地址、端口號等信息。修改數據包中源地址和目標ip地址或端口,這是我們要學的重點,內核模塊爲iptable_nat,在nat表中定義的有PREROUTING - POSTROUTING - OUTPUT三個規則鏈.

filer表:對數據包進行過濾,准許什麼數據包通過,不許什麼數據包通過.並且這個規則表也是默認的.這也是重點,對應的內核模塊爲iptable_ filter,在filter中 有INPUT - FORWARD - OUTPUT三個規則鏈.

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