<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于嵌入式系統的網(wǎng)絡(luò )硬件防火墻的實(shí)現

基于嵌入式系統的網(wǎng)絡(luò )硬件防火墻的實(shí)現

作者: 時(shí)間:2007-03-28 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:隨著(zhù)的普及,安全問(wèn)題正在威脅著(zhù)每一個(gè)用戶(hù)。由于黑客攻擊和信息泄漏等安全問(wèn)題并不像病毒那樣直截了當的對進(jìn)行破壞,而是故意隱藏自己的行動(dòng),所以往往不能引起人們的重視。但是,一旦安全問(wèn)題發(fā)生,通常會(huì )帶來(lái)嚴重的后果。目前最常見(jiàn)的網(wǎng)絡(luò )安全防范工具是軟件,這種的缺點(diǎn)就是占用有限資源,隨著(zhù)的等級提高,該防火墻將嚴重阻礙通信的質(zhì)量。本文對網(wǎng)絡(luò )防火墻的具體分析,來(lái)討論通過(guò)來(lái)網(wǎng)絡(luò )防火墻的過(guò)程。
關(guān)鍵詞:網(wǎng)絡(luò )防火墻,系統,UCOSII,TCP/IP,USB2.0

1 引言

網(wǎng)絡(luò )防火墻是一種控制用戶(hù)計算機網(wǎng)絡(luò )訪(fǎng)問(wèn)的軟件或。通過(guò)對它的各種規則設置,使得合法的鏈路得以建立;而非法的連接將被禁止,同時(shí)通過(guò)各種手段屏蔽掉用戶(hù)的隱私信息,以保障用戶(hù)的對網(wǎng)絡(luò )訪(fǎng)問(wèn)的安全。目前一般個(gè)人電腦是用的軟件防火墻,隨著(zhù)微電子的快速發(fā)展,我們可以完全利用系統來(lái)硬件防火墻,從而提高系統的網(wǎng)絡(luò )訪(fǎng)問(wèn)性能。

2 網(wǎng)絡(luò )防火墻的硬件

2.1 網(wǎng)絡(luò )防火墻的硬件結構

在本系統中,主芯片采用菲利普的LPC2210,它是一款采用ARM7TDMI的核,工作頻率可高達60M。網(wǎng)絡(luò )芯片采用的Realtek公司的RTL8019AS,它是一款10M的網(wǎng)絡(luò )芯片。PC機的通信芯片采用Cypress的USB2.0的接口芯片CY7C68013,它可以完成PC機和硬件防火墻的高速通信。在本系統中還提供2M字節的FLASH和512K字節的RAM,它們分別由芯片SST39VF160和IS61LV25616AL來(lái)實(shí)現。系統的硬件結構如圖1:

2.2 主芯片LPC2210

LPC2210是一個(gè)支持實(shí)時(shí)仿真和嵌入式跟蹤的16/32位ARM7TDMI-S的微控制器對代碼規模有嚴格控制的應用可使用16位Thumb模式將代碼規模降低超過(guò)30%而性能的損失卻很小。

由于LPC2210的144腳封裝極低的功耗多個(gè)32位定時(shí)器8路10位ADCPWM輸出以及多達9個(gè)外部中斷使它們特別適用于工業(yè)控制醫療系統訪(fǎng)問(wèn)控制和POS機 。

通過(guò)配置總線(xiàn)LPC2210最多可提供76個(gè)GPIO由于內置了寬范圍的串行通信接口它們也非常適合于通信網(wǎng)關(guān)協(xié)議轉換器嵌入式軟modern以及其它各種類(lèi)型的應用。

2.3 網(wǎng)絡(luò )通信芯片RTL8019

RTL8019AS網(wǎng)絡(luò )芯片是REALTEK公司生產(chǎn)的,ISA接口的10M以太網(wǎng)通信芯片。 它采用全雙工方式來(lái)進(jìn)行接收以太網(wǎng)數據,非常容易和微處理器接口。該芯片集成了以太網(wǎng)的物理層以及以太網(wǎng)的收發(fā)器,數據封包形式完全符合IEEE802.3標準。

2.4 USB2.0接口芯片CY7C68013

CY7C68013是Cypress公司生產(chǎn)的一款USB2.0的接口芯片。它內部集成了8051的核,可以單獨對該芯片編程。由該芯片完成USB2.0接口,跟PC機的通信速率可以高達10Mbyte/s。我們利用該款芯片來(lái)實(shí)現一個(gè)數據FIFO,即對微處理器來(lái)講,它只要將數據寫(xiě)入該FIFO,然后該芯片就會(huì )將數據按照USB2.0的協(xié)議發(fā)送給PC機。

3網(wǎng)絡(luò )防火墻的軟件實(shí)現

在本系統中,軟件一共分為兩個(gè)部分:即嵌入式系統實(shí)現部分和PC機用戶(hù)界面實(shí)現部分。嵌入式系統實(shí)現部分主要完成對網(wǎng)絡(luò )封包的過(guò)濾以及完成與PC的人機界面的接口。用戶(hù)可以通過(guò)USB2.0接口對網(wǎng)絡(luò )硬件防火墻進(jìn)行設置,然后嵌入式系統根據用戶(hù)設置的安全規則來(lái)完成對網(wǎng)絡(luò )封包進(jìn)行過(guò)濾。

31底層軟件的實(shí)現

這部分軟件是網(wǎng)絡(luò )硬件防火墻實(shí)現的關(guān)鍵,它主要完成四個(gè)方面的工作,即對網(wǎng)絡(luò )封包的過(guò)濾,日志的記錄并發(fā)送,對用戶(hù)的報警以及跟PC機的接口。在本系統中我們采用實(shí)時(shí)操作系統UCOS,配合自己編寫(xiě)的TCP/IP協(xié)議棧來(lái)實(shí)現對各個(gè)網(wǎng)絡(luò )層次封包的過(guò)濾。

311 UC/OSIIARM7下的移植

UCOSII是一個(gè)完整、可移植、可固化及可剪裁的占先式實(shí)時(shí)多任務(wù)內核。它用ANSI C編寫(xiě),包含一小部分匯編代碼,使之可以供不同架構的微處理器使用。移植該實(shí)時(shí)操作系統是實(shí)現底層軟件的第一步。移植操作系統其實(shí)是一件不簡(jiǎn)單的事情,它必須要求開(kāi)發(fā)人員對目標硬件平臺有很深的了解;對UCOS的原理有相當的了解;對所使用的編譯器有較深入的了解。只有具備以上三點(diǎn),才能成功移植該實(shí)時(shí)操作系統。要移植UCOS,只要編寫(xiě)三個(gè)文件即可,它們分別是:OS_CPU.H,OS_CPU_C.C,OS_CPU_A.ASM。下面就簡(jiǎn)單介紹該移植的實(shí)現過(guò)程。

第一個(gè)是編寫(xiě)OS_CPU.H。在該文件中主要完成以下幾個(gè)方面的工作。首先是幾個(gè)數據類(lèi)型的定義,如INT8U、INT16U、INT16S等,之所以這樣做是因為ANSI C中并沒(méi)有明確定義short、int等數據類(lèi)型的實(shí)際長(cháng)度,它與處理器的類(lèi)型有關(guān),隱含著(zhù)不可移植性。代之以移植性強的INT8U、INT16U等數據類(lèi)型,即直觀(guān)又可移植。其次就是完成兩個(gè)中斷處理宏的定義,一個(gè)是關(guān)中斷宏OS_ENTER_CRITICAL( ),另一個(gè)就是開(kāi)中斷宏OS_EXIT_CRITICAL( )??紤]到不是所有版本的C語(yǔ)言都支持C語(yǔ)言級的開(kāi)關(guān)中斷,所以編寫(xiě)此宏來(lái)實(shí)現C語(yǔ)言級的開(kāi)關(guān)中斷。最后就是定義棧生長(cháng)方向和棧的寬度,它們分別用變量OS_STK_GROWTH和OS_STK。

第二個(gè)是編寫(xiě)OS_CPU_C.C。在該文件中主要完成函數OSTaskStkInit( )的編寫(xiě),該函數主要完成任務(wù)堆棧的的初始化工作,如初始化各個(gè)寄存器的狀態(tài),以及用戶(hù)添加的一些任務(wù)變量等。

第三個(gè)是編寫(xiě)OS_CPU_A.ASM。該文件的是移植的關(guān)鍵所在,在本文件中必須完成四個(gè)函數的編寫(xiě)工作,它們分別為OSIntCtxSw( ),OSCtxSw( ), OSStartHighRdy( )和OSTickISR( )。其中前兩個(gè)函數是重中之重,它們必須用匯編語(yǔ)言編寫(xiě),主要完成任務(wù)環(huán)境的切換工作。

在A(yíng)RM7硬件平臺下移植UCOSII要注意幾個(gè)問(wèn)題,首先是在移植系統函數或者系統宏時(shí)要盡量的調用軟件中斷,這樣有助于簡(jiǎn)化移植工作;其次在初始化任務(wù)堆棧時(shí),可以添加任務(wù)變量OSEnterSum這個(gè)變量來(lái)監視中斷開(kāi)關(guān)次數,這是關(guān)于移植的一個(gè)技巧;最后要注意為了方便編寫(xiě)中斷服務(wù)程序,在移植時(shí)還要提供相應的匯編宏來(lái)簡(jiǎn)化用戶(hù)層代碼的編寫(xiě)。

312 TCP/IP協(xié)議棧在UCOSII下的實(shí)現

TCP/IP協(xié)議分為四層,分別為應用層、傳輸層、網(wǎng)絡(luò )層,物理層。本系統中物理層主要包括8019的驅動(dòng)程序,網(wǎng)絡(luò )層包括IP協(xié)議和ARP協(xié)議,傳輸層主要包括TCP協(xié)議和UDP協(xié)議,應用層主要包括FTP、HTTP、SNMP和一些用戶(hù)應用程序。由于該協(xié)議實(shí)現很復雜,這也是本系統實(shí)現的難點(diǎn),下面給出該協(xié)議棧實(shí)現的函數框圖:

圖3

箭頭表示函數的調用關(guān)系,該協(xié)議棧是一個(gè)較完整的TCP/IP協(xié)議棧,它提供標準的SOCKET API函數,非常方便用戶(hù)來(lái)實(shí)現INTERNET通信。并集成了簡(jiǎn)單的路由協(xié)議,可以跨越網(wǎng)關(guān)收發(fā)數據。TCP/TP協(xié)議棧的實(shí)現都是通過(guò)調用圖2框圖來(lái)實(shí)現的。

313 各協(xié)議層下網(wǎng)絡(luò )封包過(guò)濾的實(shí)現

實(shí)現了TCP/IP協(xié)議,在該基礎上實(shí)現網(wǎng)絡(luò )封包的過(guò)濾只是個(gè)原理的實(shí)現問(wèn)題。在實(shí)現網(wǎng)絡(luò )封包過(guò)濾時(shí),一般不會(huì )直接在協(xié)議里面進(jìn)行數據包的過(guò)濾,而是在TCP/IP協(xié)議棧的各個(gè)層次下嵌入用戶(hù)過(guò)濾層,從而實(shí)現對改層數據包的過(guò)濾。比如要將PING程序的回顯屏蔽掉,只要在傳輸層之上嵌入用戶(hù)過(guò)濾層,該用戶(hù)層作用是,當傳輸層向用戶(hù)層提交接收到的以太網(wǎng)數據時(shí),該用戶(hù)層必須對所有的IP數據包進(jìn)行檢查。若檢查到某個(gè)IP數據包含有PING請求時(shí),該用戶(hù)層就會(huì )將該數據包屏蔽掉,即它不會(huì )將該數據包提交到網(wǎng)絡(luò )層的。若IP數據包正常時(shí),它就會(huì )將數據包直接提交到網(wǎng)絡(luò )層。這樣,添加了該層協(xié)議之后,就可以對傳輸層的協(xié)議包進(jìn)行過(guò)濾。同樣的道理,可以在各個(gè)協(xié)議層下添加用戶(hù)過(guò)濾層來(lái)實(shí)現各種協(xié)議數據包的過(guò)濾。具體的實(shí)現過(guò)程見(jiàn)圖4:


314 USB2.0接口模塊的實(shí)現

該模塊采用CY7C68013,該芯片本身提供高速FIFO通道來(lái)實(shí)現通信數據到USB協(xié)議的轉換,只要在程序初始化時(shí),將該芯片置成SLAVE FIFO模式,那該芯片就會(huì )扮演一個(gè)協(xié)議轉換器的角色。它的工作原理見(jiàn)圖4。

由上圖可以看出,LPC2210只要周期的查詢(xún)標志位,來(lái)判斷FIFO是滿(mǎn)還是空,如果接收FIFO有數據就立刻將數據讀進(jìn)來(lái)進(jìn)行處理;若發(fā)送FIFO滿(mǎn),這時(shí)就不能將數據發(fā)送到FIFO中。CY7C68013的初始化程序片段如下:

IFCONFIG = 0xCB; //設置68013工作在SLAVE FIFO模式

PINFLAGSAB = 0x98; //將FLAGA,FLAGB分別設置成FIFO滿(mǎn)和空標志

FIFORESET = 0x02; //復位各個(gè)FIFO緩沖

FIFORESET = 0x04;

FIFORESET = 0x06;

FIFORESET = 0x08;

EP2FIFOCFG = 0x00; //將FIFO設置成自動(dòng)輸出,并是傳輸數據寬度為16位

只要在CY7C68013中添加以上初始化程序,就可以將該芯片變成一個(gè)USB協(xié)議轉換器,其傳輸速率可達10Mbyte/S。

32 PC機人機界面的實(shí)現

該部分軟件可以稱(chēng)為上位機軟件,主要是在WINDOWS環(huán)境下實(shí)現的用戶(hù)界面。該用戶(hù)界面一共分為四個(gè)部分:封包監視、日志查詢(xún)、控管規則以及系統設置。這四個(gè)部分都是通過(guò)USB2.0接口與硬件防火墻進(jìn)行通信,用戶(hù)通過(guò)它們就可以很方便的實(shí)現對具體網(wǎng)絡(luò )封包的過(guò)濾,對日志進(jìn)行查詢(xún)以及對網(wǎng)絡(luò )控管規則的設置。

封包的監視:該模塊就是指硬件防火墻根據用戶(hù)設置的控制規則對網(wǎng)絡(luò )封包進(jìn)行過(guò)濾,當有網(wǎng)絡(luò )封包被攔截之后,硬件防火墻會(huì )通過(guò)USB接口模塊將攔截信息傳給該模塊。該模塊接收到攔截信息后,就會(huì )在PC機上以一定的形式顯示出來(lái)。

日志管理:該模塊是用來(lái)設置查詢(xún)條件并顯示查詢(xún)結果。該模塊是非常實(shí)用的,用戶(hù)可以從某個(gè)日志文件中查找符合條件的記錄并顯示,這極大的方便了用戶(hù)對網(wǎng)絡(luò )封包數據的分析。

控管規則:該模塊是人機界面的最重要部分,它用來(lái)設置和顯示應用程序以及網(wǎng)絡(luò )數據的控管規則,這個(gè)模塊需要提供對控管規則進(jìn)行增加、修改和刪除的功能按鈕。比如,用戶(hù)希望對某個(gè)IP地址或者IP范圍進(jìn)行屏蔽,就可以通過(guò)添加控制規則來(lái)實(shí)現該目的。

系統設置:該模塊其實(shí)是一個(gè)輔助模塊,由它來(lái)設置系統的配置參數。這些參數分為公共設置和報警設置,其中公共設置包括日志設置,是否自動(dòng)啟動(dòng)以及是否顯示歡迎界面。報警設置包括攔截時(shí)是否用聲音報警和是否閃爍圖標報警等。

4結語(yǔ)

我們設計的針對個(gè)人PC用戶(hù)的硬件防火墻,具有成本低,性能優(yōu)越的優(yōu)點(diǎn),它可以極大的節約系統資源,為個(gè)人用戶(hù)提供高效可靠的網(wǎng)絡(luò )環(huán)境。隨著(zhù)網(wǎng)絡(luò )的普及,個(gè)人網(wǎng)絡(luò )硬件防火墻將會(huì )有很大的發(fā)展空間,它的出現將極大的保障用戶(hù)的對網(wǎng)絡(luò )訪(fǎng)問(wèn)的安全。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

tcp/ip相關(guān)文章:tcp/ip是什么


pos機相關(guān)文章:pos機原理




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>