亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

中小企業開發硬件防火墻的主要步驟
2006-06-27   賽迪網社區

這里說的雖然是硬件防火墻,但幾乎所有的工作都是軟件工作。硬件防火墻的核心是軟件。

在開發前,首先要清楚知道自已要需要的是什么類型的防火墻。同為硬件防火墻,大致可以分為高端以千兆為代表的主火墻,中端的百兆企業防火墻,以及低端家庭 -小辦公室的防火墻(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,當然也是一個防火墻,的確也不是弄虛作假。只不過,在于各個廠商的選擇而已。

熱詞搜索:

上一篇:Linux服務器上的備份和恢復
下一篇:企業無線局域網是如何進行安全防護的?

分享到: 收藏