[转]防火墙、防病毒网关、IDS以及该类安全产品开发(文章汇总)
?
防火墻的會話性能標稱是什么意思- -
??????????????????????????????????????
防火墻的會話標稱是一個僅與防火墻建制內存多少有關的指標,因此,也成為一些廠商胡弄用戶的竅門,注意一個特點:國產防火墻的會話標稱總是遠遠超過進口的防火墻。某種程度上,也說明國產軟件業在技術上的虛弱,缺乏嚴謹的精神。
防火墻能支持多少數量的會話標稱,本來是標示防火墻性能的一個重要指標。但近來有些廠家利用部分消費者,特別是政府部門的購買者不了解參數含義的機會,對該指標進行任意撥高,已經令會話指標對許多防火墻產品的選購,在很大程度上失去了參考意義。那么,防火墻的會話,到底是一種怎么樣的性能呢?
????如果是普通的包過濾防火墻,無所謂會話。這種防火墻通常見第一代的國產防火墻,很多就是用 ipchains改造過來的。對于這種防火墻,重要的性能指標是防火墻的吞吐量,或稱濾通量;以及包過濾的時延。會話,只對提供狀態檢測的防火墻才有意義。
????但現在的防火墻都要求提供網絡連接檢測。眾所周知,TCP是有狀態的連接,狀態檢測的防火墻能根據該 IP包所屬的連接是新的還是舊的,決定該IP包是否符合防火墻的政策約定。因此,防火墻必須在內存中保留這一記錄,這就是會話的由來,每一個連接,就是一個會話。由于目前的防火墻一般工作中轉接網關,存在著大轉小這樣的情況,如內部網是百兆,而上網的ADSL撥號是500K這種。因此,由于網絡變窄,部分連接請求不能馬上實施,只能在內部隊列中一個個地招待,這樣,對于沒有連接狀態的部分請求,在保持在防火墻內存排隊時,目前也算是一個會話。大部分防火墻都是由linux或類似的操作系統發展來的,包括screen OS和checkpoint,因此,他們的原理有共通性。這里就以netfilter作一個例子進行說明。只要在netfilter中編譯進 mod_conntrack模塊,防火墻就具備了進行狀態檢測,或稱狀態跟蹤的功能。
????防火墻支持多少會話,僅取決于防火墻的內存多少,系統會自動采用所有內存,直接內存用光,系統崩潰為止。因此,許多防火墻根據自已的內存的多少,設定一個參數ip_conntrack_max的大小。有這個限制,一旦系統記錄的會話達到這個數值,系統就不再建立新的會話。所以,一個防火墻如果單純希望增大這個參數,僅需要增加內存(10萬會話約消耗45M內存),然后不顧一切地把 ip_conntrack_max設定大大的,別說一百萬,就是算一千萬也是可以達到的。
????那么一般防火墻需要多少會話呢?用兩種應用舉個例子。象http,每一個href都將是一個連接,包括每一個的圖片,因此,瀏覽一個網頁,常常是同時出現二十個連接以上。這種連接迅速而來,又迅速完成(網頁下載都有一個速度要求)。而ftp和telnet 就是另一個例子,就算下載上百兆的文件,也只是一個連接;而使用多線程下載工具,象netant,每一個線程都是一個連接。因此,假設是一個500人的網絡需要上網,其中同時瀏覽的有100人(平均20秒刷新一次),另外200人打QQ,50人使用十個線程下載文件,還有50 人進行如telnet,數據庫訪問這樣的會話;如果沒有出口瓶頸,那么,實際的會話數估計是在千以上附近。但如果有出口限制,那么就可能升級到萬以上。但無論是多大的網,達到幾萬以上的也是極為罕見的,真的出現了這種情況,很可能是感染了如沖擊波這類的病毒。
????防火墻最通常鐵使用是內部的子網分隔,這部分也會產生一部分會話請求。對于百兆/千兆這種一般的網絡環境來說,大致有十萬以上的會話能力的防火墻,也基本上足夠了。保持太多的會話對防火墻沒有必要,相反,當系統資源過多地用在會話保持的話,會相應損害每秒生成會話的能力,這是一個同樣重要的性能指標。設定過高的會話數量,卻降低了每秒生成會話的能力,其結果,只能是保留一些永遠用不到的會話虛數而已。每秒生成會話能力,也稱會話速率,主要與CPU處理能力/寄存器的數量,以及操作系統內核是否利用這一處理能力有關。相對而言,這是使用X86的系統比較弱的部分,包括nokia,而使用RISC的系統,速動會話的能力就比較高,相應地,保持最大會話的能力也比較弱。
????對于X86/Linux/BSD的防火墻來說,會話最大保持在10萬到30萬是比較合理的。如果使用非常強大的主板,而且linux針對這種主板進行了一些底層優化(主要是優化對寄存器-內存之間訪問的過程),可以在不損害會話速率等性能的情況下把會話達到50萬到60萬。這是目前本人所知的最大極限。
????會話的性能需要內存,如果考慮防火墻和操作系統本身展開需要128M內存左右的話,那么40萬會話就要消耗約180M,意味著是300M內存以上才有可能。由此,也可以知道一些產品的標稱是否有弄虛作假的成分。
?
為什么單機防病毒不能確保局域網不受侵擾- -
??????????????????????????????????????
對于防病毒來說,單機防病毒軟件更象是急救醫生,而不是預防針,至于病毒已經造成多少損害,實在只能是各安天命
當前企業局域網的防病毒措施主要是單機防病毒軟件和網絡防病毒軟件。相對而言,一般用戶或多或少都會使用單機防病毒,而使用網絡防病毒的比例就并不高。其中一個重要原因是用戶并沒有認識到防病毒軟件是一個和管理密切相關的產品,換句話說,沒有多少用戶,尤其是企業的領導人,愿意承認自已公司的IT管理水平是不夠的,需要使用更強大的保護措施確保企業網絡的正常運轉。
????大家都知道,要保證一臺電腦不受病毒侵害,需要安裝一種防病毒軟件,至于牌子反而不是重要的,更重要的是要保證定期升級病毒碼,并為運行的操作系統和程序打上最新的補丁,要想對抗蠕蟲病毒,單機而言還需要安裝單機防火墻。的確,對于一個具備良好電腦防護知識的使用者來說,象公司的電腦部技術員和網管等,使用單機防病毒軟件,并定時升級病毒碼,打上新的補丁,可以有效地保護自已的電腦不受病毒的侵擾。但同時也必須認識到,現實生活中,并不是所有企業員工都具備電腦的保護意識的,即使有些員工有一定的安全意識,一旦遇到特殊的情況,象防病毒軟件不能升級等等,除非是電腦部的服務性員工,否則就會不了了之;更多的員工只是電腦的使用者而不是維護者,有問題就把電腦往電腦部一送了事,就這樣,盡管一個公司內似乎每臺電腦都有防病毒軟件,事實是,大部分的是電腦是處于完全不設防狀態。 ????一般員工并不理解,維護一臺電腦的軟硬件,特別是維護軟件系統正常運行是一項艱巨、枯燥、極耗時間和精力的工作。別的不說,光是完整安裝好一臺WINDOWS就需要至少小半天的時間。如果這個員工完全不動電腦里面的設置還好辦,偏偏大部分員工卻是喜歡在自已的電腦上搞點"個性化"之類,這就令網管人員的維護工作更顯復雜化。實際上,一個網管人員能夠維護25臺主機軟硬件就很已經是超負荷了,而在現實企業網絡環境中,平均一個網管人員要照顧的主機數目通常上百臺。這就進一步造成了使用單機防病毒軟件的局域網,只要達到二三十臺主機以上,對病毒侵擾就基本上處于不設防狀態。
????因此,對于局域網的防病毒,使用網絡防病毒是非常重要的,它可以大大減輕網管人員的工作負擔。 這不是偷懶,而是由于這樣一個事實:絕大多數人都不是電腦專家。
????使用網絡防病毒軟件是必要的,但仍不足夠,因為近來威脅最大的病毒,是連網絡防病毒軟件也對付不了的蠕蟲病毒,需要使用防火墻才能抵御。
?
為什么防病毒軟件不能抵御蠕蟲病毒- -
??????????????????????????????????????
蠕蟲病毒本質上并非病毒,而是一種基于被攻陷主機陷害其它主機的黑客程序,因此,基于傳統文件IO流掃描的防病毒軟件對之無能為力
近一年內,在電腦病毒造成的危害中,蠕蟲病毒越來越成為最具危害性的病毒種類,象尼姆達,到沖擊波等,相比之下,普通的文件型病毒相對顯得如此古老,"溫和"。與最新病毒特點看,目前用戶,特別是企業局域網的防病毒措施顯得相當落后且不足。
????無論是單機防病毒,還是網絡防病毒,其核心都是電腦主機的文件防病毒。簡單地說,它工作在文件的開啟和存儲過程中,通常是在fopen()文件操作函數中形成一個文件流時,使用預設地病毒特征數值與流中的值進行匹配,從而確認該文件是否含有已知的病毒特征。由這個工作過程可以知道,存在一個確定的文件,是這類防病毒軟件工作的前提。所以目前象沖擊波這類的蠕蟲病毒,由于它不是基于文件工作而是基于溢出漏洞工作的,直到主機受到感染仍沒有執行任何fopen()操作,因此,無論是國產的如瑞星,還是進口的如諾頓,對于這類病毒都是鞭長莫及,只有在病毒要保存到硬盤上,如諾頓這樣的防病毒軟件的實時保護才會有所動作,因為,這時他調用了fopen()這樣的文件流操作了。
????有朋友可能會問,那么為什么裝了防病毒軟件,過一段時間后,病毒的確消失了呢?原因就在于這類病毒感染后是保留在內存中,只要一關機,就會消失。如果它存在硬盤上,防病毒軟件就會有反應;即使由于病毒碼更新問題沒有察覺,當電腦再次開啟時,總會經過文件讀操作,只要這個操作在在防病毒軟件初始化之后,防病毒軟件就可以阻止病毒再次讀入內存。顯然,這是因為開機、關機造成的強制性病毒清空、重載造成。部分感染沖擊波的電腦在關機開機幾天后就自動好轉,就是這個道理。
????但即使是這樣,仍然存在明顯的漏洞,只要病毒設計上開機時初始化時搶在防病毒軟件啟動前重載,就可以主動地避開防病毒軟件,甚至故意令防病毒軟件失效。在這場較量中,傳統的基于文件的防病毒軟件處于非常被動的地位。
????傳統的基于文件的防病毒軟件無法應付蠕蟲病毒,原因就在于這類病毒的機理并不是基于文件讀寫的和執行的,它的本質是一種程序化的黑客程序,針對已知的某種系統漏洞編寫,一般通過網絡對外服務的端口進行感染;象尼姆達主要針對wiindows,沖擊波通過微軟的RPC服務溢出漏洞等。整個感染過程與文件讀寫執行完全沒有關系,因此,傳統的防病毒軟件自然是無能為力了。
????要有效抵御蠕蟲病毒,唯一的辦法就是使用防火墻,在單機而言,可以使用單機型的防火墻,在網絡看,可以使用硬件防火墻。防火墻的作用就是控制主機向外開放的端口服務,從而切斷蠕蟲病毒病毒傳播的主要途徑。一般而言,如果主機數量不多,只有幾臺,象托管服務器,使用單機防火墻更經濟,反之,如果接受保護的主機比較多,象局域網,使用硬件防火墻會經濟得多和方便得多,其中一個不算太重要但卻很實際的原因是易于管理。道理和必須使用網絡防病毒而不能依靠單機防病毒軟件一模一樣。而且,按筆者的經驗,防病毒軟件和單機防火墻在一臺電腦上工作時,出現異常錯誤的機會很大,會大大增加管理員的工作負擔。
?
防火墻集成IDS對性能影響- -
??????????????????????????????????????
防火墻中集成IDS,理論上可以大幅度加強網絡的防入侵能力,但一般在netfielter擴展過濾涵數的實現方式對性能的影響也是不可小視的
許多客戶和技術人員認為,防火墻中集成IDS即IDP,就是把IDS和防火墻"串聯"起來,(這個比喻很形象),因此必然影響網絡處理性能,并大大消耗防火墻的系統資源,導致防火墻的"本職工作"反而不象專門的單一防火墻那樣專業。這種看法有一定的道理,因為許多入侵防御加強型的防火墻就是通過這個辦法宣稱自已也是IDP的。
????接觸過防火墻營銷商的顧客很多都聽過這些營銷商常常聲稱自已的防火墻帶有IDS,其實,那更多的是防火墻內核函數中防有限攻擊的功能,而不是真正的基于模式匹配的IDS。下面就用netfilter和iptables作為例子說明一下,要知道絕大部分防火墻是基于netfilter防火墻內核的,大致也就只有Netscreen,Pix,CheckPoint這幾家的中高檔產品才例外.
??iptables并不是防火墻,而是用戶與防火墻內核(netfilter)交互的接口工具,(簡易型的防火墻常常是把 iptables通過php和web圖型界面化開發出來,這也是許多國產防火墻的通用開發模式),在iptables中就有一項 --string的參數,可以把諸如病毒碼、一些特征碼放進去,形成簡易的IDS。這種形式用在病毒擴展上比較多,而用在IDS就不太合適,主要是網絡入侵不象文件型病毒,是不帶字符串型的特征碼的。
????在netfilter直接添加IDS功能,一般是在NF_HOOK宏中注冊自已的函數,抵御已知的幾十種攻擊形式。參看netfilter 的高級應用舉例。這就是通常人們理解的"串聯"的由來,這樣處理,由于每個包都必須經過這樣的檢測才能使用ip_forward_finish函數完成轉發,所以防火墻的性能是隨著這類函數增多而迅速下降的,所謂IDP低性能的傳說,就是這樣來的。netfilter另有一個邊緣的工程,叫hogwash。該工程結合了Snort IDS規則模式匹配引擎,以便于iptable能夠響應帶有攻擊信號的數據包。其實就是把snort的匹配規則自動換換成上述的函數,然后更新。但這個工程一直沒有進展,關鍵就在于,"串聯"的函數不能多,而且這樣等同于動態修改內核,極大地消弱了防火墻內核工作的穩定性。所以,通過這種方式提供IDS是行不通的,盡管仍有一些方式可以相對緩解這個矛盾,象CheckPoint的 smart defense,但畢竟可發展空間很有限。
????要有效地讓防火墻同時具備IDS的功能,方法只有一個,就是讓IDS作為一個獨立的實體線程工作在FW 的同一個系統中。這樣做,盡管表面上仍分薄了防火墻的CPU/內存系統資源,實際上,目前防火墻產品的系統瓶頸并不是CPU/內存,而是PCI的總線交換速率;相反,除非是同時使用高強度的VPN加密,否則,CPU/內存等一般資源是大大綽余的,對于X86的ASIC(冗余指令集)系統來說,更是如此。
????這時侯,IDS其實是與防火墻"并聯"工作。另一方面,防火墻的轉發要求實時性遠遠超過IDS,大致在微秒數量級(us),相反,IDS的實時性要求充其量只在毫秒級(ms),更多是在秒分甚至是小時這樣的數量級;而防火墻基于更高的實時性要求而擁有更高的系統優先級;因此,防火墻基本上可以不受IDS的影響而性能受到損害(在千分之一以下)。對于系統來說不是IDS是否會影響防火墻的性能的問題,而是防火墻需要準備多少的緩沖內存從事IDS的問題,以減少IDS可能因包丟失而造成的漏報問題。
????因此,合理集成IDS,是可以不對防火墻造成任何實質性影響的。這正是IDP的技術基礎。
?
防毒墻(防病毒網關)與防火墻的異同- -
??????????????????????????????????????
拒病毒于國門之外是防病毒墻的初衷,但在第三層工作環境的防火墻中建立相當于第七層過濾 所帶來的資源消耗,以及隨之而來的不可靠,卻讓人覺得得不償失
?防毒墻即通常所說的防病毒網關。目前市場上對防毒墻的概念仍未達到共識。一般認為,防毒墻包括以病毒掃描為首要目的的代理服務器;以及需要與防火墻配合使用的專用防毒墻;而以防火墻功能為主,輔有部分防病毒過濾功能的產品,一般不認為是防毒墻。因此,包括象Fortigate和德科安軟的圖騰防火墻,以至它們的OEM衍生防火墻產品,都不算是正式的防毒墻產品。如此分割的一部分原因,是因為這種以防火墻功能為主的防火墻,不可能因為需要防病毒而改做專門的病毒墻,在經濟上不劃算;而且,使用防病毒功能后,防火墻的性能會遭受大幅度的削弱,也使這部分功能只適合在較小的網絡范圍內使用。
????防毒墻與防火墻的最大區別在于,前者主要基于協議棧工作,或稱工作在OSI的第七層;而后者基于IP棧工作,即OSI的第三層。因此決定了防火墻必須以管理所有的TCP/IP通訊為已任,而防毒墻卻是以重點加強某幾種常用通訊的安全性為目的。因此,對于用戶而言,兩種產品并不存在著互相取代的問題,防毒墻是對防火墻的重要補充,而防火墻是更為基本的安全設備。在實際應用中,防毒墻的作用在于對所監控的協議通訊中所帶文件中是否含有特定的病毒特征,防毒墻并不能象防火墻一樣阻止攻擊的發生,也不能防止蠕蟲型病毒的侵擾,相反,防毒墻本身或所在的系統有可能成為網絡入侵的目標(如 趨勢的Interscan安裝在windows上的時侯);而這一切的保護,必須由防火墻完成。
????防毒墻和防火墻的共同之處是兩者都是工作在網關。在小范圍的網絡中,與互聯網聯網的需求相對簡單,一般就是SMTP和HTTP等少數幾種協議,這時,防毒墻只要所基于的操作系統沒有明顯的漏洞,作用與防火墻基本相同。
????無論是那一種防毒墻,由于工作的OSI層次較高,因此,過濾速度比較低;或者高速度的成本較高。但即便是高帶寬的防毒墻,對于網絡通訊所造成的延時也是比一般防火墻大得多。因此,防毒墻在大型網關節點的布署是一個值得管理員慎重對待的問題。筆者認為,把防毒墻布置在第二防火墻,即部門網關這一層較為合理。
????正因為這個原因,如果防火墻與防毒墻集成在一起,就會形成一個相對尷尬的局面:要么防火墻只能用在小型網段,要么就是大材小用,或者干脆就不用。
?
網關防病毒(防毒墻)的實現方式- -?
?????????????????????????????????????
防火墻集成防病毒功能,即網關防病毒,與平常常見的基于主機的傳統防病毒有很大的不同。傳統的防病毒軟件通常是在類似fopen()這樣的文件操作函數中
形成一個文件流時,使用預設地病毒特征數值與流中的值進行匹配,從而確認該文件是否含有已知的病毒特征。而在網關環境中,根本就不存在一個"文件"的概
念,有的只是分屬于不知那里來的那個文件的成千上萬的IP包,因此,網關防病毒需要完全不同的防病毒引擎。
防火墻集成防病毒功能,即網關防病毒,與平常常見的基于主機的傳統防病毒有很大的不同。傳統的防病毒軟件通常是在類似fopen()這樣的文件操作函數中形成一個文件流時,使用預設地病毒特征數值與流中的值進行匹配,從而確認該文件是否含有已知的病毒特征。而在網關環境中,根本就不存在一個"文件"的概念,有的只是分屬于不知那里來的那個文件的成千上萬的IP包,因此,網關防病毒需要完全不同的防病毒引擎。
????網關防病毒同樣是基于特征字符串匹配。固然可以直接在防火墻過濾內核中匹配每個IP包的內容是否包含指定的ASII字符串,但這樣很不可靠,因為許多文件在以太網傳輸過程中是分成許多IP包的,如果特征碼剛好在分割界限上,這種字符串匹配就無能為力,因此,就要求防火墻使用IP碎片重組技術,即必須由防火墻內核辟出一個新的緩沖區重組IP包,然后再繼續轉發。另外,全面匹配每個IP包的每一段內容,對防火墻的通量性能危害極大,性能的損害可以達千倍以上。正是由于這個原因,使用這種方式進行防火墻的防病毒對性能的損害的極大的,防火墻變慢不足為奇。也正是由于這個原因,使用這種方法是不可能達到傳統的殺毒作用,在防火墻上,只能是查毒,一旦發現,就把該IP或該會話丟棄,顯然,這時涉及的文件也不會有用,因此,防火墻的操作就是把文件丟棄,也即一般用戶在如fortigate防火墻上看到的病毒文件的"被屏蔽"。除Fortigate外,象熊貓的 PAA防毒墻,也是能通過這種方式實現的,只不過,它把系統默認設定在透明模式上工作而已。
????網關防病毒的另一個實現方式就是使用代理服務器。眾所周知,防火墻工作在OSI第三層,部分工作會在第四層會話層完成;而代理服務器則工作在OSI第七層,也就是應用程序層上。這時,防火墻實際上起到的是一個二傳手中介的作用,發起聯接的主機和目標主標根本沒有建立起真正的聯接。在代理服務器作為二傳手是時,代理服務器進程就會在內存中建立起一個文件緩沖區,從而形成一個可檢測的流。這時的檢測就與普通的傳統防病毒方式是一樣的,同樣是使用fopen的文件操作,只不過,傳統防病毒軟件是在文件系統中的調用fopen();而網關防病毒則是在socket 中調用這個函數。恰好,在UNIX中,是把網絡socket看作是文件中的一種。使用這種網關防病毒方式的包括象諾頓的防火墻(本質上是代理服務器), NAI的防毒墻,還有圖騰防火墻的防病毒功能,以及東軟防火墻的流過濾技術,都是這樣實現的。使用代理服務器可以實現比防火墻內核過濾要復雜得多的過濾操作,(這是OSI第七層應用程序較之OSI第三層操作的先天優勢),代價是負出的性能損耗也是極大的,同樣的通量,代理服務器需要成百上千倍于普通防火墻的資源消耗。
?
什么防火墻集成防病毒會很慢- -
??????????????????????????????????????
由網關防病毒的兩種實現方式可以看出,無論采用那一種,實時性和網關通量與一般的防火墻相比都是大為不及的。
由網關防病毒的兩種實現方式可以看出,無論采用那一種,實時性和網關通量與一般的防火墻相比都是大為不及的。另一方面,任何一個終端主機產生如文件下載請求時,防毒墻都需要專門辟出一段專門的內存保存用作檢測的臨時文件。盡管不需要把整個文件都保存在緩存當中,但肯定比單純進行IP轉發要大得多。可以想象,如果同時有多人下載或傳遞大文件時侯,防毒墻/代理服器的負擔到底有多大。要知道,文件傳遞,這包括到象HTTP,FTP,SMTP,POP3這些協議,是經常執行的。這時侯,防火墻的負擔比最大負載的文件服務器恐怕還要大得多,要知道,標準的工業防火墻是連系統硬盤也沒有的啊!!這就是為什么防火墻激活防病毒后會很慢的原因。也正是由于這個原因,指望在大網絡的網關把病毒完全切斷是不現實的,否則,在中國電訊的國際出口設個防病毒墻豈不是更干脆?事實上,網關防病毒,無論是代理服務器還是IP內容檢測,都很難對50臺主機以上的網絡服務。這同樣是象諾頓這樣的防火墻(代理服務器)不能在企業大型網絡工作的原因。
????與防病毒相似的是內容過濾,道理也是一樣的,而且實現起來還相對會簡單一些。
????畢竟,防火墻的天然工作僅是地址和端口的轉發控制,在小網絡它可以多干些其他的事情,而在大網絡,還是激活功能單一一點為好。
?
開發硬件防火墻的主要步驟- -??
????????????????????????????????????
這里說的雖然是硬件防火墻,但幾乎所有的工作都是軟件工作。硬件防火墻的核心是軟件。
這里說的雖然是硬件防火墻,但幾乎所有的工作都是軟件工作。硬件防火墻的核心是軟件。
????在開發前,首先要清楚知道自已要需要的是什么類型的防火墻。同為硬件防火墻,大致可以分為高端以千兆為代表的主火墻,中端的百兆企業防火墻,以及低端家庭-小辦公室的防火墻(SOHU-SMB)。這三個級別的防火墻的開發方式有很大的不同。高端千兆防火墻的代表產品包括Netscreen的5000系列防火墻,以及Nodia-CheckPoint的IP720以上的產品,這級防火墻能夠適應千兆要求的作業,吞吐量至少在600M以上。作為國內生產商目前要推出真正的千兆防火墻是很困難的,詳情請參考:為什么實現千兆防火墻很困難
????而作為低端家庭-小辦公室產品的防火墻,主要受的是硬件成本的壓力。這一級產品包括如 Netscreen的50/25/5X系列,Fortigate的FG200和FG300,以及一些市場上的撥號器、寬帶路由器都可以歸屬這檔防火墻。工作特點多是單進單出,主要用在小局域網進出互聯網的控制。考慮到一般公司出入互聯網的通道充其量也就幾兆,即使是LAN用戶或CABLE MODEM,公共出口也仍是幾兆。因此,自適應十兆/百兆的單進出小防火墻基本上可以滿足要求。事實上有些幾百人的公司使用win98+sysgate撥號,也是自我感覺良好,可見這一檔次的上網防火墻性能要求并不高;價格也是維持在兩萬元以下。但對于使用X86架構的防火墻來說,要求再低硬件也是有幾千元的;連上軟件成本,這兩萬元簡直無法維持。因此,這一級防火墻的主要開發方式,是選擇合適的嵌入式系統,通常是Linux,連硬件和軟件整套買進來,自已添加其中的防火墻應用程序。這種防火墻主要的系統開發工作由各嵌入系統的供應商完成,而系統功能也弱,留給生產商的軟件施展空間也不大,所以更象是一項硬件采購項目。連同最低采購限額(一般是一千)和軟件開發,大致在一百萬左右就可以拿下一個產品。這種防火墻,雖然也是"硬件防火墻",但不是我們本文的重點。
????本文介紹的,是中檔的企業級百兆防火墻的開發的主要步驟。這一級防火墻,是目前企業采購的主要對象,也是最需要的產品類型。國產防火墻,基本上集中在這個區間,操作系統一般選用開源的Linux或者BSD;相比之下,BSD的應用程序升級速度不算快,所以大部分防火墻選用的是Linux。
????要決定開發一個百兆的防火墻,需要選定一款合適的服務器主板,或者工控機,另外就是要選定一個好的網卡,通常是服務器專用網卡。雖然象Linux這樣的操作系統可以自動適應不同的主板,(只要它符合象PC2000這樣的標準),Linux的最新內核也總能支持較新的主板的性能,(如PIII的超線程);但每個主板和CPU之間還是有少許不同的;作為一個防火墻,除非對極端性能要求不是太嚴格,否則,需要針對主板和CPU的一些特性,如寄存器,SMP,超線程等等對內核進行針對性的修改和優化,否則,默認的內核就只能使用這些主板/CPU最基本的部分。舉個例子說,防火墻有一個重要的性能指標叫最大會話數速率,或稱每秒最大生成會話數,如果使用普適形的內核用到P3CPU上,能夠達到的最大數值大致也就只有幾千;但經過對針對主板設計(這種說明可以從主板和CPU廠商獲取)進行優化,可以把性能提高到3-5萬左右。同樣,單純升級主板和CPU不見得能提高性能,象把防火墻從P3升級到P4,如果沒有支持P4的特殊性能,如超線程,最大會話能力就仍與P3沒有區別,不如不升值,還可以減點成本。而專門的優化,則可以把性能達到50萬,這也是這類防火墻的使用Intel架構主板目前所能達到的極限。針對選定硬件的優化工作盡管獨立于防火墻開發的主體軟件工作,一般情況下也不會顯出它的必要性,但當防火墻進行極端的使用環境或評測環境時,顯出的差距就非常大。針對網卡的開發驅動程序除了優化性能外,另一個目的就是要把防火墻與網關綁定在一起,以免被盜版。這個驅動程序與定造的防火墻內核一起,就令盜版顯得困難得多了。
????防火墻軟件的開發工作主體就是防火墻管理軟件的開發。對此,架構師要明白自已到底要開發那一種防火墻,防火墻的管理思路是什么。在幾年前這種開發顯得簡單,就是用一些web調用的程序,(另一種辦法是用dephi寫windows程序,通過特定端口服務控制防火墻,調用預設程序,原理也是一樣的),直接調用Linux的防火墻管理工具如ipchains;其余的工作主要就是預先編好若干類的默認配置(相當于template)。因此開發難度不算大,十來個人一年半載總能完成;大批國產防火墻就是這樣開發出來的。這種防火墻,對于熟悉Linux防火墻的高手來說是不必要的,自已用Ipchains就可以達到同樣的目的。因此,今天這種防火墻已經擺不上臺面了。今天的防火墻主要是從便于管理著手,著眼于管理員可以較易對大量、復雜、多半的政策進行維護,這就需要開發"面向對象管理的防火墻"。這樣一來,使用把 ipchains/iptables單純用PHP或delphi圖形化是不足夠的,事實上,這時侯單純使用如iptables已經很難滿足要求,開發者常常必須開發自已的象iptables那樣的防火墻管理工具。這部分的工作非常龐大。
????作為防火墻的載體的操作系統和防火墻的內核也是一個工作重點。防火墻作為網絡的第一道防線,不可以使用默認設置的操作系統,除了最必要的服務以外,所有東西都必須刪除。因此,企業級防火墻基本上是使用的是嵌入式操作系統的開發方式,通通常是形成一個在內存中運行的安全操作系統,如同一個無盤的工作站。防火墻必須長時間無故障工作,還要應付可能有的突然斷電等現象,所以,一般情況下禁止連接系統硬盤,以免造成斷電損壞。防火墻的固存一般都不大,16M到32M就綽綽有余了。有些防火墻廠商沒有能力做到這一步,就使用大容易的FLASH作為系統盤,其實是非常危險的。原因在于flash的寫性能差,可寫次數只在千次數量級,而Unix類的文件系統讀與頻繁,因此極易造成flash上數據的丟失;而且一旦發生斷電關機,如果仍然有系統盤安裝在目錄上,很可能造成文件系統的損壞,最終結果,即使最后可以搶救過來,也會給用戶防火墻質量不過關的印象。
????防火墻的內核也是一項不可少的工作內容。目前一般的防火墻都是使用netfilter作為防火墻的內核,而且都要求添加一定數量的防攻擊性能。參考netfilter的深入應用舉例。但有些防火墻產品把這項工作擴大化,希望由內核完成如IDS、防病毒的工作,盡管可以辦到,但對防火墻的基本性能會造成嚴重的損害。
????企業級的防火墻需要有多種遠程管理工具,方法一般有三種,ssl+http,遠程的secure shell,或者使用專用客戶端工具。無論是那一種,都是基于同樣的在防火墻預定的用戶管理程序工作,這些管理程序被調用后,就與防火墻的接口管理程序(象iptables,或自編寫的接口程序,象圖騰ObjectMgr)互動,完成防火墻的管理工作。這部分的工作也是比較大的。象防火墻可以允許用戶用 ssh登錄,但卻不可能允許直接返回root shell(太危險了),于是就必須開發一個安全的shell作為第一重接口,這樣,開發者就相當于自已開發了一個BASH一類的解釋程序了。對遠程訪問的安全控制是防火墻的一處重點,常常要結合管理機限制,IP/MAC限制,密碼、證書認證等多重安全手段。否則,否許所有人都試圖登錄防火墻,防火墻本身就很危險,根本談不上網絡的安全性。
????完成以上的工作后,再完成最先談到的web-ssl管理界面,或者是delphi(或C++)的客戶端管理工具。防火墻就基本上成形了,區別只在于用戶是不是覺得你的管理工具好用不好用而已。(許多程序員認為防火墻工程不大,其實是他們的腦海中以為防火墻的研發只有這個圖形管理界面一項而已)。但即使這樣,作為防火墻的研發工程還遠遠沒有完成。開發者常常還必須向防火墻添加VPN(這也是一個巨大的工程),代理服務器(如是要加,就要寫多種協議的代理服務器),如PPPOE撥號,是否還要加會話認證;以及HA和負載平衡,以及支持透明模式接入;是否支持外部帳號管理,等等。
????前文這些工作終于都完成了,大概可以松一口氣交功課了吧?的確是這樣,假如您不介意你的防火墻有BUG 的話!否則,這個工程頂多只完成了一半。下面的工作就是編寫測試實例進行測試。硬件防火墻由于對軟件硬化處理,而且長時間無間斷運行,因此,對軟件的質量要求非常高。測試者至少要編寫以下三種測試實例進行測試:1)程序中是否有內存對象沒有清除;程序中殘留有對沒有clear是經常的事,象windows 的程序就有這個毛病,所以windows 開了一段時間后就要重啟以便空出內存;在防火墻中這個要求嚴格得多,一個半個的對象殘留對普通的軟件項目沒什么大不了的,但對于防火墻是致命的;防火墻的系統資源會在很短的時間內就完全被這個BUG吃光。2)使用防火墻的管理工具生成每指定的政策實例時,是否做到該放行的包放行,不該放行的包不放行;3)防火墻的極限工作條件;也不是如最大會話這樣的測試,這些需要專門的測試工具如smartbit;高性能的防火墻還需要外包測試,因為設備太貴。如果防火墻集成了如VPN,IDS,防病毒等功能,還必須進一步編寫測試實例,測試在啟動這些功能時防火墻的其他性能的下降情況。
????防火墻軟件系統的測試是一項最耗時最耗力的工作,占了整個開發成本至少一半以上,任何一個測試通不過,都要重新debug,重新測試,直到測試完全通過為止。如果一個模塊測試返工三次就通過,那個程序員一定是很優秀的;如果通過六七次,實在很正常;就算十次才通過,也不算是丟臉的。在這種反反復復的工作中,開發者就會發現,象前文說的那樣把程序分成幾個獨立的層面分別開發,分別測試,文檔完整,具有無可比擬的優勢。否則,這樣的開發工程那怕一千人做,做一百年都做不完。
????只有完成測試工作,防火墻就算過關了。整個工程100人如果能夠在一年里做完,就要謝天謝地了。開發一個企業級防火墻需要上千萬人民幣,各位朋友現在是不是理解一點了?同樣,在幾年前幾個人做個管理界面調用ipchains,當然也是一個防火墻,的確也不是弄虛作假。只不過,在于各個廠商的選擇而已。
?
為什么實現千兆防火墻很困難- -
??????????????????????????????????????
千兆防火墻的代表產品包括Netscreen的5000系列防火墻,以及Nodia-CheckPoint的IP720以上的產品。這種防火墻的特點是網
絡吞吐性能要求高(即帶寬要求高),普通的硬件主板不能承受,市場出貨量又少。因此,在世界上能夠實現的廠家很少,而且必須是世界級的進行市場推廣的公司
才能推出真正的千兆防火墻。其他的,即使是名為千兆,實際上也只是假千兆,說穿了就是把千兆卡用到百兆防火墻的內核上,實際上達不到千兆性能。要了解個中
因由,首先要了解防火墻的工作原理。
千兆防火墻的代表產品包括Netscreen的5000系列防火墻,以及Nodia-CheckPoint的IP720以上的產品。這種防火墻的特點是網絡吞吐性能要求高(即帶寬要求高),普通的硬件主板不能承受,市場出貨量又少。因此,在世界上能夠實現的廠家很少,而且必須是世界級的進行市場推廣的公司才能推出真正的千兆防火墻。其他的,即使是名為千兆,實際上也只是假千兆,說穿了就是把千兆卡用到百兆防火墻的內核上,實際上達不到千兆性能。要了解個中因由,首先要了解防火墻的工作原理。
????大家都知道,防火墻的工作核心其實就是對IP包頭與預定政策的匹配控制。防火墻在工作的時侯,首先從內存讀出政策鏈的第一條放進寄存器,然后經系統總線(pci0),再經pci-pci橋,再經pci1到pci網卡讀取IP包的頭信息,把它與寄存器中的政策進行匹配,然后決定該IP包的處理。一來一去需要兩次經過PIC總線。如果IP包比較大,那么這個包頭信息與包的大小比較就相對小得多,這時侯系統帶寬的瓶頸就是網卡的內存暫存能力,也就是我們所說的百兆網卡和千兆網卡的區別,或者稱為線速的限制(wirespeed).但如果IP包很小,那么IP包頭所占的比例就相當高,這時,瓶頸就是PCI總線的交換能力了。
????任何來往于該PCI的其他傳輸,都將由于總線爭奪而受到限制。在這一數據交換中,數據通過 Hubink,從ICH(I/O Controller Hub))到MCH(Memory Controller Hub)的傳輸有四次,經過PCI總線的傳輸有兩次。由于HubLink的最大數據吞吐量是266MB,約2.2Gbps;但由于32位PCI總線以 33MHz運行,所以數據傳輸率被限制到1.06Gbps左右。而且還要連接運行各種系統數據交換。由于PCI總線的帶寬限制,PCI網卡永遠也不能實現真正的全雙工的2Gbps帶度,最高理論速度是單向1Gbps,而實際達到的不超過一半,即500M。
????換句話說,對于硬件確定的系統,每秒能夠處理IP包的數量是一個相對的常數。這個常數與CPU處理能力和寄存器數目,以及系統總線的交換速度形成的整體能力密切相關。對于使用PIII處理器和 X86服務器主板(或工控主板,32位PCI總線)的防火墻,這個數字大致在五十萬到一百萬之間。(注意不要把它和最大的會話保持這個標稱參數混淆,最大會話主要與系統的可分配內存有關系)。因此,基于Intel X86主板的防火墻的極限吞吐量在IP包大小為512比特時,大致是三百兆左右。顯然,這個吞吐能力很符合百兆防火墻的環境,也符合低流量的千兆網環境的要求。但對于高流量的千兆網,就無能為力了,必須在硬件上整體改進才可能滿足這個階梯的升級要求。
????從前文也可以看出,防火墻的吞吐量是與IP包的大小密切相關的,所以談論吞吐量如果脫離包的大小是毫無意義的,任何防火墻都可以達到百兆線速,只不過是在包大到什么程度才能達到線速而已。另一方面,Intel X86主板架構的服務器,即我們通常說的英特服務器,ASIC服務器(冗余指令集服務器),或PC服務器盡管不能完全滿足千兆環境的防火墻吞吐要求,但一般的千兆環境還是可以應付的。因為以太網中的設備不止防火墻一個,還有交換機、路由器等等,這些產品全部都可以形成瓶頸,因此,一個局域網段的極限流量不是它的線速,而大約是線速的25%以下。即千兆約250兆,百兆約25兆。考慮到目前國內一般千兆網的實際流量都不高(很少超過十兆的),所以這種基礎的防火墻還是可以承擔一般千兆網的流量要求的。但如果千兆干網達到100兆以上流量,幾個千兆口累加的吞吐量就超過了這種防火墻的內部極限,這種防火墻就會大量丟包,成為網絡系統的瓶頸了。
????因此,要克服這個瓶頸,就只有一個辦法,提高系統每秒能夠匹配的IP包的能力。其中的關鍵是擴寬PCI 總線的交換速度,反而CPU速度并不是系統的瓶頸,相對而言,今天的CPU能力大得驚人,處理防火墻過濾如同牛刀殺雞,所以大量防火墻把多余的處理能力用到VPN的強密解密處理上。而PCI速度實際上從問世到今天,也已經從33M提升到133M,只是與CPU的摩爾速度相比,顯得慢得多了,偏偏一個桶能裝的水是以最短的桶條來衡量的。到今天,要解決硬件瓶頸,已經形成了幾種相對可行的方案。
????一種就是使用專門設計的多總線服務器。如Nokia IP740雖然也是X86,但內置三條PCI總線,這樣就可以提高防火墻的極限吞吐量,滿足一般的千兆環境。第二種是使用專門的處理插卡,換方之,就是把千兆的網卡和專門的過濾處理器做到一起,形成新的千兆網卡,大部分工作無需再經PCI總線到CPU才返回,直接在PCI1就交換完畢了。這是 CheckPoint曾經使用的方法。第三種方法與第二種相似,所不同的不是使用專門的PCI集成網卡,而是使用一個前置在Pci1總線上的單片機,直接處理防火墻的過濾轉發要求。這樣同樣可以克服總線限制。使用這種方法的就是著名的netscreen公司的ASIC處理器。最后一種辦法目前仍沒有確定可行。就是使用英特的NP處理器。它的缺點是把整個防火墻變成了一個過濾器。可是防火墻雖然主要工作是過濾轉發,但并不是過濾轉發就是防火墻,其他功能也是很重要的。否則就與路由器沒有什么區別了。另一個簡單的辦法就是使用RISC-SCSI的架構,也即通常所說的高檔UNIX主機,由于使用64位總線,也是可以克服32位PCI總線形成的瓶頸;這也幾乎是普通防火墻廠商滿足千兆要求的唯一辦法了,就是把防火墻軟件裝到UNIX主機上面,成本可想而知。
????無論是那一種方式,無不與一定量的市場需求密切相關。設計定制專門的硬件成本很高,動輒以千萬美元計算,任何公司都不可能為區區一百幾十臺的出貨量去搞什么專門的硬件。而且,千兆防火墻需求量只是百兆防火墻的幾十分之一(只有敗家子式的蠢才才會清一色用千兆防火墻),這就決定了即使是年出貨量上千臺的防火墻生產商也不能承受定制專門的千兆級硬件的成本。要知道,即使是盡得中國官方采購天時的天融信也遠達不到這個出貨水平。所以,世界上除非是在全世界范圍內成功銷售自已產品的公司,否則,推出真正的千兆防火墻是非常困難的。除非出現64位的PCI總線,否則百兆和千兆就是一個難以超越的等級;反之,一旦64位總線成為主流,那時千兆就象今天的百兆和十兆一樣,很容易就成為一個可以自動適應的網絡帶寬等級。到那時,瓶頸制約的就是萬兆了。不過說老實話,除非是實時看高清晰度電影和電視轉播,否則我的想像力根本想不出拿著萬兆到底干什么好。
????目前英特正在研發新一代的網絡系統總線CSA,(傳輸流架構),這一接口的投入,將為LOM(LAN on Motherborad)打下基礎。介時,國產千兆防火墻產品就可以無需特別定制的硬件而揚帆四海了。
?
為什么子網分隔是至關重要的安全措施- -??
????????????????????????????????????
有些單位在把局域網最終連上互聯網時,考慮到的安全措施就是在網關上加一個防火墻。顯然,這是很必要的,但光在內網外網之間進行過濾,實際上是很不夠的,對內部組網進行合理的邏輯、物理的分割,要比單純購買一個網關防火墻更為重要。
有些單位在把局域網最終連上互聯網時,考慮到的安全措施就是在網關上加一個防火墻。顯然,這是很必要的,但光在內網外網之間進行過濾,實際上是很不夠的,對內部組網進行合理的邏輯、物理的分割,要比單純購買一個網關防火墻更為重要。
????很多用戶在購買防火墻時常常以局域網內有多少電腦作為購買網關防火墻的重要指標,其實這是一個很大的誤會。外網接口與內網接口實在是不一樣的。內網通常是局域網的百兆接口,而外網,一般公司的真正可用帶寬通常只有幾兆,象ADSL用戶,其實只是500K左右;就算是寬帶LAN的用戶,表面看來是100兆接入,其實,在公共出口出也只是幾兆的帶寬。所以,單純用作上網防火墻的話,無論是國產還是進口的產品,根本不存在性能會不夠的情況。僅僅是因為,僅僅使用一個單進單出的防火墻在網關處把關是遠遠不夠的,使用防火墻對內部網進行分隔才是最根本的解決之道。
????實事求事地說,防火墻并不能保障企業的網絡安全,僅僅是減少了發生危險的機會,并且在險發生的時侯能夠加以控制。這有點象造船,僅僅讓船浮起來不夠,船的生存力取決于"萬一"漏水后能有多大的浮航機會,把船艙分隔成若干個水密艙可以說是造船業上最重大的發明(也是中國人自已的發明,據說得益于古代中國人使用竹子做船的啟發)。用戶使用防火墻保護企業網絡,不就是為了防這個"萬一"嗎?把企業網絡劃分成一個個的子網,通過防火墻控制它們間的訪問,就好象把船分隔成若干個水密艙,即使某一網段被成功入侵,(這種情況遲早會發生),企業管理員也可以足夠的時間作出反應和處理;最起碼可以把損害控制在有限的范圍。
????現在的網絡入侵手段是很多的,沒有防火墻無疑是自殺,有了防火墻也不能說就已經是保險。設想一下,郵件可以越過防火墻,如果某個用戶不小心激活了某個郵件中的木馬,防火墻也就失去了效用;或者單位里有些部門自已可以撥號上網,他們自已上網的電腦被沖擊波感染了,然后就可以成為在局域網內自由傳播的源頭,這時防火墻同樣失去了作用;或者是部分員的電腦沒有打補丁,僅僅是上網瀏覽就感染了尼姆達病毒,如果沒有作網絡分隔,同樣是會迅速在企業網內擴散。......
????因此說,企業對內部進行合理的網絡分隔,是比單純設一個網關防火墻重要得多的安全措施。這還沒有包括企業本身特殊的安全要求,如財務、人資、關鍵技術資料、合同等部門,相信不是所有人都希望完全透明公開的。企業防火墻正是為此可造,而不是僅僅為了上網而用的。
????筆者認為,局域網內電腦在50臺左右是否需要進行子網分隔的臨界點,同時也是能否使用代理服務器的臨界點。在50臺電腦以下的網絡規模,可以使用代理服務器如諾頓或ISA2000;或者是SOHU/SMB類型的防火墻,如Fortigate 300;超過50臺電腦,繼續使用代理服務器,或者不進行子網分隔是非常不明智的。
????用戶在規則子網分隔時,也要注意另一個不正確的取向,也就是子網分隔也并不是越細越好的。過分的分割,除了增加管理的復雜程度,和增加用戶布署成本以外,沒有帶外太大的好處。因此,用戶可以按自已的網絡規模,分割成干個數十到100臺主機一個的子網區間。一般的防火墻除外網外還會有三個左右的自由定義接口,如果覺得不夠,可以考慮使用小型的防火墻分隔電腦數量不多的子網(如財務這類只有幾臺電腦卻又不得不分割的子網),如果采購的防火墻支持的話,還可以采用增加網絡接口的辦法。但不要采用把防火墻當成廉價交換機的做法,一味用防火墻代替所有的交換機和路由器。畢竟同等吞吐量的防火墻要比交換機或路由器貴得多,速度也要慢得多。
?
?
為什么說國產防火墻不可靠- -????
??????????????????????????????????
只要接觸信息安全行業,總能聽到、看到大量如此傳播的信息,就是國產防火墻都是不行的,只有進口產品才是合格的。可事情真的是這樣嗎?我把這些文章都仔細讀一下,卻發現沒有一份是詳實有據地說明國產防火墻是不可靠的,充其量只是局部現象,編編成為國產防火墻不可靠的證明,這到底是什么回事?
只要接觸信息安全行業,總能聽到、看到大量如此傳播的信息,就是國產防火墻都是不行的,只有進口產品才是合格的。可事情真的是這樣嗎?我把這些文章都仔細讀一下,卻發現沒有一份是詳實有據地說明國產防火墻是不可靠的,充其量只是局部現象,編編成為國產防火墻不可靠的證明,這到底是什么回事?
????象有一份已經碾轉轉貼了三年多的文章,名為《我眼中的某國產防火墻》,作者顯然是一位售后工程師,說出了他看見國產防火墻內部后的感受。這位先生沒有點名(恐怕這是中國傳媒的最大特點,批評時不敢點名,全是某人,某廠,某公司,某局,......,在國個外,不敢點名的批評是造謠,是犯法的),所以很容易被所有讀者理解成這就是指所有的國產防火墻,(這偏偏也是中國人的習慣思維),他指出他所經手的這款防火墻,實際上是一臺中檔PC,裝個RedHat Linux后弄出來的。作為過來人,我可以理解一位初出道的大學生剛剛理解某樣開始以為神秘莫測的東西時,突然感到的那種"噢,原來只是這樣"的心情;但同時也要指出,這是在三年多以前,那時侯的國產防火墻技術和今天如天壤之別。而且,從描述看,那臺防火墻明顯是裝機出貨的產品,即每出一臺防火墻就裝 Linux裝apache......這樣一臺臺出貨的產品,而不是總體研發批量生產的防火墻。
????另一份類似的文章,那是重慶《電腦報》在今年四月份左右出版的名為《看不懂的硬件防火墻》,同樣轉得滿世界都是。別以為此文說的是硬件防火墻,實際上說的仍然是國產的硬件防火墻。與前一篇的作者親歷親聞相比,該文作者顯得似內行又似外行。說他外行,是因為他證明國產防火墻不可靠的理由,是因為他發現國產防火墻中用的是他熟悉的CPU(英特),(也許還有硬盤網卡什么的),于是他一算:俺DIY一臺PC才多少錢?媽的這防火墻瞧著不也象俺家的電腦嗎?干嗎賣這么貴?他根本沒有算軟件的錢!!要知道,防火墻主要價值是軟件,對于防火墻生產商來說(中間商不算),硬件甚至是可以白送的,只要軟件賣得物有所值!但他有些地方又說得象是內行(估計是抄回來的),說:網關產品是最關鍵的地方,需要超級穩定,國外都是使用芯片級技術實現硬件防火墻的;象國產防火墻使用LInux是不可靠的。這樣,這位作者就得出結論,國產防火墻都沒有使用他說的芯片級防火墻技術,都是騙人的。
????這樣一份似是而非的文章登在全國知名的IT大報上,然后在各種媒體包括互聯網傳來傳去,會造成什么影響,可想而知。為什么我說他是似是而非呢?就因為世界上采用"芯片級防火墻技術"的,只有一家,就是Netscreen,說穿了,就是ASIC。但我想說的是,世界上除了Netscreen還有上百家的知名防火墻,包括PIX,CISCO還有上百家防火墻廠商,他們都沒有"芯片級"什么玩意,包括象 Netsonic(19萬臺出貨量),watchguard這些知名的防火墻,使用的都是Linux;幾乎所有的廠商,或多或少都是基于X86主機架構的。而這位作者所說的話,實際上相當于這樣的意思:只有Netscreen才是合格的防火墻,其他的都是騙人的,(所以我猜說原話的是一個 Netscreen的代理商一類,Netscreen自已是不會這樣說話的)。
????以上兩份是最具代表性的兩份文章。那么國產防火墻的真實情況到底如何呢?
????應該看到,國產防火墻是一個很廣泛的概念,可以說大林子里什么鳥都有。因此很難用一句國產防火墻是好的還是壞的、可靠還是不可靠以蔽之的。事實上,目前所謂的國產防火墻,至少超過一半以上是貼牌的進口防火墻。舉個例子,如果用戶注意一下,有許多"國產"防火墻的產品說明中常常有"ASIC",防病毒這類的話,這就說明這些防火墻很可能就是用Fortigate來貼牌的,因為,ASIC是Netscreen 的專利硬件技術,不可能被國內產品商引用的。這種防火墻充其量只是價格混亂,服務不能保障,而不會比原裝原廠的產品不穩定,或者更便宜。
????中國目前的軟件業仍是一個個人英雄主義時代,很少有超過十人的團隊可以有效合作的。這大大限制了國內開發象高級防火墻這樣復雜的軟件項目。早幾年,當用戶要求還相對簡單時,很多公司使用將Linux(或BSD)的內置防火墻管理工具,一般是 ipchains,用Web+ssl調用或者是遠程服務管理的方式,開發出第一代的簡易型防火墻。由于利潤的確可觀(可以想像幾千元請幾個"高手"奮戰幾個月的php編程,卻可以賣每臺十幾萬元是什么滋味),許多原來只做個人電腦的廠商,也隨便買個不知名的產品貼上自已的牌子,然后利用自已的渠道和品牌 "進軍"防火墻市場,一躍而為前幾名的國產防火墻廠商。上文《我眼中的國產防火墻》相信就是這一代產品。但這個等級的防火墻今天在中國已經沒有生存的余地,(太落后了),有些廠家雖然靠這個級次的產品出了名,但現在能夠提供的卻是個人防火墻,或者就是干脆找個進口防火墻貼個牌(OEM),繼續賺剩下的錢。剔除掉這一部分的廠家后,按保守估計,中國目前真正擁有知識產權的企業級防火墻生產商,不會超過十家,甚至不超過五家。
????開發一個完整的企業級防火墻產品,從規劃、設計到開發、軟件硬件的定制、優化,到完成各種測試,投資遠遠超過《看不懂的硬件防火墻》作者的想象,至少需要1000萬元人民幣。在目前中國的軟件產業水平而言,接近于是最大、最復雜的軟件項目。這也是為什么擁有自已開發的國產防火墻如此少的原因。這些防火墻與大量如netsonic等的進口防火墻的方案、架構甚至軟件成熟度都是非常接近的。事實上,除非英特處理器不穩定,除非PC服務器不穩定,除非Linux不穩定,否則,這些防火墻不存在不穩定不可靠的地方。這不同于依靠個人高手開發的防火墻。而兩種防火墻的不同,很多時侯看看操作界面和命令行接口就可以看出其成熟度的差別。這種防火墻在百兆環境,與進口產品相比,不會有任何問題。
????另一方面,由于我國市場出貨量的限制,我國的國產防火墻廠商極難定制自已的專用硬件。這就極大的抑制了國產防火墻在千兆級產品的發展潛力。因為在千兆級防火墻,依靠的主要已經不是軟件功能,而是硬件系統的潛能,象眾所周知的PCI系統總線對吞吐量的限制。因此,國產防火墻目前基本上不可能推出自已的千兆級專用硬件,充其量只能使用通用的服務器,象Nokia的IP系列。這就是目前國產千兆防火墻性能不及使用專用硬件的進口防火墻的原因,但就穩定性和可靠性而已,兩者仍是處于同一個等級的。
????因此,國產防火墻,特別是百兆防火墻是完全可以信賴的,部分產品的性能價格比明顯超過進口品牌。如果用戶對使用國產防火墻有過不愉快的經歷,也只能說是選錯了廠家(可以對號入座看看是上述那一類國產防火墻),而不能稱為國產防火墻不可靠。所以,國產防火墻不可靠,更多是一個公關形象的問題。但這恐怕不僅僅是國產防火墻,而是國產的高科技產品,整體公關形象都不容樂觀。
?
?
IDS入侵檢測的種類和特點- -
??????????????????????????????????????
IDS入侵檢測的種類很多,遠不象防火墻那樣顯得規整劃一。聲稱是IDS,其實并不是IDS的產品的產品還不少,有些還是知名的品牌。所以我們這里首先給IDS入侵檢測下一個定義,那就是通過可更新的入侵特征匹配,實時地報告所有的入侵事件,并可與相關的安全產品協同終止入侵的產品。可見,IDS的核心是可更新的入侵特征,實時性,所有的事件,和其他產品的互動等四個基本要素。
| ||||||||||||||||||||||||||||||||||||
?
我轉的文章來源于這里:http://zwwwxy.blogchina.com/
?
總結
以上是生活随笔為你收集整理的[转]防火墙、防病毒网关、IDS以及该类安全产品开发(文章汇总)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 反病毒网关
- 下一篇: java 集合练习题2