基于S3C2440的嵌入式IPv6防火墻設(shè)計(jì)(一)
1 引言
在眾多的網(wǎng)絡(luò)安全設(shè)施中,防火墻是行之有效的重要網(wǎng)絡(luò)安全設(shè)備,通過對網(wǎng)絡(luò)通信進(jìn)行篩選屏蔽以防未經(jīng)授權(quán)的訪問進(jìn)出計(jì)算機(jī)網(wǎng)絡(luò)。防火墻是位于可信網(wǎng)絡(luò)和不可信網(wǎng)絡(luò)之間的一道安全屏障,其最核心的任務(wù)就是管理和控制進(jìn)出網(wǎng)絡(luò)的通信量,它可以截獲中途傳輸?shù)臄?shù)據(jù)包并進(jìn)行處理,然后與事先定義好的安全策略規(guī)則相比較,并最終決定轉(zhuǎn)發(fā)或丟棄該數(shù)據(jù)包。傳統(tǒng)的防火墻通常位于一段網(wǎng)絡(luò)的邊界,它可以很好的過濾外界用戶對內(nèi)部網(wǎng)絡(luò)的訪問,但對內(nèi)部網(wǎng)絡(luò)的攻擊卻無能為力。針對此問題近年來關(guān)于新型防火墻的研究有很多,如分布式防火墻系統(tǒng),嵌入式防火墻系統(tǒng)等。這些系統(tǒng)的目的是將防火墻的邊界延伸,使其能夠遍布網(wǎng)絡(luò)的每一個(gè)終端設(shè)備,構(gòu)建全方位的安全防護(hù)網(wǎng)絡(luò)。
現(xiàn)有防火墻系統(tǒng)大多是針對于IPv4開發(fā)的,由于IPv4地址空間不足,且安全性較差,現(xiàn)有網(wǎng)絡(luò)升級到IPv6是大勢所趨。IPv6 作為下一代網(wǎng)絡(luò)的基礎(chǔ)以其海量的地址空間和較強(qiáng)的安全特性得到廣泛的認(rèn)可,因此研究支持IPv6協(xié)議的防火墻是很有必要的。
以Intel Xscale IXP425 為核心處理器設(shè)計(jì)的嵌入式IPv6 防火墻,較好的實(shí)現(xiàn)了對網(wǎng)絡(luò)中的數(shù)據(jù)包進(jìn)行動(dòng)態(tài)過濾。但其成本較高,且IXP425 強(qiáng)勁的網(wǎng)絡(luò)處理性能在網(wǎng)絡(luò)終端的應(yīng)用中無法得以完全發(fā)揮。
基于U盤的嵌入式防火墻使用方便,設(shè)計(jì)新穎,但其需要依附于x86 電腦硬件平臺(tái),且U盤的可靠性較差,不適于長期使用。
通用ARM 處理器有較高的性價(jià)比和較多的軟件支持,已廣泛應(yīng)用于生產(chǎn)生活的各個(gè)領(lǐng)域。本文通過對IPv6協(xié)議、IPv6安全機(jī)制和防火墻技術(shù)等方面的分析和研究,結(jié)合現(xiàn)有防火墻的特點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于S3C2440 的嵌入式IPv6 防火墻系統(tǒng)。下面從硬件設(shè)計(jì)、軟件設(shè)計(jì)和核心模塊設(shè)計(jì)幾個(gè)方面介紹該基于S3C2440的嵌入式IPv6防火墻。
2 嵌入式IPv6防火墻的硬件設(shè)計(jì)
嵌入式IPv6防火墻的硬件設(shè)計(jì)如圖1所示,其主控芯片采用三星公司的32 位嵌入式處理器S3C2440.該處理器以ARM920T RISC 為核心,標(biāo)準(zhǔn)工作頻率為400MHZ(最高工作頻率:533MHZ),運(yùn)算能力為450MIPS,有強(qiáng)勁的處理能力。
圖1 嵌入式IPv6防火墻硬件框圖
S3C2440處理器內(nèi)部結(jié)構(gòu)復(fù)雜,功能強(qiáng)大,片上集成了很多硬件資源。如:外部存儲(chǔ)控制器,USB 接口,UART接口,內(nèi)部定時(shí)器,130 個(gè)通用I/O接口,24 通道外部中斷源等。如此豐富的接口資源,可以很方便實(shí)現(xiàn)硬件電路的擴(kuò)展。此外S3C2440 支持ARM920T 強(qiáng)大的指令集系統(tǒng),具有獨(dú)立的內(nèi)存管理單元(MMU),支持NAND Flash啟動(dòng)引導(dǎo),可以方便的實(shí)現(xiàn)Bootloader和嵌入式操作系統(tǒng)的移植。
系統(tǒng)的存儲(chǔ)單元主要包括SDRAM 存儲(chǔ)器和Flash存儲(chǔ)器。SDRAM為系統(tǒng)程序的運(yùn)行提供內(nèi)存空間,本系統(tǒng)采用兩片HY57V561620FTP-H(32M)并聯(lián),容量可達(dá)64MB.Flash用來存儲(chǔ)程序,F(xiàn)lash分為NOR型和NAND型2種。NOR型Flash工藝復(fù)雜,成本較高,其優(yōu)點(diǎn)是片內(nèi)可執(zhí)行應(yīng)用程序,多用于存儲(chǔ)系統(tǒng)的Bootloader 引導(dǎo)程序。NAND 型Flash 具有極高的存儲(chǔ)密度和較快的寫入和擦除速度且成本較低,適用于存儲(chǔ)大容量數(shù)據(jù)和文件??紤]到S3C2440支持NAND Flash 啟動(dòng)引導(dǎo),故本系統(tǒng)選用K9F1208U0M-YCB0(64MB)的NAND型Flash作為系統(tǒng)的Flash存儲(chǔ)器。
系統(tǒng)的以太網(wǎng)接口單元采用2 顆10M/100M 自適應(yīng)以太網(wǎng)控制器DM9000A.DM9000A 芯片是DEVICOM 公司研發(fā)的一款低功耗,高度集成,成本較低的單芯片快速以太網(wǎng)芯片,在嵌入式領(lǐng)域中使用非常廣泛。它集成了物理層接口(PHY)、以太網(wǎng)媒體介質(zhì)訪問控制器(MAC)和外部處理器總線接口等。3.3V的工作電壓,降低了系統(tǒng)的功耗。DM9000A 的高度集成簡化了系統(tǒng)以太網(wǎng)電路的硬件設(shè)計(jì),特別適合作為嵌入式IPv6防火墻的網(wǎng)絡(luò)接口。
3 嵌入式IPv6防火墻的軟件設(shè)計(jì)
嵌入式IPv6 防火墻系統(tǒng)的軟件編寫采用了模塊化程序設(shè)計(jì)的方法。模塊化編程有利于程序設(shè)計(jì)任務(wù)的劃分,使程序易于編寫和調(diào)試,便于檢驗(yàn)和維護(hù)。
本系統(tǒng)將啟動(dòng)代碼(Bootloader),Linux 操作系統(tǒng)(網(wǎng)卡驅(qū)動(dòng)、協(xié)議棧),防火墻模塊(智能包過濾,狀態(tài)跟蹤等)和WEB管理模塊(Boa服務(wù)器)都編寫成獨(dú)立模塊。
系統(tǒng)軟件層次結(jié)構(gòu)如圖2所示。
圖2 嵌入式IPv6防火墻軟件層次結(jié)構(gòu)圖。
第一層:啟動(dòng)代碼(Bootloader)。它是芯片復(fù)位后進(jìn)入操作系統(tǒng)之前執(zhí)行的一段代碼,主要是為操作系統(tǒng)的啟動(dòng)提供基本的運(yùn)行環(huán)境,如初始化CPU、初始化存儲(chǔ)器系統(tǒng)等。本系統(tǒng)選用U-Boot 作為系統(tǒng)的Bootloader.
第二層:Linux 操作系統(tǒng),屏蔽了對底層硬件的具體操作,為上層應(yīng)用提供了豐富的支持,包括底層設(shè)備驅(qū)動(dòng),網(wǎng)卡驅(qū)動(dòng)和網(wǎng)絡(luò)協(xié)議棧等。在Linux操作系統(tǒng)下,開發(fā)者只需關(guān)注于應(yīng)用軟件編程,大大節(jié)省了系統(tǒng)的開發(fā)時(shí)間。
第三層:防火墻模塊(智能包過濾,狀態(tài)跟蹤等),該模塊是嵌入式防火墻系統(tǒng)的核心,其包括動(dòng)態(tài)NAT 模塊:負(fù)責(zé)對進(jìn)出防火墻的數(shù)據(jù)包進(jìn)行地址翻譯;狀態(tài)跟蹤模塊:維護(hù)網(wǎng)絡(luò)的會(huì)話連接信息,協(xié)助智能包過濾模塊進(jìn)行連接狀態(tài)的跟蹤,是實(shí)現(xiàn)狀態(tài)檢測包過濾(動(dòng)態(tài)包過濾)的關(guān)鍵模塊;智能包過濾模塊:根據(jù)訪問控制表(ACL)對進(jìn)出網(wǎng)絡(luò)的數(shù)據(jù)包進(jìn)行過濾,并對過濾規(guī)則進(jìn)行統(tǒng)計(jì),記憶和決策,動(dòng)態(tài)優(yōu)化過濾規(guī)則優(yōu)先級列表,實(shí)現(xiàn)高速高效的包過濾處理功能。
第四層:WEB管理模塊,以CGI語言為基礎(chǔ),構(gòu)建Boa服務(wù)器平臺(tái)。通過該模塊用戶可以方便地查看防火墻日志,添加或修改過濾規(guī)則,調(diào)整過濾規(guī)則的優(yōu)先級,監(jiān)控防火墻網(wǎng)絡(luò)狀態(tài)等。