文/王寶石
防火墻是建設網絡應用過程中不可缺少的一環,不管是面向互聯網的網絡架構還是處于網絡縱深內部的網絡架構,都需要使用防火墻技術對網絡的不同區域之間的通信進行安全控制。防火墻的作用是隔離外部網絡的安全威脅,同時隔離通過內部網絡向外部網絡泄露敏感數據,保護網絡資產不受侵害。
防火墻技術在20世紀80年代就已出現[1],隨著網絡安全技術的不斷發展,防火墻技術也在不斷演變和完善。在網絡建設時對網絡安全防護同步進行安全設計和規劃,實現對網絡進行全面、科學的防護,需要對網絡安全防護中最重要的防火墻進行深入的理解。
防火墻最主要的功能是實現與外部網絡邏輯隔離,阻止外部網絡的攻擊者入侵到內部網絡,實現“不該來的不要來”;同時保護內部敏感信息資源,防止內部泄密,實現“無授權的不要訪問”。

圖1 防火墻對來往數據流量進行過濾
圖1所示是一個連接互聯網的信息系統的典型網絡拓撲,系統內部劃分為承載著服務的DMZ區和用戶區,在系統網絡出口處部署防火墻與外部互聯網連接。防火墻在1號數據流量路徑上阻止“自己不喜歡”的外部人訪問;在2號數據流量路徑上阻止內部人訪問“不應該去”的地方。防火墻不關心訪問的具體內容,實現方式是把防火墻部署在網絡的出入口處,通過對來往的數據包進行特征判斷,對符合安全策略的數據包進行放行,對不符合安全策略的數據包進行丟棄。所以,一般也可以把防火墻稱為“安全網關”。
通過為防火墻配置訪問控制列表ACL(Access Control List)來建立對來往數據包進行判斷的規則,防火墻在對數據包進行判斷時要通過查詢這些規則對數據包進行控制。圖2所示為防火墻使用訪問控制策略對數據包進行控制的工作原理。

圖2 訪問控制策略工作原理
一個標準IP訪問控制列表的語法為:
access-list [list number] [permit | deny] [source-address][wildcard-mask] [log]
如下是通過標準IP訪問控制列表來配置的防火墻策略:
access-list 1 deny 172.16.4.13 0.0.0.0
access-list 2 permit 172.16.0.0 0.0.255.255
access-list 3 permit 0.0.0.0 255.255.255.255
第一條ACL表示阻止172.16.4.13這臺主機的所有流量通過;第二條ACL表示允許172.16網段的所有數據流量通過;第三條ACL表示允許任何地址的數據流量通過。
標準IP訪問控制列表的定義決定了這種方式的策略只能控制源地址,無法控制數據流量的目的,也無法控制流量的協議。為了實現更加靈活和功能強大的控制方法,所以出現了擴展IP訪問控制列表。
擴展IP訪問控制列表的語法為:
access-list [list number] [permit | deny] [protocol][source-address] [source-mask] [source-port] [destinationaddress] [destination-mask] [destination-port] [log] [option]
如下是通過擴展IP訪問控制列表來配置的防火墻策略:
access-list 150 permit tcp any host 192.168.50.10 eq smtp
access-list 151 permit tcp any host 192.168.50.20 eq www
第一條ACL表示允許TCP協議的數據包、任何源地址、目的是192.168.50.10、協議是SMTP的數據流量通過;第二條ACL表示允許TCP協議的數據包、任何源地址、目的是192.168.50.20、協議是WWW的數據流量通過。由此可見,訪問控制列表實現的功能就是允許誰到什么地方訪問什么服務。
在實際應用中,一個完整的信息系統會提供多種服務,進出的數據流量多種多樣,因此,在防火墻上會配置多條ACL。防火墻具備對ACL規則的匹配機制來實現對進出流量的匹配,這種機制可概括如下。
防火墻安全規則遵循從上到下匹配的原則,一旦有一條匹配,則對數據包按照該條規則進行處理,剩余的ACL不再進行匹配。因此,ACL的順序非常重要。
如果所有的規則都沒有匹配到,數據包將被丟棄。
安全過濾規則主要包含源、目的地址和端口、TCP標志位、應用時間以及一些高級過濾選項。
1.3.1 包過濾方式
包過濾(Packet Filtering)方式[2]是防火墻最早支持的一種方式。防火墻部署在數據流量必須經過的鏈路上,對經過的每一個數據包逐條匹配ACL,直到適合某條規則執行規則設定的動作。
不設置內容緩沖區,不關心傳輸的內容。優點是簡單易行,處理速度快;缺點是單包處理,只檢查包頭,不建立前后數據包的邏輯關系,不能發現通信中插入或缺漏的數據包,也不能發現假冒的數據包。如TCP通信三次握手,包過濾方式防火墻不去檢查發送的數據包順序是否合法,因此容易受到DoS攻擊。
1.3.2 狀態檢測方式
為了彌補包過濾防火墻天生存在的弱點,后來出現了狀態檢測方式的防火墻,依據TCP標準的協議規則對數據包進行協議檢測。狀態檢測防火墻基于數據包檢測,同時針對每個數據連接建立協議運行的狀態跟蹤,發現狀態不匹配時則丟棄該數據包。圖3所示為狀態檢測防火墻工作原理。當數據包進入防火墻后,防火墻首先檢測該數據包是否匹配已經配置好的狀態檢測列表,如果匹配則轉發放行;如果不匹配則按照包過濾方式安全檢測,匹配則轉發放行,不匹配則丟棄該數據包。狀態檢測方式是對包過濾方式的功能擴展,既能對數據包是否符合安全策略進行檢查,也能對包的狀態進行檢測,能夠實現對基于破壞數據包狀態進行攻擊(如DoS)的防護。

圖3 狀態檢測防火墻工作原理
狀態檢測防火墻實現對每一個數據包進行狀態檢測,需要針對進入防火墻的數據包開啟緩沖區。當通過防火墻的數據包數量增多時,會大量占用防火墻硬件資源,降低數據通過性能,有影響業務正常運行的可能。
1.3.3 應用代理方式
在防火墻上開啟若干應用代理,每個代理需要一個不同的應用進程或一個后臺運行的服務程序,針對每個新的應用必須添加針對此應用的服務程序,否則不能使用該服務,即不代理的業務無法通過。應用代理防火墻的特點是把用戶的請求數據包統一收集起來,還原成應用級的請求,對應用級請求按規則進行處理后再轉發給服務器,用戶向服務器的請求是中斷的。應用代理防火墻的優點是成為用戶訪問業務的中間代理人,中斷用戶與服務器的直接連接,可以避免對服務器的直接入侵;缺點是需要與包過濾、狀態過濾技術一起使用,而且緩沖時間長、速度慢、延遲大。
防火墻是為加強網絡安全防護能力在網絡中部署的硬件設備,有多種部署方式,常見的有橋模式、網管模式和NAT模式等。
橋模式也可叫作透明模式。最簡單的網絡由客戶端和服務器組成,客戶端和服務器處于同一網段。為了安全方面的考慮,在客戶端和服務器之間增加了防火墻設備,對經過的流量進行安全控制。正常的客戶端請求通過防火墻送達服務器,服務器將響應返回給客戶端,用戶不會感覺到中間設備的存在。工作在橋模式下的防火墻沒有IP地址,當對網絡進行擴容時無需對網絡地址進行重新規劃,但犧牲了路由、VPN等功能。
網關模式適用于內外網不在同一網段的情況,防火墻設置網關地址實現路由器的功能,為不同網段進行路由轉發。網關模式相比橋模式具備更高的安全性,在進行訪問控制的同時實現了安全隔離,具備了一定的私密性。
NAT(Network Address Translation)地址翻譯技術由防火墻對內部網絡的IP地址進行地址翻譯,使用防火墻的IP地址替換內部網絡的源地址向外部網絡發送數據;當外部網絡的響應數據流量返回到防火墻后,防火墻再將目的地址替換為內部網絡的源地址。NAT模式能夠實現外部網絡不能直接看到內部網絡的IP地址,進一步增強了對內部網絡的安全防護。同時,在NAT模式的網絡中,內部網絡可以使用私網地址,可以解決IP地址數量受限的問題。
如果在NAT模式的基礎上需要實現外部網絡訪問內部網絡服務的需求時,還可以使用地址/端口映射(MAP)技術,在防火墻上進行地址/端口映射配置,當外部網絡用戶需要訪問內部服務時,防火墻將請求映射到內部服務器上;當內部服務器返回相應數據時,防火墻再將數據轉發給外部網絡。使用地址/端口映射技術實現了外部用戶能夠訪問內部服務,但是外部用戶無法看到內部服務器的真實地址,只能看到防火墻的地址,增強了內部服務器的安全性。
防火墻都部署在網絡的出入口,是網絡通信的大門,這就要求防火墻的部署必須具備高可靠性。一般IT設備的使用壽命被設計為3至5年,當單點設備發生故障時,要通過冗余技術實現可靠性,可以通過如虛擬路由冗余協議(VRRP)等技術實現主備冗余。目前,主流的網絡設備都支持高可靠性設計,如圖4所示就是一個典型的骨干網絡出口處的高可靠性網絡架構設計。
對于網絡安全防護來講,防火墻不是萬能的。防火墻只對數據通信的五元組進行檢測,不會檢查數據包的內容。而攻擊者往往會利用各種隱藏掩飾技術將惡意代碼放置到合法的數據包中,發送到服務器以達到對服務器進行攻擊的目的,如通過把惡意代碼放到郵件的附件中發送給目標,這是傳統防火墻解決不了的問題。
隨著網絡應用的愈發廣泛,用戶希望得到的防護不僅僅限于對訪問控制策略的實現,還需要對病毒、蠕蟲、木馬等惡意代碼進行防護。而基于傳統的五元組技術的防火墻對于以業務復用方式進行的網絡攻擊無能為力。
現代安全防護體系提出了下一代防火墻的概念。下一代防火墻具備標準的防火墻功能,如網絡地址轉換、狀態檢測、VPN等功能;具備入侵檢測功能;具備應用程序感知能力,自動識別和控制應用程序,甚至完成基于用戶的數據流量控制功能。所以,現代的安全防護應該由傳統的對于五元組的控制轉變為以用戶身份定義安全策略、識別內容與業務應用的方式,能夠基于MAC地址、數據流方向、用戶身份、內容關鍵字等因素對流量進行控制,這要求防火墻不僅在網絡層進行檢測,還應在應用層進行檢測。最完整的下一代防火墻技術應包含傳統防火墻功能、IPS功能、惡意代碼檢測功能,甚至擴展到VPN、URL過濾、應用流量控制、WAF、鏈路負載均衡等功能。

圖4 骨干網絡高可用性架構設計
防火墻無論采用什么方式對數據進行過濾,都是以防火墻的硬件資源作為支撐,防火墻的性能直接影響用戶的體驗甚至系統安全。防火墻最重要的性能指標包括吞吐量、時延、丟包率、并發連接數、新建連接數等。
吞吐量指防火墻的數據通過能力,根據以太網中數據包的封裝規則,以千兆防火墻舉例吞吐量應為:

不論防火墻工作在哪種工作方式下,防火墻都要對通過的數據進行處理,比數據在光纖中通過的速度要慢?;ヂ摼W有大量的網絡設備,數據從源到目的經過的時延是通過的所有設備的時延的和。一般防火墻的時延應控制在毫秒級別。
防火墻在處理通過的數據包時,可能會因為錯誤或者延遲等原因丟失了部分數據包。這里丟失的數據包不包括因不符合ACL策略而被丟棄的數據包,除此之外,有丟失數據包的情況應判定防火墻存在問題。
當通過防火墻的數據出現大量的并發連接和新建連接時,防火墻需要跟蹤這些連接的狀態,防火墻的CPU等硬件資源是否足以支撐這些連接帶來的資源消耗,用連接數的形式進行判斷。
從防火墻的工作原理來看,對防火墻的硬件要求比較高。隨著網絡的升級,目前千兆、萬兆甚至100G交換機都應用于網絡。在這些高吞吐的網絡中對防火墻的性能提出了更高的要求,需要提升防火墻本身采用硬件的性能。同時,防火墻也有一些架構上的設計來應對高吞吐量網絡應用。
虛擬化[3]指防火墻設計成具備多組端口,通過軟件配置實現一臺硬件防火墻可以虛擬成多個虛擬防火墻使用,具備多個防火墻的處理能力。虛擬化還是使用CPU執行算法對數據流量進行過濾,處理速度依然受限于CPU的處理能力。
策略硬件化指不再使用CPU通過算法去處理每一次ACL匹配,而是把每一條策略封裝成如FPGA芯片的方式對數據包進行處理。當有大量的數據包通過時,使用多個FPGA芯片組成的硬件規則表對數據包進行過濾,能夠大幅度提升數據處理的速度。
在構建網絡安全防護體系的過程中,用戶需要針對網絡架構和業務需求選擇適合的防火墻工作模式和部署方式,應該選用具備自身安全需求的防火墻功能,并對防火墻的硬件性能進行考量,使防火墻為網絡提供高效、準確的防護服務。
防火墻技術在網絡安全領域既是出現最早的技術,也是應用最廣泛的技術。隨著對網絡安全的需求不斷增大,防火墻技術在不斷進步,防火墻處理能力的高速化、檢測能力智能化、部署方式多樣化都是防火墻應對網絡安全需求的改進方式。在未來,防火墻仍然是網絡安全應用最重要的設備之一。