文/王寶石
防火墻是建設(shè)網(wǎng)絡(luò)應(yīng)用過程中不可缺少的一環(huán),不管是面向互聯(lián)網(wǎng)的網(wǎng)絡(luò)架構(gòu)還是處于網(wǎng)絡(luò)縱深內(nèi)部的網(wǎng)絡(luò)架構(gòu),都需要使用防火墻技術(shù)對網(wǎng)絡(luò)的不同區(qū)域之間的通信進(jìn)行安全控制。防火墻的作用是隔離外部網(wǎng)絡(luò)的安全威脅,同時隔離通過內(nèi)部網(wǎng)絡(luò)向外部網(wǎng)絡(luò)泄露敏感數(shù)據(jù),保護(hù)網(wǎng)絡(luò)資產(chǎn)不受侵害。
防火墻技術(shù)在20世紀(jì)80年代就已出現(xiàn)[1],隨著網(wǎng)絡(luò)安全技術(shù)的不斷發(fā)展,防火墻技術(shù)也在不斷演變和完善。在網(wǎng)絡(luò)建設(shè)時對網(wǎng)絡(luò)安全防護(hù)同步進(jìn)行安全設(shè)計和規(guī)劃,實(shí)現(xiàn)對網(wǎng)絡(luò)進(jìn)行全面、科學(xué)的防護(hù),需要對網(wǎng)絡(luò)安全防護(hù)中最重要的防火墻進(jìn)行深入的理解。
防火墻最主要的功能是實(shí)現(xiàn)與外部網(wǎng)絡(luò)邏輯隔離,阻止外部網(wǎng)絡(luò)的攻擊者入侵到內(nèi)部網(wǎng)絡(luò),實(shí)現(xiàn)“不該來的不要來”;同時保護(hù)內(nèi)部敏感信息資源,防止內(nèi)部泄密,實(shí)現(xiàn)“無授權(quán)的不要訪問”。
圖1 防火墻對來往數(shù)據(jù)流量進(jìn)行過濾
圖1所示是一個連接互聯(lián)網(wǎng)的信息系統(tǒng)的典型網(wǎng)絡(luò)拓?fù)?,系統(tǒng)內(nèi)部劃分為承載著服務(wù)的DMZ區(qū)和用戶區(qū),在系統(tǒng)網(wǎng)絡(luò)出口處部署防火墻與外部互聯(lián)網(wǎng)連接。防火墻在1號數(shù)據(jù)流量路徑上阻止“自己不喜歡”的外部人訪問;在2號數(shù)據(jù)流量路徑上阻止內(nèi)部人訪問“不應(yīng)該去”的地方。防火墻不關(guān)心訪問的具體內(nèi)容,實(shí)現(xiàn)方式是把防火墻部署在網(wǎng)絡(luò)的出入口處,通過對來往的數(shù)據(jù)包進(jìn)行特征判斷,對符合安全策略的數(shù)據(jù)包進(jìn)行放行,對不符合安全策略的數(shù)據(jù)包進(jìn)行丟棄。所以,一般也可以把防火墻稱為“安全網(wǎng)關(guān)”。
通過為防火墻配置訪問控制列表ACL(Access Control List)來建立對來往數(shù)據(jù)包進(jìn)行判斷的規(guī)則,防火墻在對數(shù)據(jù)包進(jìn)行判斷時要通過查詢這些規(guī)則對數(shù)據(jù)包進(jìn)行控制。圖2所示為防火墻使用訪問控制策略對數(shù)據(jù)包進(jìn)行控制的工作原理。
圖2 訪問控制策略工作原理
一個標(biāo)準(zhǔn)IP訪問控制列表的語法為:
access-list [list number] [permit | deny] [source-address][wildcard-mask] [log]
如下是通過標(biāo)準(zhǔn)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這臺主機(jī)的所有流量通過;第二條ACL表示允許172.16網(wǎng)段的所有數(shù)據(jù)流量通過;第三條ACL表示允許任何地址的數(shù)據(jù)流量通過。
標(biāo)準(zhǔn)IP訪問控制列表的定義決定了這種方式的策略只能控制源地址,無法控制數(shù)據(jù)流量的目的,也無法控制流量的協(xié)議。為了實(shí)現(xiàn)更加靈活和功能強(qiáng)大的控制方法,所以出現(xiàn)了擴(kuò)展IP訪問控制列表。
擴(kuò)展IP訪問控制列表的語法為:
access-list [list number] [permit | deny] [protocol][source-address] [source-mask] [source-port] [destinationaddress] [destination-mask] [destination-port] [log] [option]
如下是通過擴(kuò)展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協(xié)議的數(shù)據(jù)包、任何源地址、目的是192.168.50.10、協(xié)議是SMTP的數(shù)據(jù)流量通過;第二條ACL表示允許TCP協(xié)議的數(shù)據(jù)包、任何源地址、目的是192.168.50.20、協(xié)議是WWW的數(shù)據(jù)流量通過。由此可見,訪問控制列表實(shí)現(xiàn)的功能就是允許誰到什么地方訪問什么服務(wù)。
在實(shí)際應(yīng)用中,一個完整的信息系統(tǒng)會提供多種服務(wù),進(jìn)出的數(shù)據(jù)流量多種多樣,因此,在防火墻上會配置多條ACL。防火墻具備對ACL規(guī)則的匹配機(jī)制來實(shí)現(xiàn)對進(jìn)出流量的匹配,這種機(jī)制可概括如下。
防火墻安全規(guī)則遵循從上到下匹配的原則,一旦有一條匹配,則對數(shù)據(jù)包按照該條規(guī)則進(jìn)行處理,剩余的ACL不再進(jìn)行匹配。因此,ACL的順序非常重要。
如果所有的規(guī)則都沒有匹配到,數(shù)據(jù)包將被丟棄。
安全過濾規(guī)則主要包含源、目的地址和端口、TCP標(biāo)志位、應(yīng)用時間以及一些高級過濾選項。
1.3.1 包過濾方式
包過濾(Packet Filtering)方式[2]是防火墻最早支持的一種方式。防火墻部署在數(shù)據(jù)流量必須經(jīng)過的鏈路上,對經(jīng)過的每一個數(shù)據(jù)包逐條匹配ACL,直到適合某條規(guī)則執(zhí)行規(guī)則設(shè)定的動作。
不設(shè)置內(nèi)容緩沖區(qū),不關(guān)心傳輸?shù)膬?nèi)容。優(yōu)點(diǎn)是簡單易行,處理速度快;缺點(diǎn)是單包處理,只檢查包頭,不建立前后數(shù)據(jù)包的邏輯關(guān)系,不能發(fā)現(xiàn)通信中插入或缺漏的數(shù)據(jù)包,也不能發(fā)現(xiàn)假冒的數(shù)據(jù)包。如TCP通信三次握手,包過濾方式防火墻不去檢查發(fā)送的數(shù)據(jù)包順序是否合法,因此容易受到DoS攻擊。
1.3.2 狀態(tài)檢測方式
為了彌補(bǔ)包過濾防火墻天生存在的弱點(diǎn),后來出現(xiàn)了狀態(tài)檢測方式的防火墻,依據(jù)TCP標(biāo)準(zhǔn)的協(xié)議規(guī)則對數(shù)據(jù)包進(jìn)行協(xié)議檢測。狀態(tài)檢測防火墻基于數(shù)據(jù)包檢測,同時針對每個數(shù)據(jù)連接建立協(xié)議運(yùn)行的狀態(tài)跟蹤,發(fā)現(xiàn)狀態(tài)不匹配時則丟棄該數(shù)據(jù)包。圖3所示為狀態(tài)檢測防火墻工作原理。當(dāng)數(shù)據(jù)包進(jìn)入防火墻后,防火墻首先檢測該數(shù)據(jù)包是否匹配已經(jīng)配置好的狀態(tài)檢測列表,如果匹配則轉(zhuǎn)發(fā)放行;如果不匹配則按照包過濾方式安全檢測,匹配則轉(zhuǎn)發(fā)放行,不匹配則丟棄該數(shù)據(jù)包。狀態(tài)檢測方式是對包過濾方式的功能擴(kuò)展,既能對數(shù)據(jù)包是否符合安全策略進(jìn)行檢查,也能對包的狀態(tài)進(jìn)行檢測,能夠?qū)崿F(xiàn)對基于破壞數(shù)據(jù)包狀態(tài)進(jìn)行攻擊(如DoS)的防護(hù)。
圖3 狀態(tài)檢測防火墻工作原理
狀態(tài)檢測防火墻實(shí)現(xiàn)對每一個數(shù)據(jù)包進(jìn)行狀態(tài)檢測,需要針對進(jìn)入防火墻的數(shù)據(jù)包開啟緩沖區(qū)。當(dāng)通過防火墻的數(shù)據(jù)包數(shù)量增多時,會大量占用防火墻硬件資源,降低數(shù)據(jù)通過性能,有影響業(yè)務(wù)正常運(yùn)行的可能。
1.3.3 應(yīng)用代理方式
在防火墻上開啟若干應(yīng)用代理,每個代理需要一個不同的應(yīng)用進(jìn)程或一個后臺運(yùn)行的服務(wù)程序,針對每個新的應(yīng)用必須添加針對此應(yīng)用的服務(wù)程序,否則不能使用該服務(wù),即不代理的業(yè)務(wù)無法通過。應(yīng)用代理防火墻的特點(diǎn)是把用戶的請求數(shù)據(jù)包統(tǒng)一收集起來,還原成應(yīng)用級的請求,對應(yīng)用級請求按規(guī)則進(jìn)行處理后再轉(zhuǎn)發(fā)給服務(wù)器,用戶向服務(wù)器的請求是中斷的。應(yīng)用代理防火墻的優(yōu)點(diǎn)是成為用戶訪問業(yè)務(wù)的中間代理人,中斷用戶與服務(wù)器的直接連接,可以避免對服務(wù)器的直接入侵;缺點(diǎn)是需要與包過濾、狀態(tài)過濾技術(shù)一起使用,而且緩沖時間長、速度慢、延遲大。
防火墻是為加強(qiáng)網(wǎng)絡(luò)安全防護(hù)能力在網(wǎng)絡(luò)中部署的硬件設(shè)備,有多種部署方式,常見的有橋模式、網(wǎng)管模式和NAT模式等。
橋模式也可叫作透明模式。最簡單的網(wǎng)絡(luò)由客戶端和服務(wù)器組成,客戶端和服務(wù)器處于同一網(wǎng)段。為了安全方面的考慮,在客戶端和服務(wù)器之間增加了防火墻設(shè)備,對經(jīng)過的流量進(jìn)行安全控制。正常的客戶端請求通過防火墻送達(dá)服務(wù)器,服務(wù)器將響應(yīng)返回給客戶端,用戶不會感覺到中間設(shè)備的存在。工作在橋模式下的防火墻沒有IP地址,當(dāng)對網(wǎng)絡(luò)進(jìn)行擴(kuò)容時無需對網(wǎng)絡(luò)地址進(jìn)行重新規(guī)劃,但犧牲了路由、VPN等功能。
網(wǎng)關(guān)模式適用于內(nèi)外網(wǎng)不在同一網(wǎng)段的情況,防火墻設(shè)置網(wǎng)關(guān)地址實(shí)現(xiàn)路由器的功能,為不同網(wǎng)段進(jìn)行路由轉(zhuǎn)發(fā)。網(wǎng)關(guān)模式相比橋模式具備更高的安全性,在進(jìn)行訪問控制的同時實(shí)現(xiàn)了安全隔離,具備了一定的私密性。
NAT(Network Address Translation)地址翻譯技術(shù)由防火墻對內(nèi)部網(wǎng)絡(luò)的IP地址進(jìn)行地址翻譯,使用防火墻的IP地址替換內(nèi)部網(wǎng)絡(luò)的源地址向外部網(wǎng)絡(luò)發(fā)送數(shù)據(jù);當(dāng)外部網(wǎng)絡(luò)的響應(yīng)數(shù)據(jù)流量返回到防火墻后,防火墻再將目的地址替換為內(nèi)部網(wǎng)絡(luò)的源地址。NAT模式能夠?qū)崿F(xiàn)外部網(wǎng)絡(luò)不能直接看到內(nèi)部網(wǎng)絡(luò)的IP地址,進(jìn)一步增強(qiáng)了對內(nèi)部網(wǎng)絡(luò)的安全防護(hù)。同時,在NAT模式的網(wǎng)絡(luò)中,內(nèi)部網(wǎng)絡(luò)可以使用私網(wǎng)地址,可以解決IP地址數(shù)量受限的問題。
如果在NAT模式的基礎(chǔ)上需要實(shí)現(xiàn)外部網(wǎng)絡(luò)訪問內(nèi)部網(wǎng)絡(luò)服務(wù)的需求時,還可以使用地址/端口映射(MAP)技術(shù),在防火墻上進(jìn)行地址/端口映射配置,當(dāng)外部網(wǎng)絡(luò)用戶需要訪問內(nèi)部服務(wù)時,防火墻將請求映射到內(nèi)部服務(wù)器上;當(dāng)內(nèi)部服務(wù)器返回相應(yīng)數(shù)據(jù)時,防火墻再將數(shù)據(jù)轉(zhuǎn)發(fā)給外部網(wǎng)絡(luò)。使用地址/端口映射技術(shù)實(shí)現(xiàn)了外部用戶能夠訪問內(nèi)部服務(wù),但是外部用戶無法看到內(nèi)部服務(wù)器的真實(shí)地址,只能看到防火墻的地址,增強(qiáng)了內(nèi)部服務(wù)器的安全性。
防火墻都部署在網(wǎng)絡(luò)的出入口,是網(wǎng)絡(luò)通信的大門,這就要求防火墻的部署必須具備高可靠性。一般IT設(shè)備的使用壽命被設(shè)計為3至5年,當(dāng)單點(diǎn)設(shè)備發(fā)生故障時,要通過冗余技術(shù)實(shí)現(xiàn)可靠性,可以通過如虛擬路由冗余協(xié)議(VRRP)等技術(shù)實(shí)現(xiàn)主備冗余。目前,主流的網(wǎng)絡(luò)設(shè)備都支持高可靠性設(shè)計,如圖4所示就是一個典型的骨干網(wǎng)絡(luò)出口處的高可靠性網(wǎng)絡(luò)架構(gòu)設(shè)計。
對于網(wǎng)絡(luò)安全防護(hù)來講,防火墻不是萬能的。防火墻只對數(shù)據(jù)通信的五元組進(jìn)行檢測,不會檢查數(shù)據(jù)包的內(nèi)容。而攻擊者往往會利用各種隱藏掩飾技術(shù)將惡意代碼放置到合法的數(shù)據(jù)包中,發(fā)送到服務(wù)器以達(dá)到對服務(wù)器進(jìn)行攻擊的目的,如通過把惡意代碼放到郵件的附件中發(fā)送給目標(biāo),這是傳統(tǒng)防火墻解決不了的問題。
隨著網(wǎng)絡(luò)應(yīng)用的愈發(fā)廣泛,用戶希望得到的防護(hù)不僅僅限于對訪問控制策略的實(shí)現(xiàn),還需要對病毒、蠕蟲、木馬等惡意代碼進(jìn)行防護(hù)。而基于傳統(tǒng)的五元組技術(shù)的防火墻對于以業(yè)務(wù)復(fù)用方式進(jìn)行的網(wǎng)絡(luò)攻擊無能為力。
現(xiàn)代安全防護(hù)體系提出了下一代防火墻的概念。下一代防火墻具備標(biāo)準(zhǔn)的防火墻功能,如網(wǎng)絡(luò)地址轉(zhuǎn)換、狀態(tài)檢測、VPN等功能;具備入侵檢測功能;具備應(yīng)用程序感知能力,自動識別和控制應(yīng)用程序,甚至完成基于用戶的數(shù)據(jù)流量控制功能。所以,現(xiàn)代的安全防護(hù)應(yīng)該由傳統(tǒng)的對于五元組的控制轉(zhuǎn)變?yōu)橐杂脩羯矸荻x安全策略、識別內(nèi)容與業(yè)務(wù)應(yīng)用的方式,能夠基于MAC地址、數(shù)據(jù)流方向、用戶身份、內(nèi)容關(guān)鍵字等因素對流量進(jìn)行控制,這要求防火墻不僅在網(wǎng)絡(luò)層進(jìn)行檢測,還應(yīng)在應(yīng)用層進(jìn)行檢測。最完整的下一代防火墻技術(shù)應(yīng)包含傳統(tǒng)防火墻功能、IPS功能、惡意代碼檢測功能,甚至擴(kuò)展到VPN、URL過濾、應(yīng)用流量控制、WAF、鏈路負(fù)載均衡等功能。
圖4 骨干網(wǎng)絡(luò)高可用性架構(gòu)設(shè)計
防火墻無論采用什么方式對數(shù)據(jù)進(jìn)行過濾,都是以防火墻的硬件資源作為支撐,防火墻的性能直接影響用戶的體驗甚至系統(tǒng)安全。防火墻最重要的性能指標(biāo)包括吞吐量、時延、丟包率、并發(fā)連接數(shù)、新建連接數(shù)等。
吞吐量指防火墻的數(shù)據(jù)通過能力,根據(jù)以太網(wǎng)中數(shù)據(jù)包的封裝規(guī)則,以千兆防火墻舉例吞吐量應(yīng)為:
不論防火墻工作在哪種工作方式下,防火墻都要對通過的數(shù)據(jù)進(jìn)行處理,比數(shù)據(jù)在光纖中通過的速度要慢?;ヂ?lián)網(wǎng)有大量的網(wǎng)絡(luò)設(shè)備,數(shù)據(jù)從源到目的經(jīng)過的時延是通過的所有設(shè)備的時延的和。一般防火墻的時延應(yīng)控制在毫秒級別。
防火墻在處理通過的數(shù)據(jù)包時,可能會因為錯誤或者延遲等原因丟失了部分?jǐn)?shù)據(jù)包。這里丟失的數(shù)據(jù)包不包括因不符合ACL策略而被丟棄的數(shù)據(jù)包,除此之外,有丟失數(shù)據(jù)包的情況應(yīng)判定防火墻存在問題。
當(dāng)通過防火墻的數(shù)據(jù)出現(xiàn)大量的并發(fā)連接和新建連接時,防火墻需要跟蹤這些連接的狀態(tài),防火墻的CPU等硬件資源是否足以支撐這些連接帶來的資源消耗,用連接數(shù)的形式進(jìn)行判斷。
從防火墻的工作原理來看,對防火墻的硬件要求比較高。隨著網(wǎng)絡(luò)的升級,目前千兆、萬兆甚至100G交換機(jī)都應(yīng)用于網(wǎng)絡(luò)。在這些高吞吐的網(wǎng)絡(luò)中對防火墻的性能提出了更高的要求,需要提升防火墻本身采用硬件的性能。同時,防火墻也有一些架構(gòu)上的設(shè)計來應(yīng)對高吞吐量網(wǎng)絡(luò)應(yīng)用。
虛擬化[3]指防火墻設(shè)計成具備多組端口,通過軟件配置實(shí)現(xiàn)一臺硬件防火墻可以虛擬成多個虛擬防火墻使用,具備多個防火墻的處理能力。虛擬化還是使用CPU執(zhí)行算法對數(shù)據(jù)流量進(jìn)行過濾,處理速度依然受限于CPU的處理能力。
策略硬件化指不再使用CPU通過算法去處理每一次ACL匹配,而是把每一條策略封裝成如FPGA芯片的方式對數(shù)據(jù)包進(jìn)行處理。當(dāng)有大量的數(shù)據(jù)包通過時,使用多個FPGA芯片組成的硬件規(guī)則表對數(shù)據(jù)包進(jìn)行過濾,能夠大幅度提升數(shù)據(jù)處理的速度。
在構(gòu)建網(wǎng)絡(luò)安全防護(hù)體系的過程中,用戶需要針對網(wǎng)絡(luò)架構(gòu)和業(yè)務(wù)需求選擇適合的防火墻工作模式和部署方式,應(yīng)該選用具備自身安全需求的防火墻功能,并對防火墻的硬件性能進(jìn)行考量,使防火墻為網(wǎng)絡(luò)提供高效、準(zhǔn)確的防護(hù)服務(wù)。
防火墻技術(shù)在網(wǎng)絡(luò)安全領(lǐng)域既是出現(xiàn)最早的技術(shù),也是應(yīng)用最廣泛的技術(shù)。隨著對網(wǎng)絡(luò)安全的需求不斷增大,防火墻技術(shù)在不斷進(jìn)步,防火墻處理能力的高速化、檢測能力智能化、部署方式多樣化都是防火墻應(yīng)對網(wǎng)絡(luò)安全需求的改進(jìn)方式。在未來,防火墻仍然是網(wǎng)絡(luò)安全應(yīng)用最重要的設(shè)備之一。