歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Netfilter/Iptables詳解

Netfilter/Iptables詳解

日期:2017/2/28 14:21:43   编辑:Linux教程

防火牆的簡介

防火牆是指設置在不同網絡或網絡安全域之間的一系列部件的組合,它能增強機構內部網絡的安全性。它通過訪問控制機制,確定哪些內部服務允許外部訪問,以及允許哪些外部請求可以訪問內部服務。它可以根據網絡傳輸的類型決定 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

Copyright © Linux教程網 All Rights Reserved