防火墻的基本分類
1.包過濾防火墻
第一代防火墻和最基本形式防火墻檢查每一個通過的網絡包,或者丟棄,或者放行,取決于所建立的一套規則。這稱為包過濾防火墻。
本質上,包過濾防火墻是多址的,表明它有兩個或兩個以上網絡適配器或接口。例如,作為防火墻的設備可能有兩塊網卡(NIC),一塊連到內部網絡,一塊連到公共的Internet。防火墻的任務,就是作為“通信警察”,指引包和截住那些有危害的包。
包過濾防火墻檢查每一個傳入包,查看包中可用的基本信息(源地址和目的地址、端口號、協議等)。然后,將這些信息與設立的規則相比較。如果已經設立了阻斷telnet連接,而包的目的端口是23的話,那么該包就會被丟棄。如果允許傳入Web連接,而目的端口為80,則包就會被放行。
多個復雜規則的組合也是可行的。如果允許Web連接,但只針對特定的服務器,目的端口和目的地址二者必須與規則相匹配,才可以讓該包通過。
最后,可以確定當一個包到達時,如果對該包沒有規則被定義,接下來將會發生什么事情了。通常,為了安全起見,與傳入規則不匹配的包就被丟棄了。如果有理由讓該包通過,就要建立規則來處理它。
建立包過濾防火墻規則的例子如下:
對來自專用網絡的包,只允許來自內部地址的包通過,因為其他包包含不正確的包頭部信息。這條規則可以防止網絡內部的任何人通過欺騙性的源地址發起攻擊。而且,如果黑客對專用網絡內部的機器具有了不知從何得來的訪問權,這種過濾方式可以阻止黑客從網絡內部發起攻擊。
在公共網絡,只允許目的地址為80端口的包通過。這條規則只允許傳入的連接為Web連接。這條規則也允許與Web連接使用相同端口的連接,所以它并不是十分安全。
丟棄從公共網絡傳入的包,而這些包都有你的網絡內的源地址,從而減少IP欺騙性的攻擊。丟棄包含源路由信息的包,以減少源路由攻擊。要記住,在源路由攻擊中,傳入的包包含路由信息,它覆蓋了包通過網絡應采取得正常路由,可能會繞過已有的安全程序。通過忽略源路由信息,防火墻可以減少這種方式的攻擊。
2.狀態/動態檢測防火墻
狀態/動態檢測防火墻,試圖跟蹤通過防火墻的網絡連接和包,這樣防火墻就可以使用一組附加的標準,以確定是否允許和拒絕通信。它是在使用了基本包過濾防火墻的通信上應用一些技術來做到這點的。
當包過濾防火墻見到一個網絡包,包是孤立存在的。它沒有防火墻所關心的歷史或未來。允許和拒絕包的決定完全取決于包自身所包含的信息,如源地址、目的地址、端口號等。包中沒有包含任何描述它在信息流中的位置的信息,則該包被認為是無狀態的;它僅是存在而已。
一個有狀態包檢查防火墻跟蹤的不僅是包中包含的信息。為了跟蹤包的狀態,防火墻還記錄有用的信息以幫助識別包,例如已有的網絡連接、數據的傳出請求等。
例如,如果傳入的包包含視頻數據流,而防火墻可能已經記錄了有關信息,是關于位于特定IP地址的應用程序最近向發出包的源地址請求視頻信號的信息。如果傳入的包是要傳給發出請求的相同系統,防火墻進行匹配,包就可以被允許通過。
一個狀態/動態檢測防火墻可截斷所有傳入的通信,而允許所有傳出的通信。因為防火墻跟蹤內部出去的請求,所有按要求傳入的數據被允許通過,直到連接被關閉為止。只有未被請求的傳入通信被截斷。
如果在防火墻內正運行一臺服務器,配置就會變得稍微復雜一些,但狀態包檢查是很有力和適應性的技術。例如,可以將防火墻配置成只允許從特定端口進入的通信,只可傳到特定服務器。如果正在運行Web服務器,防火墻只將80端口傳入的通信發到指定的Web服務器。
狀態/動態檢測防火墻可提供的其他一些額外的服務有:
將某些類型的連接重定向到審核服務中去。例如,到專用Web服務器的連接,在Web服務器連接被允許之前,可能被發到SecutID服務器(用一次性口令來使用)。
拒絕攜帶某些數據的網絡通信,如帶有附加可執行程序的傳入電子消息,或包含ActiveX程序的Web頁面。
跟蹤連接狀態的方式取決于包通過防火墻的類型:
TCP包。當建立起一個TCP連接時,通過的第一個包被標有包的SYN標志。通常情況下,防火墻丟棄所有外部的連接企圖,除非已經建立起某條特定規則來處理它們。對內部的連接試圖連到外部主機,防火墻注明連接包,允許響應及隨后再兩個系統之間的包,直到連接結束為止。在這種方式下,傳入的包只有在它是響應一個已建立的連接時,才會被允許通過。
UDP包。UDP包比TCP包簡單,因為它們不包含任何連接或序列信息。它們只包含源地址、目的地址、校驗和攜帶的數據。這種信息的缺乏使得防火墻確定包的合法性很困難,因為沒有打開的連接可利用,以測試傳入的包是否應被允許通過。可是,如果防火墻跟蹤包的狀態,就可以確定。對傳入的包,若它所使用的地址和UDP包攜帶的協議與傳出的連接請求匹配,該包就被允許通過。和TCP包一樣,沒有傳入的UDP包會被允許通過,除非它是響應傳出的請求或已經建立了指定的規則來處理它。對其他種類的包,情況和UDP包類似。防火墻仔細地跟蹤傳出的請求,記錄下所使用的地址、協議和包的類型,然后對照保存過的信息核對傳入的包,以確保這些包是被請求的。
3.應用程序代理防火墻
應用程序代理防火墻實際上并不允許在它連接的網絡之間直接通信。相反,它是接受來自內部網絡特定用戶應用程序的通信,然后建立于公共網絡服務器單獨的連接。網絡內部的用戶不直接與外部的服務器通信,所以服務器不能直接訪問內部網的任何一部分。
另外,如果不為特定的應用程序安裝代理程序代碼,這種服務是不會被支持的,不能建立任何連接。這種建立方式拒絕任何沒有明確配置的連接,從而提供了額外的安全性和控制性。
例如,一個用戶的Web瀏覽器可能在80端口,但也經常可能是在1080端口,連接到了內部網絡的HTTP代理防火墻。防火墻然后會接受這個連接請求,并把它轉到所請求的Web服務器。