首頁 > 軟體

Netfilter/Iptables詳解

2020-06-16 18:03:41

防火牆的簡介

防火牆是指設定在不同網路或網路安全域之間的一系列部件的組合,它能增強機構內部網路的安全性。它通過存取控制機制,確定哪些內部服務允許外部存取,以及允許哪些外部請求可以存取內部服務。它可以根據網路傳輸的型別決定 IP 包是否可以傳進或傳出內部網路。

防火牆通過審查經過的每一個封包,判斷它是否有相匹配的過濾規則,根據規則的先後順序進行一一比較,直到滿足其中的一條規則為止,然後依據控制機制做出相應的動作。如果都不滿足,則將封包丟棄,從而保護網路的安全。

防火牆可以被認為是這樣一對機制:一種機制是攔阻傳輸流通行,另一種機制是允許傳輸流通過。一些防火牆偏重攔阻傳輸流的通行,而另一些防火牆則偏重允許傳輸流通過。

通過使用防火牆可以實現以下功能:可以保護易受攻擊的服務;控制內外網之間網路系統的存取;集中管理內網的安全性,降低管理成本;提高網路的保密性和私有性;記錄網路的使用狀態,為安全規劃和網路維護提供依據。

防火牆的分類防火牆技術根據防範的方式和側重點的不同而分為很多種型別,但總體來講可分為包過濾防火牆和代理伺服器兩種型別。

防火牆的工作原理1.包過濾防火牆工作原理

--------------------------------------分割線 --------------------------------------

iptables使用範例詳解 http://www.linuxidc.com/Linux/2014-03/99159.htm

iptables—包過濾(網路層)防火牆 http://www.linuxidc.com/Linux/2013-08/88423.htm

Linux防火牆iptables詳細教學 http://www.linuxidc.com/Linux/2013-07/87045.htm

iptables+L7+Squid實現完善的軟體防火牆 http://www.linuxidc.com/Linux/2013-05/84802.htm

iptables的備份、恢復及防火牆指令碼的基本使用 http://www.linuxidc.com/Linux/2013-08/88535.htm

Linux下防火牆iptables用法規則詳解 http://www.linuxidc.com/Linux/2012-08/67952.htm

--------------------------------------分割線 --------------------------------------

2.代理服務型防火牆工作原理

代理服務型防火牆是在應用層上實現防火牆功能的。它能提供部分與傳輸有關的狀態,能完全提供與應用相關的狀態和部分傳輸的資訊,它還能處理和管理資訊。

iptables簡介netfilter/iptables(簡稱為iptables)組成 Linux 平台下的包過濾防火牆,與大多數的Linux 軟體一樣,這個包過濾防火牆是免費的,它可以代替昂貴的商業防火牆解決方案,完成封包過濾、封包重定向和網路地址轉換(NAT)等功能。

iptables基礎

規則(rules)其實就是網路管理員預定義的條件,規則一般的定義為“如果封包頭符合這樣的條件,就這樣處理這個封包”。規則儲存在核心空間的資訊包過濾表中,這些規則分別指定了源地址、目的地址、傳輸協定(如TCP、UDP、ICMP)和服務型別(如HTTP、FTP和SMTP)等。當封包與規則匹配時,iptables就根據規則所定義的方法來處理這些封包,如放行(accept)、拒絕(reject)和丟棄(drop)等。設定防火牆的主要工作就是新增、修改和刪除這些規則。

鏈(chains)是封包傳播的路徑,每一條鏈其實就是眾多規則中的一個檢查清單,每一條鏈中可以有一條或數條規則。當一個封包到達一個鏈時,iptables就會從鏈中第一條規則開始檢查,看該封包是否滿足規則所定義的條件。如果滿足,系統就會根據該條規則所定義的方法處理該封包;否則iptables將繼續檢查下一條規則,如果該封包不符合鏈中任一條規則,iptables就會根據該鏈預先定義的預設策略來處理封包。

表(tables)提供特定的功能,iptables內建了4個表,即filter表、nat表、mangle表和raw表,分別用於實現包過濾,網路地址轉換、包重構(修改)和資料跟蹤處理。

iptables傳輸封包的過程

① 當一個封包進入網絡卡時,它首先進入PREROUTING鏈,核心根據封包目的IP判斷是否需要轉送出去。

② 如果封包就是進入本機的,它就會沿著圖向下移動,到達INPUT鏈。封包到了INPUT鏈後,任何進程都會收到它。本機上執行的程式可以傳送封包,這些封包會經過OUTPUT鏈,然後到達POSTROUTING鏈輸出。

③ 如果封包是要轉發出去的,且核心允許轉發,封包就會如圖所示向右移動,經過FORWARD鏈,然後到達POSTROUTING鏈輸出。

iptables命令格式

iptables的命令格式較為複雜,一般的格式如下:

iptables [-t table] 命令 [chain] [rules] [-j target]

table——指定表明

命令——對鏈的操作命令

chain——鏈名

rules——規則

target——動作如何進行

1.表選項

表選項用於指定命令應用於哪個iptables內建表,iptables內建包括filter表、nat表、mangle表和raw表。

2.命令選項iptables命令格式

-P或--policy  :定義預設策略

-L或--list  :檢視iptables規則列表

-A或—append  :在規則列表的最後增加1條規則

-I或--insert  :在指定的位置插入1條規則

-D或--delete  :從規則列表中刪除1條規則

-R或--replace  :替換規則列表中的某條規則

-F或--flush  :刪除表中所有規則

-Z或--zero  :將表中封包計數器和流量計數器歸零

3.匹配選項

-i或--in-interface  :指定封包從哪個網路介面進入,如ppp0、eth0和eth1等

-o或--out-interface  :指定封包從哪塊網路介面輸出,如ppp0、eth0和eth1等

-p或---proto協定型別  :指定封包匹配的協定,如TCP、UDP和ICMP等

-s或--source  :指定封包匹配的源地址

--sport :指定封包匹配的源埠號,可以使用“起始埠號:結束埠號”的格式指定一個範圍的埠

-d或--destination  :指定封包匹配的目標地址

--dport目標埠號:指定封包匹配的目標埠號,可以使用“起始埠號:結束埠號”的格式指定一個範圍的埠

更多詳情見請繼續閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2015-03/115447p2.htm


IT145.com E-mail:sddin#qq.com