iptables防火牆工做原理

iptables防火牆工做原理安全

簡介:iptables防火牆工做在網絡層,針對TCP/IP數據包實施過濾和限制,iptables防火牆基於內核編碼實現,具備很是穩定的性能和高效率;服務器

   iptables屬於「用戶態」的防火牆管理體系。網絡

 

 

 

規則表                                                                                  app

filter表:filter表用來對數據包進行過濾,根據具體的規則要就決定如何處理一個數據包。對應內核模塊:iptable_fileter。共包含三個鏈。性能

nat表:nat(Network Address Translation,網絡地址轉換)表主要用於修改數據包 ip地址,端口號等信息。對應的內核模塊爲iptable_nat,共包含三個鏈。測試

mangle表:mangle表用來修改數據包的TOS(Type Of Service,服務類型),TTL(Time To Live,生存週期)值,或者爲數據包設置Mark標記,以實現流量整形,策略路由等高級應用。對應的內核模塊爲      iptable_mangle,共包含五個鏈。編碼

raw表:raw表示自1.2.9之後版本的iptables新增的表,主要來決定是否對數據包進行狀態跟蹤。對應的內核模塊爲iptable_raw,共包含兩個鏈。spa

 

規則鏈                                                                                            blog

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

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

FORWARD鏈:當接收到須要經過防火牆中轉發送給其餘地址的數據包(轉發)是,應用測鏈中的規則。

PREROUTING鏈:在對數據包作路由選擇以前,應用測鏈中的規則。

POSTROUTING鏈:在對數據包作路由選擇以後,應用此鏈中的規則。

簡要說明:其中INPUT,OUTPUT鏈主要用在「主機防火牆」中。即主要針對服務器本機驚醒保護的防火牆;而FORWARD,PREROUTING,POSTROUTING鏈多用在「網絡型防火牆」中,例如使用Linux防火牆做爲網關     服務器在公司與Inetnet之間進行安全控制。

 

數據包過濾工做流程                                                                          

規則表應用優先級:raw→mangle→nat→filter

各條規則的應用順序:鏈內部的過濾遵循「匹配即中止」的原則,若是對比完整個鏈也沒有找到和數據包匹配的規則,則會按照鏈的默認策略進行處理。

 

入站數據流向:數據包到達防火牆後首先被PREROUTING鏈處理(是否修改數據包地址等),而後進行路由選擇(判斷數據包發往何處),若是數據包的目標地址是防火牆本機(如:Internet用戶訪問網關的Web服務端口),那麼內核將其傳遞給INPUT鏈進行處理(決定是否容許經過等)。

轉發數據流向:來自外界的數據包到達防火牆後首先被PREROUTTING鏈處理,而後再進行路由選擇;若是數據包的目標地址是其餘的外部地址(如局域網用戶經過網關訪問QQ服務器),則內核將其傳遞給FORWARD鏈進行處理(容許轉發,攔截,丟棄),最後交給POSTROUTING鏈(是否修改數據包的地址等)進行處理。

出站數據流向:防火牆本機向外部地址發送的數據包(如在防火牆主機中測試公網DNS服務時),首先被OUTPUT鏈處理,而後進行路由選擇,再交給POSTROUTING鏈(是否修改數據包的地址等)進行處理。

 

命令實戰                                                                                              

語法:

iptables [ - t 表名 ]  管理選項  [鏈名]  [匹配條件]  [-j 控制類型]

未指定表名時將默認使用filter表。

 

控制類型:

 ACCEPT:容許數據包經過。

 DROP:直接丟棄數據包,不給出任何迴應信息。

 REJECT:拒絕數據包經過,會給數據發送端一個響應信息。 

 

拒絕發給本機使用ICMP協議的數據包:iptable -t filter -I INPUT -p icmp -j REJECT

  • -A   在指定鏈的末尾添加(--append)一條新的規則
  • -D   刪除(--delete)指定鏈中的某一條規則,可指定規則須要或具體內容。
  • -I    在指定鏈中插入(--insert)-條新的規則,未指定序號時默認做爲第一條規則。
  • -R   修改,替換(--replace)指定鏈中的某一條規則,可指定規則序號或具體內容。
  • -L   列出(--list)指定鏈中的全部規則,若未指定鏈名,則清空表中的全部鏈。
  • -P   設置指定鏈的默認策略(--policy)。
  • -n   使用數字形式(--numeric)顯示輸出結果,如顯示ip地址而不是主機名
  • -v   查看規則列表時顯示詳細(--verbose)的信息。
  • -line-numbers   查看規則列表時,同時顯示規則在鏈中的順序號。

 


 

做者:唐勝偉
出處:http://www.cnblogs.com/tangshengwei/本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。

相關文章
相關標籤/搜索