吞吐量的定義是:在不丟包的前提下,防火墻的最大轉(zhuǎn)發(fā)速率。
  
      我們可以這樣理解這個定義:如果防火墻工作在某一個轉(zhuǎn)發(fā)速率時可以保證不丟包,而一旦超過這個速率,就會丟包,那么這個速率就是該防火墻的吞吐量。
  
      同一臺防火墻,在處理不同長度的數(shù)據(jù)包時,吞吐量可能是不同的。因此,在標明防火墻吞吐量時,必須要同時指明轉(zhuǎn)發(fā)的是多大長度的數(shù)據(jù)包。
  
      一般來說,防火墻轉(zhuǎn)發(fā)數(shù)據(jù)包的長度越大,吞吐量就越高,反之越低。最小的包長度為64字節(jié),這樣的包稱為小包。防火墻在處理大包時的表現(xiàn)可謂難分伯仲,但在處理小包時就千差萬別了。因此,要想比較不同防火墻的吞吐量,用大包比不出來,需要用小包比,所以用戶在選購防火墻時,往往格外關(guān)心防火墻的小包吞吐量。
  
      但問題是,一款小包吞吐量高的防火墻對用戶來說究竟有多大意義呢?
  
      我們先來看一看64字節(jié)小包的結(jié)構(gòu)。




      從圖中可以看出,64字節(jié)的小包里,留給TCP的負載最多只有6個字節(jié),這么小的負載一般來說是三次握手和四次結(jié)束包。在通常的網(wǎng)絡(luò)環(huán)境中,網(wǎng)絡(luò)流量的絕大部分是連接過程中傳輸?shù)臄?shù)據(jù)包,握手包和結(jié)束包只在建立和釋放連接時才會出現(xiàn),在流量中占較少比例。對于UDP,由于是不可靠的傳輸協(xié)議,基于它的應用并不多,負載為18字節(jié)的小包更是不常見。因此,一臺小包吞吐量指標很高的防火墻部署在這樣的環(huán)境中,實際意義并不大。



 
      當網(wǎng)絡(luò)中發(fā)生SYN Flooding、UDP Flood等DDOS攻擊時,握手包的數(shù)量會在瞬間急劇增加,嚴重時可以造成網(wǎng)絡(luò)癱瘓。此時,防火墻的任務(wù)恰恰是拒絕轉(zhuǎn)發(fā)那些64字節(jié)的攻擊包,保護它身后的網(wǎng)絡(luò)、主機免遭DDOS攻擊,但如果防火墻抗DDOS功能較弱,未能有效阻斷攻擊小包,而同時它又是一臺小包吞吐量很高的防火墻,那力挽狂瀾的英雄可就要蛻變成助紂為虐的幫兇嘍!




   
      其實,小包吞吐量原本是用來評價路由器、交換機等網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)能力的一個指標,防火墻作為安全設(shè)備,固然要具有良好的性能,但我們應該更多著眼其安全保障能力。您說是不是呢?
  
      結(jié)論:小包吞吐量是實驗室里的指標,并不能代表真實的網(wǎng)絡(luò)環(huán)境,更不能反映出用戶的實際需求。在絕大多數(shù)用戶的網(wǎng)絡(luò)里,絕大多數(shù)的應用都是通過大包傳輸?shù)?,因此這些用戶在選購防火墻時,不必過分關(guān)注小包吞吐量,而只需關(guān)心大包吞吐量就可以了。
  
      誤區(qū)之二:選購防火墻時以最大并發(fā)連接數(shù)為重要依據(jù)
  
      最大并發(fā)連接數(shù)的定義是:防火墻在同一時刻可以處理的最大會話數(shù)。這個會話數(shù),主要是指TCP會話和UDP會話,但由于UDP是一種不面向連接的協(xié)議,所以一般來說最大并發(fā)連接數(shù)都是指TCP連接。
  
      目前市面上的防火墻,所標稱的最大并發(fā)連接數(shù)動輒數(shù)萬、幾十萬甚至上百萬,不明就里者看后往往驚呼:“這防火墻!好厲害呀!”
  
      然而,用戶真的需要那么大的并發(fā)連接嗎?
  
      假設(shè)用戶的單位有400臺電腦在同時上網(wǎng),每臺電腦同時運行著50個基于TCP協(xié)議的應用程序,那么防火墻有20000個并發(fā)連接數(shù)就夠了。但一般來說,很少有人會在電腦上同時運行幾十個應用程序,所以,我們假設(shè)每臺電腦同時運行著10個基于TCP協(xié)議的應用程序,那么,20000個并發(fā)連接就意味著可以支持2000臺電腦同時上網(wǎng)。擁有2000臺電腦的單位,已經(jīng)規(guī)模很大了(比如我們Novell,呵呵),筆者很難想象出有必要使用最大并發(fā)連接數(shù)為200萬的防火墻的單位是什么樣的陣勢。
  
      讀者或許會問,每臺電腦同時運行著10個基于TCP協(xié)議的應用程序是不是少了點呢?HTTP協(xié)議不就是基于TCP的嗎?很多人可是經(jīng)常一口氣打開幾十個瀏覽器窗口??!
  
      是的,很多人確實習慣一下子打開很多瀏覽器窗口—-比如在瀏覽新聞網(wǎng)站的時候—-但是,這其實并不會影響到對防火墻最大并發(fā)連接數(shù)的要求。因為雖然你每打開一個瀏覽器窗口,就會產(chǎn)生一個TCP連接,但隨著你所要瀏覽的內(nèi)容從網(wǎng)站傳回到本地,這條TCP連接就會自行結(jié)束,而無須手工干預。換言之,雖然你的電腦上同時開啟了20個窗口,但這并不等于你的電腦保持著20條TCP連接。如果把防火墻比作一個酒店,最大并發(fā)連接數(shù)比作它的客房數(shù)量,那么像HTTP這樣的短促會話就像一個個只就餐,不住宿的過客一樣,來也匆匆,去也匆匆,而像MSN這樣的長期會話就好比是需要入住的客人,他們才是占據(jù)酒店客房資源的主要力量。


      結(jié)論:用戶在選購防火墻時,要根據(jù)自己的實際情況,估算最大并發(fā)連接數(shù)的數(shù)目,不要盲目追高,以免造成無謂的投資浪費。
  
      誤區(qū)之三:把防火墻當成路由器用
  
      防火墻的工作可以用三步來概述:接收數(shù)據(jù)、過濾數(shù)據(jù)、發(fā)送數(shù)據(jù)。其中第一步和第三步統(tǒng)稱為轉(zhuǎn)發(fā)數(shù)據(jù)。防火墻在轉(zhuǎn)發(fā)數(shù)據(jù)時,可以以路由器的方式(路由模式),也可以以交換機的方式(交換模式),還可以用路由器加交換機的方式(混合模式)。
  
      許多用戶喜歡讓防火墻在過濾數(shù)據(jù)的同時還扮演路由器的角色,為此,他們在選購時會向銷售商提出一連串的問題:“你的防火墻支持源地址路由嗎?支持策略路由嗎?支持動態(tài)路由嗎?支持多播路由嗎?”銷售商們的回答也不含糊:“支持,支持,都支持!”聽那口氣,大有一副“欲與Router試比高”的氣勢。
  
      然而,防火墻充當路由器到底有什么好處呢?其實好處無非是給用戶省下了一筆購買路由器的錢。但是,任何利益都是要靠付出代價才能獲得。這代價就是:第一,防火墻畢竟不能和專業(yè)的路由器相提并論,充其量也就是個業(yè)余水平的路由器;第二,也是最關(guān)鍵的,就是防火墻一旦發(fā)生故障,會給用戶帶來很大的麻煩。為什么這么說呢?如圖所示:



 


 



     
      從圖中可以看出,路由模式下,由于A的Gateway指向防火墻,所以當A要和B通信時,他會在以太網(wǎng)幀頭里填上防火墻的MAC地址,目的是請求防火墻幫他確定B的位置;防火墻收到后,找到了B,就會修改幀頭,把目標MAC地址換成B的,把源MAC地址換成自己的,然后轉(zhuǎn)交給B。一旦防火墻發(fā)生故障,A就失去了Gateway,和B的通信就無法實現(xiàn),當然就更不要說過濾了。
  
      交換模式則不存在這個問題。A和B之間不需要Gateway中轉(zhuǎn),防火墻在他們中間僅僅起到過濾數(shù)據(jù)的作用,如果防火墻出現(xiàn)故障,A、B之間的通信照常進行,只不過不再接受過濾了。
  
      由此可見,工作在交換模式的防火墻出現(xiàn)故障后僅僅導致安全功能的失效,工作在路由模式的防火墻出現(xiàn)故障后,不僅導致安全功能的失效,還會導致網(wǎng)絡(luò)中斷。二者相比,孰優(yōu)孰劣,不是一目了然了嗎?
  
      結(jié)論:安全產(chǎn)品,顧名思義就是為了保障安全。用戶在部署安全產(chǎn)品時,必須充分考慮該產(chǎn)品由于某種原因失效時,對網(wǎng)絡(luò)、業(yè)務(wù)會產(chǎn)生多大的影響。在設(shè)計部署方案時,一定要牢牢把握“安全產(chǎn)品失效應該僅僅導致安全功能的喪失”這一根本原則。
  
      誤區(qū)之四:熱衷于使用防火墻的NAT/PAT功能


      NAT/PAT技術(shù)推出的初衷,是為了解決IPv4地址資源短缺的問題。因此,NAT/PAT本來是路由器的功能。然而曾幾何時,該功能被披上了安全的外衣,逐漸移植到了防火墻上,現(xiàn)在已經(jīng)成為防火墻的標準功能了。
  
      NAT/PAT的安全性,據(jù)說就是可以隱藏內(nèi)部真實的網(wǎng)絡(luò)結(jié)構(gòu),讓黑客沒有可乘之機。我們承認這種說法有一定道理,但我們也認為,NAT/PAT的根本目的是為了解決網(wǎng)絡(luò)連通性,安全性只是它在執(zhí)行過程中自然產(chǎn)生的,因此,僅僅因為該技術(shù)具有一定的安全性,就把它移植到防火墻上并作為主要功能執(zhí)行是不合適的,甚至有可能是有害的。試想,在防火墻上做NAT/PAT,雖然利用了其安全性的優(yōu)勢,但防火墻同時也擔負了實現(xiàn)網(wǎng)絡(luò)連通的責任。


      一旦防火墻出現(xiàn)故障,不但安全性消失,而且會導致用戶網(wǎng)絡(luò)中斷。這不是又一次違背了“安全產(chǎn)品失效應該僅僅導致安全功能的喪失”的原則嗎?


      有人會提出,你主張在路由器上做NAT/PAT,那如果路由器發(fā)生故障,不是一樣會導致網(wǎng)絡(luò)中斷嗎?


      呵呵,那就對了!路由器都壞了,網(wǎng)絡(luò)當然要斷了,這跟它做不做NAT/PAT又有什么關(guān)系呢!
  
      結(jié)論:很多廠商在NAT/PAT上狠下功夫,把簡單的SNAT/SPAT/DNAT/DPAT發(fā)展成了Policy NAT/PAT,并以此作為產(chǎn)品的一大賣點。建議用戶保持清醒的頭腦,權(quán)衡利弊,作出正確的選擇。
  
      誤區(qū)之五:用防火墻來防病毒
  
      防火墻究竟能不能防病毒?如果不能,那為什么那么多防火墻都提供防病毒功能呢?
  
      如果能,那為什么還有那么多防病毒網(wǎng)關(guān)產(chǎn)品呢?我到底該用哪個好呢?
  
      從理論上說,防火墻當然可以防病毒(當然這里說的是通過網(wǎng)絡(luò)傳播的病毒)。道理很簡單,防火墻是位于網(wǎng)絡(luò)通路上的一道關(guān)卡,對于一切經(jīng)過它的數(shù)據(jù)包,它都可以過濾出它關(guān)心的東西。
  
     但過濾是過濾,對不同的內(nèi)容,過濾的方法可是大相徑庭。
  
      防火墻最基本的過濾功能是過濾五要素:源地址、目標地址、協(xié)議類型、源端口、目標端口。防火墻在過濾這五樣東西時,可以說是手到擒來。為什么?因為這五樣東西是包含在同一個數(shù)據(jù)包里,防火墻每收到一個數(shù)據(jù)包,就把這五樣東西檢查一遍,合格就放行,不合格就丟棄。(有人可能會說,防火墻每秒鐘收到成千上萬個數(shù)據(jù)包,它一個一個檢查得過來嗎?是不是數(shù)據(jù)包越多它的檢查效率就越低呢?這問題問得好,不過不屬于今天的討論范圍,以后有機會我會專門寫一篇來介紹。)那過濾病毒呢?很抱歉,過濾病毒時,防火墻的表現(xiàn)就非常不如人意了,因為病毒是隱藏在應用層里,應用層的數(shù)據(jù)在網(wǎng)絡(luò)上傳輸時,往往都被切割成一個一個數(shù)據(jù)包傳輸。這樣一來,防火墻就慘了,它不能像過濾五要素那樣,收到一個過濾一個,然后立即決定是轉(zhuǎn)發(fā)還是拋棄;而是必須把從頭到尾收到的所有包重新拼裝起來,還原出整個應用層的內(nèi)容,才能過濾出病毒。
  
      因此,從理論上說,防火墻把數(shù)據(jù)包拼裝起來后,可以根據(jù)特征碼過濾出病毒;但從實踐上說,拼裝、還原的動作,會消耗防火墻的大量資源,也會讓用戶感覺防火墻的防病毒功能效率很低。
  那么,如果選用專門的防病毒網(wǎng)關(guān)產(chǎn)品,情況會不會好些呢?據(jù)說有一些防病毒網(wǎng)關(guān)效率還是比較高的,因為它們采用了一種稱為LPI的技術(shù),大致原理是:每收到一個數(shù)據(jù)包,都把其應用層內(nèi)容復制一份,保留下來,然后把數(shù)據(jù)包轉(zhuǎn)發(fā)出去;但是,一旦收到該會話的最后一個數(shù)據(jù)包,就先扣留下來,把其應用層內(nèi)容與先前的拷貝拼裝、還原,過濾其中是否有病毒,如果沒有,就轉(zhuǎn)發(fā);如果有,就將該包丟棄,這樣,雖然用戶已經(jīng)收到了先前那些包,但由于最后一個包未收到,無法還原,因此即使病毒包含在已收到的包中,也不會對用戶構(gòu)成危害。
  
      或許讀者會問,那防火墻有沒有采用LPI技術(shù)的呢?這個問題恐怕就要去問防火墻廠商啦!
  
      結(jié)論:建議采用專門的防病毒網(wǎng)關(guān)產(chǎn)品來過濾病毒,當然前提是經(jīng)過認真測試。
  
      誤區(qū)之六:允許DMZ區(qū)訪問內(nèi)部網(wǎng)
  
      DMZ區(qū)是為了保護內(nèi)部網(wǎng)而設(shè)置的。當用戶有需要對外開放的服務(wù)器時,就應該設(shè)立DMZ區(qū),把這些服務(wù)器放進去,然后在防火墻上開放規(guī)則,允許外網(wǎng)訪問服務(wù)器。
  
      但在實踐中,有相當多的用戶卻打開了允許服務(wù)器訪問內(nèi)網(wǎng)的規(guī)則。這是萬萬使不得的。
  
      因為服務(wù)器在對外提供服務(wù)時,很容易遭到攻擊。假如服務(wù)器上存在一個漏洞被黑客控制,并獲取超級用戶權(quán)限,那黑客就可以遠程登錄到這臺服務(wù)器上,并以該服務(wù)器管理員的身份,進一步在服務(wù)器周圍查找攻擊目標。如果防火墻打開了DMZ到內(nèi)部網(wǎng)的通道,那黑客就可以堂而皇之地闖進內(nèi)部網(wǎng),內(nèi)部網(wǎng)危乎殆哉!
  
      有些用戶打開DMZ到內(nèi)部網(wǎng)的通道,是因為DMZ的WEB服務(wù)器是動態(tài)網(wǎng)頁,在后臺有一臺Database Server作支撐,而該服務(wù)器放在了內(nèi)網(wǎng)。當外網(wǎng)用戶訪問WEB Server時,WEB Server將向數(shù)據(jù)庫請求資源,再將結(jié)果顯示給用戶。這種情況下,往往在防火墻上添加允許WEB Server訪問Database Server的規(guī)則。這樣做從業(yè)務(wù)角度講是正常的,但從安全角度講確實存在危險。建議改變Database Server的工作模式,在WEB Server與Database Server之間建立長連接,然后就可以關(guān)閉DMZ區(qū)到內(nèi)部網(wǎng)的訪問通道了。
  
      結(jié)論:DMZ區(qū)的意義就是把對外提供服務(wù)的資源從內(nèi)部網(wǎng)里剝離出去,使內(nèi)部網(wǎng)變得更安全。因此,請勿打開DMZ到內(nèi)部網(wǎng)的通道,以防黑客的“跳板攻擊”。
  
      一口氣寫完了這六大誤區(qū),其實防火墻可圈可點的地方還有很多,但我的時間卻不是很多:)等下次吧!也希望能聽到不同的意見,把“真理愈辯愈明”這句名言發(fā)揚光大……

分享到

多易

相關(guān)推薦