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