iptables四個表與五個鏈間的處理關係

netfilter/iptables IP 信息包過濾系統是一種功能強大的工具,可用於添加、編輯和除去規則,這些規則是在做信息包過濾決定時,防火牆所遵循和組成的規則。這些規則存儲在專用的信息包過濾表中,而這些表集成在 Linux 內核中。在信息包過濾表中,規則被分組放在我們所謂的鏈(chain)中。

雖然 netfilter/iptables IP 信息包過濾系統被稱爲單個實體,但它實際上由兩個組件 netfilter 和 iptables 組成。

netfilter 組件也稱爲內核空間(kernelspace),是內核的一部分,由一些信息包過濾表組成,這些表包含內核用來控制信息包過濾處理的規則集。

iptables 組件是一種工具,也稱爲用戶空間(userspace),它使插入、修改和除去信息包過濾表中的規則變得容易。

iptables包含4個表,5個鏈。其中表是按照對數據包的操作區分的,鏈是按照不同的Hook點來區分的,表和鏈實際上是netfilter的兩個維度。

4個表:filter,nat,mangle,raw,默認表是filter(沒有指定表的時候就是filter表)。表的處理優先級:raw>mangle>nat>filter。

filter:一般的過濾功能

nat:用於nat功能(端口映射,地址映射等)

mangle:用於對特定數據包的修改

raw:有限級最高,設置raw時一般是爲了不再讓iptables做數據包的鏈接跟蹤處理,提高性能

5個鏈:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING。

PREROUTING:數據包進入路由表之前

INPUT:通過路由表後目的地爲本機

FORWARDING:通過路由表後,目的地不爲本機

OUTPUT:由本機產生,向外轉發

POSTROUTIONG:發送到網卡接口之前。如下圖:

 

Linux防火牆iptables的三表五鏈的關係

iptables中表和鏈的對應關係如下:

 

iptables規則

規則--顧名思義就是規矩和原則,和現實生活中的事情是一樣的,國有國法,家有家規,所以要遵紀守法的嘛。當然在防火牆上的規則,在內核看來,規則就是決定如何處理一個包的語句。如果一個包符合所有的條件,我們就用相應的處理動作來處理。書寫規則的語法格式爲:

iptables [-t table] command  chains [creteria]  -j  action

-t table就是表名,filter/nat/mangle三個表中的一個,默認是filter表

command告訴程序如何做,比如:插入一個規則,還是刪除等

chains 鏈,有五個,PREROUTING  POSTROUTING INPUT OUTPUT FORWARD

action 處理動作,有ACCEPT  DENY DROP REJECT  SNAT  DNAT

理一下思路


 

下面一點點的說

一、Tables

選項-t用來指定用哪個表,它可以是下面的任何一個,默認的是filter表

 

 

本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文鏈接:http://www.linuxidc.com/Linux/2012-08/67505.htm

本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文鏈接:http://www.linuxidc.com/Linux/2012-08/67952.htm

發佈了144 篇原創文章 · 獲贊 12 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章