防火牆的技術主要有:包過濾技術、代理服務技術、網絡翻譯技術、VPN技術、狀態檢查技術以及其他技術。
6.3.1包過濾技術
包過濾防火牆工作在網絡層,通常基於IP數據包的源地址、目的地址、源端口和目的端口進行過濾。它的優點是效率比較高,對用戶來說是透明的,缺點是對於大多數服務和協議不能提供安全保障,無法有效區分同一IP的不同用戶,並且包過濾防火牆難以配置、監控和管理,不能提供足夠的日誌和報警。
數據包過濾技術是在網絡層對數據包進行選擇,選擇的依據是係統內設置的過濾邏輯,被稱為訪問控製列表(ACL)。
數據包過濾防火牆的缺點是:一是非法訪問一旦突破防火牆,即可對主機上的軟件和配置漏洞進行攻擊;二是數據包的源地址、目的地址及IP的端口號都在數據包的頭部,很有可能被竊聽或假冒。過濾所提供的信息來源於IP、TCP或UDP包頭。
包過濾的優點是不用改動客戶機和主機上的應用程序,因為它工作在網絡層和傳輸層,與應用層無關。
1.包過濾模型
包過濾防火牆一般有一個包檢查模塊,可以根據數據包頭中的各項信息來控製站點與站點、站點與網絡、網絡與網絡之間的相互訪問,但不能控製傳輸的數據內容,因為內容是應用層數據。
包檢查模塊應該深入到操作係統的核心,在操作係統或路由器轉發包之前攔截所有的數據包。當包過濾型防火牆安裝在網關上之後,包過濾檢查模塊深入到係統的網絡層和數據鏈路層之間,即TCP層和IP層之間,搶在操作係統或路由器的TCP層對IP包的所有處理之前對IP包進行處理。因為數據鏈路層事實上就是網卡,網絡層是第一層協議堆棧,所以包過濾型防火牆位於軟件層次的最底層。
通過檢查模塊,防火牆能攔截和檢查所有進出的數據。防火牆檢查模塊首先驗證這個數據包是否符合過濾規則。
2.包過濾的工作過程
數據包過濾技術可以允許或不允許某些數據包在網絡上傳輸,主要依據如下:
(1)數據包的源地址。
(2)數據包的目的地址。
(3)數據包的協議類型(TCP、UDP、ICMP等)。
(4)TCP或UDP的源端口。
(5)TCP或UDP的目的端口。
(6)ICMP消息類型。
多數包過濾係統判決是否傳送數據包時都不關心包的具體內容。包過濾係統隻能進行以下情況的操作:
(1)不讓任何用戶從外部網用Telnet登錄。
(2)允許任何用戶使用SMTP往內部網發電子郵件。
(3)隻允許某台機器通過NNTP往內部網發新聞。
但包過濾不能進行以下情況的操作:
(1)允許某個用戶從外部網用Telnet登錄而不允許其他用戶進行這種操作。
(2)允許用戶傳送一些文件而不允許用戶傳送其他文件。
3.包過濾路由器的配置
配置包過濾一般包括以下3個步驟:
(1)必須知道什麼是應該和不應該被告允許的,必須製定一個安全策略;
(2)必須正式允許和包類型、包字段的邏輯表達;
(3)必須用防火牆扶持的語法重寫表達式。
包過濾包括按地址過濾和按服務過濾:按地址過濾即包過濾路由器檢查包頭的信息,與過濾規則進行匹配,決定是否轉發該數據包;按服務過濾即根據安全策略決定是允許或者拒絕某一種服務,比如:禁止外部主機訪問內部的E-mail服務器、端口25。
4.包過濾處理內核
過濾路由器可以利用包過濾作為手段來提高網絡的安全性。
(1)網絡安全策略
包過濾還可以用來實現大範圍內的網絡安全策略。網絡安全策略必須清楚地說明被保護的網絡和服務的類型、他們的重要程度和這些服務要保護的對象。
一般來說,網絡安全策略主要集中在阻截入侵者,而不是試圖警戒內部用戶。
(2)包過濾策略
(3)包過濾器操作
幾乎所有的包過濾設備都按照如下方式工作。
①包過濾標準必須由包過濾設備端口存儲起來,這些包過濾標準叫包過濾規則。
②當包到達端口時,對包的報頭進行語法分析,大部分的包過濾設備隻檢查IP、TCP
或UDP報頭中的字段,不檢查數據的內容。
③包過濾器規則以特殊的方式存儲。
④如果一條規則阻止包傳輸或接收,此包便不允許通過。
⑤如果一條規則允許包傳輸或接收,該包可以繼續處理。
⑥如果一個包不滿足任何一條規則,該包被丟棄。
5.包過濾技術的優點
(1)僅用一個放置在重要位置上的包過濾路由器就可幫助保護整個網絡,減少暴露的風險;
(2)包過濾對用戶完全透明,不需要用戶軟件的支持,也不要求對客戶端作任何改動,也沒有必要對用戶作任何培訓;
(3)很多路由器可以作數據包過濾,因此不需要專門添加設備。
6.包過濾技術的缺陷
(1)不能徹底防止地址欺騙;
(2)無法執行某些安全策略;
(3)安全性較差;
(4)一些應用協議不適合於數據包過濾;
(5)管理功能弱。
6.3.2代理服務技術
代理服務(Proxy)技術是一種較新型的防火牆技術,它分為應用層網關和電路層網關。
1.代理服務的原理
代理服務技術是指在雙重宿主主機或堡壘主機上運行一個特殊協議或一組協議,使得用戶的客戶程序與該代理服務器交談,從而代替直接與外部互聯網中服務器的“真正”交談。代理服務器判斷從客戶端送來的請求,並決定哪些請求允許傳送而哪些應被拒絕。當某個請求被允許時,代理服務器代表客戶與真實的服務器進行交談,並將從客戶端送來的請求傳送給真實服務器,將真實服務器的回答傳送給客戶。
對用戶來說,與代理服務器交談與真實的服務器交談一樣,而對真實的服務器來說,它是在與運行代理服務器的主機上的用戶交談,並不知道用戶的真實所在。