歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

如何使用netfilter/iptables構建Linux防火牆

對於Internet上的系統,不管是什麼情況都要明確一點:網絡是不安全的。因此,雖然創建一個防火牆並不能保證系統100%安全,但卻是絕對必要的。Linux提供了一個非常優秀的防火牆工具—netfilter/iptables。它完全免費、功能強大、使用靈活、可以對流入和流出的信息進行細化控制,且可以在一台低配置機器上很好地運行。本文將簡單介紹使用netfilter/iptables實現防火牆架設和Internet連接共享等應用。

netfilter/iptabels應用程序,被認為是Linux中實現包過濾功能的第四代應用程序。netfilter/iptables包含在2.4以後的內核中,它可以實現防火牆、NAT(網絡地址翻譯)和數據包的分割等功能。netfilter工作在內核內部,而iptables則是讓用戶定義規則集的表結構。netfilter/iptables從ipchains和ipwadfm(IP防火牆管理)演化而來,功能更加強大。下文將netfilter/iptabels統一稱為iptables。

可以用iptables為Unix、Linux和BSD個人工作站創建一個防火牆,也可以為一個子網創建防火牆以保護其它的系統平台。iptales只讀取數據包頭,不會給信息流增加負擔,也無需進行驗證。要想獲得更好的安全性,可以將其和一個代理服務器(比如squid)相結合。

基本概念

典型的防火牆設置有兩個網卡:一個流入,一個流出。iptables讀取流入和流出數據包的報頭,將它們與規則集(Ruleset)相比較,將可接受的數據包從一個網卡轉發至另一個網卡,對被拒絕的數據包,可以丟棄或按照所定義的方式來處理。

通過向防火牆提供有關對來自某個源地址、到某個目的地或具有特定協議類型的信息包要做些什麼的指令,規則控制信息包的過濾。通過使用iptables系統提供的特殊命令iptables建立這些規則,並將其添加到內核空間特定信息包過濾表內的鏈中。關於添加、去除、編輯規則的命令,一般語法如下:

iptables [-t table] command [match] [target]

1.表(table)

[-t table]選項允許使用標准表之外的任何表。表是包含僅處理特定類型信息包的規則和鏈的信息包過濾表。有三個可用的表選項:filter、nat和mangle。該選項不是必需的,如果未指定,則filter作為缺省表。各表實現的功能如表1所示。

 

表1 三種表實現的功能

2.命令(command)

command部分是iptables命令最重要的部分。它告訴iptables命令要做什麼,例如插入規則、將規則添加到鏈的末尾或刪除規則。表2是最常用的一些命令及例子。

 

表2 命令的功能和樣例

 

3.匹配(match)

iptables命令的可選match部分指定信息包與規則匹配所應具有的特征(如源地址、目的地址、協議等)。匹配分為通用匹配和特定於協議的匹配兩大類。這裡將介紹可用於采用任何協議的信息包的通用匹配。表3是一些重要且常用的通用匹配及示例說明。

 

表3 通用匹配及示例說明

 

4.目標(target)

目標是由規則指定的操作,對與那些規則匹配的信息包執行這些操作。除了允許用戶定義的目標之外,還有許多可用的目標選項。表4是常用的一些目標及示例說明。

除表4外,還有許多用於建立高級規則的其它目標,如LOG、REDIRECT、MARK、MIRROR和MASQUERADE等。

 

表4 目標及示例說明

Copyright © Linux教程網 All Rights Reserved