定制防火墻 應(yīng)該如何選擇硬件和系統(tǒng)
網(wǎng)絡(luò)設(shè)備最經(jīng)常用到的,也是最重要的一個(gè)安全設(shè)備就是防火墻了。作為一款I(lǐng)T設(shè)備,無非兩種選擇方式。一種是購買品牌防火墻成品,另一種是自己DIY防火墻。兩種方式各有自己的優(yōu)劣,購買品牌防火墻最大的問題莫過于是投入較多的資金,卻可以得到更多的后期維護(hù)。而自己 DIY防火墻的最大弊端就在于需要一個(gè)專業(yè)的人員來定制,還要投入更多的精力做后期的維護(hù)。
作為一個(gè)熱血IT青年,自己DIY一個(gè)防火墻設(shè)備,不僅僅能夠帶來投入的節(jié)省,最重要的是你可以在這個(gè)過程中,得到許多一個(gè)電話CALL來的售后服務(wù)那里,所學(xué)到的到東西要多得多。DIY一個(gè)防火墻設(shè)備,最最重要的是要認(rèn)清硬件架構(gòu)和軟件架構(gòu)的特點(diǎn),以及最適合于那種搭配。
基于通用CPU的X86架構(gòu)的安全網(wǎng)關(guān),一般采用Intel或AMD公司的芯片,X86在架構(gòu)系統(tǒng)時(shí)還需要北橋和南橋芯片,采用該種硬件架構(gòu),軟硬件配套資源比較多,便于快速推出產(chǎn)品,企業(yè)投資少,最初的防火墻大都是基于X86架構(gòu)。X86架構(gòu)采用通用CPU和PCI總線接口,具有很高的靈活性和可擴(kuò)展性,過去一直是防火墻開發(fā)的主要平臺(tái)。其產(chǎn)品功能主要由軟件實(shí)現(xiàn),可以根據(jù)用戶的實(shí)際需要而做相應(yīng)調(diào)整,增加或減少功能模塊,產(chǎn)品比較靈活,功能十分豐富。
但其性能發(fā)展卻受到體系結(jié)構(gòu)的制約,作為通用的計(jì)算平臺(tái),x86的結(jié)構(gòu)層次較多,不易優(yōu)化,且往往會(huì)受到PCI總線的帶寬限制。雖然PCI總線接口理論上能達(dá)到接近2Gbps的吞吐量,但是通用CPU的處理能力有限,盡管防火墻軟件部分可以盡可能地優(yōu)化,很難達(dá)到千兆速率。同時(shí)很多X86架構(gòu)的防火墻是基于定制的通用操作系統(tǒng),安全性很大程度上取決于通用操作系統(tǒng)自身的安全性,可能會(huì)存在安全漏洞。
從總線速度來看,基于32位PCI總線的X86平臺(tái),也就是我們所說的基于傳統(tǒng)X86架構(gòu)的防火墻,做為百兆防火墻的方案是沒有任何問題的。但X86平臺(tái)的防火墻方案,數(shù)據(jù)從網(wǎng)卡到CPU之間的傳輸機(jī)制是靠“中斷”來實(shí)現(xiàn)的,中斷機(jī)制導(dǎo)致在有大量數(shù)據(jù)包的需要處理的情況下(如:64 Bytes的小包,以下簡稱小包),X86平臺(tái)的防火墻吞吐速率不高,大概在30%左右,并且CPU占用會(huì)很高。這是所有基于X86平臺(tái)的防火墻所共同存在的問題。因此,基于32位PCI總線的X86平臺(tái)是不能做為千兆防火墻使用的問題。
X86平臺(tái)的防火墻其最大的缺點(diǎn)就是小包通速率低,只有30%-40%,造成這個(gè)問題的主要原因是因?yàn)閄86平臺(tái)的中斷機(jī)制以及X86平臺(tái)的防火墻所有數(shù)據(jù)都要經(jīng)過主CPU處理。早期的千兆防火墻僅僅是將百兆接口替換為千兆接口而已。這種基于X86體系結(jié)構(gòu)的千兆防火墻主體仍然是軟件,其性能受到很大制約,無法達(dá)到千兆的處理速度。因此,這些防火墻只是具有千兆接入能力的防火墻,而不是真正具有千兆處理能力的防火墻因此可以說是一種“換湯不換藥”的形式改變。
Intel提出了解決方案,可以把32位的PCI總線升級(jí)到PCI-E總線,即:PCI-Express,這樣,PCI-E 4X的總線的速度就可以達(dá)到 2000MB Bytes/S,即:16Gbits/S,并且PCI-E各個(gè)PCI設(shè)備之間互相獨(dú)立不共享總線帶寬,每個(gè)基于PCI-E的網(wǎng)口可以使用的帶寬為:2000MB Bytes/S,即:16Gbits/S,所以基于PCI-E 4X的X86從系統(tǒng)帶寬上來說,做為千兆防火墻是沒有任何問題的。但是,基于PCI-E的防火墻數(shù)據(jù)從網(wǎng)卡到CPU之間傳輸同樣使用“中斷”機(jī)制來傳輸數(shù)據(jù),所以小包(64 Bytes)的通過率仍然為:30-40%,基于x86的防火墻,其最高性能只能達(dá)到2Gbps!同時(shí)CPU和外圍芯片組發(fā)熱比較大,產(chǎn)品壽命和穩(wěn)定性難以保證。
如果你選擇的硬件是x86架構(gòu)的,我建議只有一個(gè)系統(tǒng)合適你,就是freebsd,要么自己定制防火墻,要么選擇m0llowakk或者pfsense!為什么不是linux?很簡單,當(dāng)遇到大量小包攻擊的時(shí)候(syn),freebsd的扛壓能力大大超過linux,最極端的時(shí)候可以開啟網(wǎng)卡polling模式,可以有效地降低cpu中斷負(fù)載,不至于你的cpu0 100%占用!而且,特別是pfsense選用了openbsd的pf防火墻,支持syn三次握手代理,地址池,自動(dòng)黑名單等等有用的功能,而且很小巧穩(wěn)定,性能只是比linux 差一點(diǎn),不過完全夠用!可以直接配置一臺(tái)不帶硬盤,只有cpu,內(nèi)存,內(nèi)存卡的小盒子系統(tǒng),省電,穩(wěn)定,完全!而且可以通過ipfw-classic實(shí)現(xiàn)和iptable layer-7一樣的應(yīng)用層過濾,反正大家都是山寨人家clearos公司的!還有商業(yè)的panbit,流控大師也是選用freebsd的,不過可惜啊,特征碼給加密了。#p#
相比之下,ASIC防火墻通過專門設(shè)計(jì)的ASIC芯片邏輯進(jìn)行硬件加速處理。ASIC通過把指令或計(jì)算邏輯固化到芯片中,獲得了很高的處理能力,因而明顯提升了防火墻的性能。新一代的高可編程ASIC采用了更靈活的設(shè)計(jì),能夠通過軟件改變應(yīng)用邏輯,具有更廣泛的適應(yīng)能力。但是,ASIC的缺點(diǎn)也同樣明顯,它的靈活性和擴(kuò)展性不夠,開發(fā)費(fèi)用高,開發(fā)周期太長,一般耗時(shí)接近2年。
雖然研發(fā)成本較高,靈活性受限制、無法支持太多的功能,但其性能具有先天的優(yōu)勢,非常適合應(yīng)用于模式簡單、對(duì)吞吐量和時(shí)延指標(biāo)要求較高的電信級(jí)大流量的處理。ASIC芯片集網(wǎng)絡(luò)包處理和內(nèi)容處理為一身,芯片首先完成流重組,然后直接在網(wǎng)絡(luò)層匹配規(guī)則,并執(zhí)行動(dòng)作處理安全事件,需要進(jìn)一步分析的才送CPU。網(wǎng)絡(luò)中90%以上的數(shù)據(jù)在ASIC芯片中直接完成處理。
基于ASIC架構(gòu)的防火墻從架構(gòu)上改進(jìn)了中斷機(jī)制,數(shù)據(jù)從網(wǎng)卡收到以后,不經(jīng)過主CPU處理,而是經(jīng)過集成在系統(tǒng)中的一些芯片直接處理,由這些芯片來完成傳統(tǒng)防火墻的功能,如:路由、NAT、防火墻規(guī)則匹配等。這樣數(shù)據(jù)不經(jīng)過主CPU處理,不使用中斷機(jī)制。但隨之而來的問題是,ASIC架構(gòu)的防火墻是芯片一級(jí)的,所有的防火墻動(dòng)作由芯片來處理。這些芯片的功能比較單一,要升級(jí)維護(hù)的開發(fā)周期比較長。
幾年前,以Intel為代表的國際芯片廠商推出了具有革命性意義的網(wǎng)絡(luò)處理器(NP),業(yè)界觀察家也曾十分看好并極力稱頌,NP將引發(fā)不可預(yù)期的網(wǎng)絡(luò)革命。然而,NP并沒有如觀察家所期待的那樣結(jié)出碩果,各NP廠商的NP業(yè)務(wù)基本都處于虧損狀態(tài)。 從2002年開始NP開始在網(wǎng)絡(luò)安全領(lǐng)域應(yīng)用,2003年IBM就把NP業(yè)務(wù)賣給了Hifn,2006年6月27日,Intel正式宣布把NP業(yè)務(wù)賣給Marvell。
網(wǎng)絡(luò)處理器比較典型的產(chǎn)品有Marvell(Intel)公司的IXP1200系列、IXP2400系列和IXP2800系列和Freescale(motorola)公司的C-5、Cisco公司的Toaster 2、Hifn(IBM)的NP3G4S等。
NP架構(gòu)實(shí)現(xiàn)的原理和ASIC類似,但升級(jí)、維護(hù)遠(yuǎn)遠(yuǎn)好于ASIC 架構(gòu)。NP架構(gòu)在的每一個(gè)網(wǎng)口上都有一個(gè)網(wǎng)絡(luò)處理器,即:NPE,用來處理來自網(wǎng)口的數(shù)據(jù)。每個(gè)網(wǎng)絡(luò)處理器上所運(yùn)行的程序使用微碼編程,其軟件實(shí)現(xiàn)的難度比較大,開發(fā)周期比ASIC短,但比X86長。
最早提出網(wǎng)絡(luò)處理器開發(fā)的時(shí)間是1997年,正式的商用芯片于2000年面世。Intel、IBM、Motorola、MMC Networks、Ezchip、Lucent、Vitesse(Sitera)等廠商參與了網(wǎng)絡(luò)處理器的早期研究。這一階段僅僅是研究階段,而真正將網(wǎng)絡(luò)處理器投入商業(yè)應(yīng)用的廠商是中國的華為,2000年華為開始開發(fā)基于網(wǎng)絡(luò)處理器的核心路由器,并率先推出了基于NP的NE80/NE40系列核心路由器產(chǎn)品。
當(dāng)你的防火墻要對(duì)付高流量,小包攻擊ddos。請(qǐng)選用嵌入式,arm,NP,mips構(gòu)架防火墻硬件,操作系統(tǒng)就直接選擇linux正營吧,其代表就是起源于ciso/syslink系統(tǒng)的opoenwrt或者dd-wrt,tomato(國人的支持多wan口疊加其實(shí)就是策略路由),為什么不選擇freebsd-因?yàn)閒reebsd不支持硬件,為什么不選擇netbsd/openbsd,因?yàn)樾阅艿拖?,很多無線,新硬件,網(wǎng)卡不支持!而且防火墻不開放什么服務(wù)器軟件,不需要太高的防滲透入侵,強(qiáng)制訪問安全等等。這其中我建議選擇openwrt吧,免費(fèi)、可定制非常高,就和一臺(tái)linux機(jī)器一樣的配置!dd-wrt收費(fèi)!tomato也是根據(jù)openwrt來的,作者配置好了策略路由支持雙、四wan!至于route,ros也是國人改的linux系統(tǒng),收費(fèi),功能繁瑣,網(wǎng)吧可以考慮下!#p#
功能選擇
現(xiàn)在很多防火墻默認(rèn)都很強(qiáng)大,vpn,web界面控制,7層過濾,ids/ips,甚至還把防火墻放到交換機(jī)中,路由器中 組成了什么7層交換機(jī)啊 ,四層交換機(jī),7層四層路由器等等,當(dāng)然他們也不是簡單的利用bsd/linux裝交換機(jī)軟件,路由軟件,或者防火墻,是進(jìn)行了二次開發(fā)的,可以有效地加速交換,路由性能,但是如果我們是Diy的防火墻需要那么多功能嗎?
一個(gè)原則,功能影響性能,也同樣影響安全!反過來也是功能影響安全,影響性能!其實(shí)我們要根據(jù)自己的情況來開啟功能:
1,關(guān)閉web控制,既然是定制,肯定都是高手了,全屏幕console操作,手寫防火墻,路由規(guī)則,要哪個(gè)web干嘛!影響性能安全!
2,關(guān)閉遠(yuǎn)程登錄訪問入口,直接本地登錄防火墻diy機(jī)器,進(jìn)行控制,什么ssh,telent就算了吧保持防火墻就干三件事,就是轉(zhuǎn)發(fā)過濾流控?。【陀没镜南到y(tǒng)定制內(nèi)核,配置策略路由,防火墻轉(zhuǎn)發(fā)過濾,或者使用layer7過濾(不過要自己定制7層過濾特征碼,免費(fèi)的都很過時(shí)了,使用分析包軟件分析,書寫正則表達(dá)式,不難學(xué),需要耐性和觀察力呵呵!
3,至于vpn,ids,ips還是通過過防火墻轉(zhuǎn)發(fā)到獨(dú)立的電腦上進(jìn)行分析,處理吧,防火墻本身就是拿老硬件定制的,不是什么專業(yè)的硬件防火墻,不要運(yùn)行那么多消耗資源大的程序,
4,當(dāng)所有的配置都設(shè)置好了,就可以學(xué)習(xí)m0n0wall干脆吧控制臺(tái)也禁用了吧,誰也別想登陸了!
硬件的購買
1,選擇老的硬件,淘汰的電腦,最好找個(gè)U盤吧硬盤去掉,最容易出錯(cuò)的東東!
2,到專門的定制防火墻設(shè)備的地方,定制盒子機(jī)箱,電源的等等,主板最好選擇嵌入式開發(fā)板,或者nimi型x86板子
3,想支持無線,3G只要購買無線網(wǎng)卡,3G網(wǎng)卡插上就去了只要系統(tǒng)支持10跟天線都可以呵呵
4, diy防火墻的成本控制(購買新硬件)看你要達(dá)到那款品牌防火墻性能,如果是20萬的防火墻性能,你最好準(zhǔn)備5000左右吧,一般是1/10-1/100,要看品牌黑不黑了
好了,就說怎么多,就一句話概括,選擇防火墻一看構(gòu)架(影響OS),二看小包轉(zhuǎn)發(fā)帶寬,三看價(jià)格,希望能給大家一點(diǎn)啟示。