999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式Linux防火墻的設計與實現

2011-01-01 00:00:00饒明,杜忠輝,韓琦,李瓊
智能計算機與應用 2011年5期

摘要: 針對嵌入式Linux防火墻進行設計并加以實現及測試。首先,提出了基于ARM處理器的嵌入式Linux防火墻的體系架構,給出了Linux一種內核裁剪定制的方案;接著,針對Netfilter/Iptables在大數量規則集下性能低下的問題,提出了Iptables結合NF-hipac、Ipset使用的解決方案,并成功實現了移植;最后,針對實現的系統,給出了完整詳細的功能及性能測試結果。功能測試結果表明了系統設計的合理性和有效性,性能測試結果指出了影響系統性能的關鍵參數,為進一步優化系統提供了參考和依據。

關鍵詞:

中圖分類號: TP391;TN911.73文獻標識碼:A文章編號:2095-2163(2011)03-0035-05

Design and Implementation of the Embedded Linux Firewall

RAO Ming, DU Zhonghui, HAN Qi, LI Qiong

Abstract: In this paper, a project is designed and tested for embedded Linux firewall. Firstly, a system framework of embedded Linux firewall based on ARM processor is proposed and a scheme of Linux kernel reducing is designed. Secondly, considering the poor performance of Netfilter/Iptables in large number rules set, a method of Iptables combining with NF-hipac and Ipset is introduced, and it is transplanted successfully. Finally, with the accomplished system, the integrated and detailed function and performance tests are provided. The function experiments show the rationality and efficiency of the system design and the performance tests indicate the key parameters influencing the system performance, which provides the reference and basis for further optimizing the system.

Key words:

0引言

互聯網已經發展成為當今世界上最大的信息庫,但是Internet從建立開始就缺乏安全的總體構想和設計,所以互聯網的安全性就存在眾多缺陷和隱患,由此防火墻的概念應運而生。所謂防火墻指的是一個由軟件和硬件設備組合而成、在內部網和外部網之間、專用網與公共網之間的界面上構造的保護屏障,從而保護內部網免受非法用戶的侵入。但是,傳統意義上的防火墻存在網絡應用受到結構性限制、內部安全隱患、效率較低和故障率高等缺點,所以人們又提出了分布式防火墻的概念。分布式防火墻負責對網絡邊界、各子網和網絡內部各節點之間的安全防護。分布式防火墻的具體實現方式可以歸結為基于軟件和基于硬件兩種,一般將基于硬件實現的分布式防火墻稱為嵌入式防火墻[1]。嵌入式防火墻是一種基于嵌入式技術的新型防火墻,同時將安全策略延伸到了網絡末端,安全措施由硬件系統實施,從而有效地克服了傳統邊界防火墻的局限,并結合了硬件解決方案的強健性和集中管理式軟件解決方案的靈活性,從而創建了一種更為完善的安全防護架構。

1999年,Bellovin[2]提出了一種分布式的解決方案,將策略的執行分布到各端結點,同時保持集中式的策略管理。2000年,Loannids等人[3]按照Bellovin 1999年提出的觀點實現了一個分布式防火墻的原型系統。2001年,Payne和 Markham[4]實現了一種基于硬件的分布式防火墻,并指出基于硬件的分布式防火墻具有更高的可靠性。國內學者也先后實現了基于嵌入式Linux以及Netfilter/Iptables架構的防火墻系統[5,6],并對嵌入式防火墻中Linux內核裁剪進行了研究[7,8]。在商業產品方面,華為3Com公司也研發出PCI卡和PC卡形式的嵌入式防火墻,這類防火墻不受網絡拓撲控制,完全獨立于主機操作系統,強化整個網絡臺式機、服務器和筆記本,配合適當的安全策略,控制每個端點的網絡訪問,并能快速響應檢測到的攻擊。但是這些研究和產品大多都基于Iptables工具,當規則數量達到一定程度時,Iptables進行規則過濾的速度大大下降,從而嚴重影響防火墻的整體性能。

本文基于ARM9嵌入式平臺, 提出并實現了一種Iptables結合NF-hipac、Ipset的嵌入式防火墻方案,首先使用交叉編譯技術將運行于x86體系Linux上的Netfilter/Iptables防火墻系統移植到基于ARM體系處理器的平臺上,同時對Linux操作系統的內核進行裁剪。通過測試發現Iptables在某些條件下的性能局限,所以結合NF-hipac、Ipset實現三者優勢的互補,進一步提高防火墻的性能。

1基于Netfilter/Iptables的防火墻分析

1.1Netfilter架構與Iptables

本小節將對Linux下的Netfilter/Iptables防火墻體系做整體的分析以及介紹,并指出Iptables的不足及其改進方案。

Netfilter是Linux內核實現數據包過濾、網絡地址轉換(NAT)、數據包處理等的功能框架。之所以說Netfilter是一種架構,是因為Netfilter可以被多種協議族所用。利用Netfilter架構,各種協議都可以在Linux內核級實現自己的防火墻。Netfilter的設計為內核中其它模塊動態參與IP層中的數據包處理提供了途徑。

Netfilter在內核中建立了一個函數指針鏈表,稱為鉤子函數鏈表,加入到鏈表中的函數指針所指的函數稱為鉤子函數(Hook Function)。一個數據包按照如圖1所示的過程通過Netfilter系統,圖中的5個鉤子函數分別為:(1)NF_ IP_PRE_ROUTING;(2)NF_IP_LOCAL_IN;(3)NF_IP_FO-WARD;(4)NF_IP_POST_ROUTING;(5)NF_IP_LOCAL_OUT。

Iptables是基于Netfilter框架的數據報處理子系統[1],有很強的擴展性。內核模塊可以在原有基礎上注冊一個新的規則表(table),并要求數據報流經指定的規則表,可以選擇用于實現數據報過濾的filter表、網絡地址轉換的NAT表及數據報處理的mangle表。Linux2.6內核提供的這三種數據報處理功能都基于Netfilter的鉤子函數和Iptables;而且還是互相之間獨立的模塊,完美集成到由Netfilter提供的框架中。Iptables實現對規則的管理和訪問,ipt_entry,ipt_match,ipt_target,ipt_table等數據結構用于構造規則表, ipt_do_table函數用于遍歷規則表并處理規則表上的結構。

1.2Iptables的不足及衍生工具Ipset、NF-hipac

在利用Iptables向系統添加防火墻規則時,如果沒有特殊指定,Iptables會將新規則添加至規則鏈(線性表)的尾部;而當協議棧中有新數據包達到時,內核會調用ipt _do_table()逐條將規則與數據包的屬性相對比,如果匹配成功則轉入相應的處理行為。也就是說,幾乎所有未命中規則的數據包的匹配復雜度為O(n)(n為規則的數目),這樣在小規則集的情況下,性能削減不會很大,但是如果在龐大規則集的情況下,性能就會因規則條目的增長而大幅削減。

Ipset工具在這個方面做了很大的改善,最主要的是在結構和規則的查找上面做了很大的改善。Ipset的思想就是將相同處理規則的匹配條件放到一個集合中,一般采用hash方法。一個報文查詢規則的時候,只需要判斷IP地址是否在這個集合中就可以了;如果滿足對應的匹配條件,就執行相應的處理操作。由于將查找從線性表遍歷改為了hash查找,時間復雜度從O(n)降到了O(1)。根據提供的測試結果表明,當規則數目在300-1 500之間的時候,其對性能的影響基本是水平線。

NF-hipac是Netfilter項目中的一個子項目,NF-hipac提供了一個新穎包分類的架構,將規則集呈現樹狀分布以代替原有Iptables的線性分布,從而將時間復雜度從O(n)降到了O(logn)。但是相比于Ipset,NF-hipac具有更大的靈活性。當查找每一個包的時候,使用一個高級算法來減少內存占用。在一個有特別多的規則和高帶寬的網絡中,NF-hipac表現出色。NF-hipac的特點就是其語法完全兼容iptables -t filter選項,并且NF-hipac可以調用Iptables的匹配行為以及連接跟蹤機制,這些特點使NF-hipac可以完全取代Iptables的過濾子功能。

2嵌入式防火墻方案設計及實現

2.1基于Iptables-Ipset-NF-hipac的防火墻方案

Iptables的優勢在于具有足夠的靈活度,并且功能強大,面面俱到;劣勢是在數量巨大的規則集時性能低下。而Ipset雖具有很好的性能,將Iptables的時間復雜度從O(n)降到了O(1),但是卻缺乏靈活性,集合里所有的IP對應到同一個處理操作,在面對并非一次性更新的規則集合時,顯得用處不大。NF-hipac的靈活性和性能處于前二者之間,但是只能代替Iptables-t filter選項。因此,綜合三個工具的優勢,設計出一個更加優秀的防火墻方案:

(1)Ipset負責一次性大規模更新同一處理操作的IP集合;

(2)NF-hipac負責獨立零散的過濾規則的更新;

(3)Iptables用來進行其他子功能(數據包轉發、數據包地址偽裝等)操作。

這樣既保證了系統運行的高性能,又能覆蓋所需的全部功能。

本文設計的嵌入式Linux防火墻的整體體系架構如圖2所示。硬件層為ARM9的處理器,操作系統內核為經過移植的Linux(版本2.6.13)內核,并且支持NetFilter。用戶態則移植了三款防火墻工具,并且都是在Netfilter架構的基礎上進行開發的,包括Iptables、Ipset以及NF-hipac。

2.2開發平臺及編譯環境

本文設計的嵌入式Linux防火墻方案是在HIT-ESDK01平臺上實現的,HIT-ESDK01是哈工大自主研制的嵌入式實踐教學平臺。該平臺采用ATMEL公司AT91RM9200(ARM920T)嵌入式處理器,這是一款ARM920T內核的工業級產品,主頻180MHz,帶有MMU存儲器管理單元,內嵌10M/100M自適應以太網。開發板上還包括64MB SDRAM、 256MB/1GBNand Flash和16MB Nor Flash,板上集成4線電阻式觸摸屏接口、TFT液晶屏接口,最大支持16BPP模式800?觹600分辨率,板載RS232、RS485、RJ45、USB等接口以及CAN總線接口及多種存儲卡接口。實驗平臺的接口布局如圖3所示。

所謂交叉編譯就是在一個平臺上生成可以在另一個平臺上執行的代碼,本文使用基于gcc 3.4.1的工具鏈,在x86架構的Linux主機上使用ARM架構的編譯工具鏈對系統內核和工具進行編譯,生成可以在目標板上運行的內核,燒寫到Flash中,便可在嵌入式平臺上運行經過裁剪的系統和相關工具。交叉編譯內核的詳細步驟本文不再贅述,只是簡要介紹三個防火墻工具編譯與移植的關鍵環節。

Iptables是Linux內核的一部分,因此與交叉編譯內核一起考慮Iptables的編譯,需要注意的是,Iptables最好編譯為built-in模式,而不要選擇模塊模式,這主要是考慮到嵌入式系統單內核方便管理、使用及大規模的工業復制。NF-hipac是通過內核補丁的方式編譯的,下載到其源碼后為內核打補丁,然后與內核一起編譯。另外,還需要對源碼進行一定的修改,為編譯移植用戶層NF-hipac工具做準備,修改的文件包括Makefile、nf-hipac-core.c等。Ipset也是通過內核補丁的方式編譯的,操作方法類似。

3功能與性能測試

本文測試部分包括防火墻的功能測試和性能測試,使用到的測試工具Netperf。Netperf是一款網絡性能的測量工具,主要針對基于TCP或UDP的傳輸。Netperf根據應用的不同,可以進行不同模式的網絡性能測試,即批量數據傳輸(bulk data transfer)模式和請求/應答(request/reponse)模式。Netperf測試結果所反映的是一個系統能夠以多快的速度向另外一個系統發送數據,以及另外一個系統能夠以多快的速度接收數據。

本文測試用例包括兩種網絡拓撲,如圖4、圖5所示。測試網絡拓撲1主要模擬了從外網的客戶端訪問被防火墻保護的內網服務器(Web服務器、測試軟件netserver服務器等),外網IP用192.168.5.0/24模擬,內網IP用10.50.10.0/24模擬。由于嵌入式Linux防火墻本身也為一臺計算機,所以將其內部假設服務器,測試網絡拓撲2(下文簡稱拓撲2)如圖5所示,完成拓撲1所不能完成的一些性能上的測試,將測試結果進行進一步分析對比。

3.1功能驗證與測試

功能驗證與測試包括Iptables功能測試、NF-hipac功能測試和Ipset功能測試,在各種單項測試通過后,進行了ftp、telnet、NAT、針對SYNFlood攻擊的防御等應用場景測試,圖6、圖7是NAT測試的數據流示意圖和測試結果,表1給出了針對SYNFlood攻擊的防御的測試結果,測試結果表明了該防火墻功能的有效性。

3.2性能測試

本文對防火墻進行的性能測試包括:內核精簡前后性能對比測試、MTU值對性能影響測試、Iptables/NF-hipac/Ipset大規則集下的壓力測試以及網絡套接字緩沖區大小對系統性能的影響測試。

內核精簡前后性能對比測試主要是為了驗證本文所做內核裁剪的有效性,本文對精簡前后的內核做眾多性能方面的測試,對比了批量數據傳輸速率、請求/應答模式(即TCP_RR模式)交易率、連接/請求/應答模式(即TCP_CRR模式)交易率三方面給出測試結果,如圖8-圖10所示。

從測試結果可以得出,TCP_CRR模式下的交易率的數值變化較為明顯。由于TCP_CRR模式為每次交易建立一個新的TCP連接,對系統消耗最為嚴重,從圖10可以看出,未精簡的內核的交易率變得十分不穩定。但無論是三項測試數據當中的哪一項,內核精簡后對比精簡前均有不同程度的性能上的提升,證明對內核進行精簡可以對系統性能的提升起到作用。

MTU值(Maximum Transmission Unit最大傳輸單元)[1]是指一種通信協議的某一層上面所能通過的最大數據包大小(以字節為單位),在大流量的網絡當中,增大MTU的值可以很好地改善網絡性能。本文測試拓撲2,從批量數據傳輸速率、請求/應答模式交易率兩方面進行測試,結果如表2、表3所示,其中,嵌入式防火墻eth0接口連接至服務器的網絡接口,eth1接口連接至客戶端的網絡接口。

通過測試結果可以觀察到,在較大MTU值的情況下,無論是數據傳輸速率還是交易率均得到了提升,但是也取決于整個網絡中的瓶頸MTU值。

接下來進行了Iptables、NF-hipac、Ipset三個工具在大規則集下的壓力測試,測試結果如圖11、圖12所示。由測試結果可以看出,Iptables在300條規則之內的性能對比NF-hipac與Ipset并沒有明顯的劣勢,但是當規則的數量超過這一數值的時候,其性能表現就會大打折扣。而NF-hipac與Ipset的性能表現則幾乎與規則的數目無關,NF-hipac的表現要稍好于Ipset。

4結束語

本文在HIT-ESDK01嵌入式教學平臺之上設計并實現了嵌入式Linux防火墻系統。首先,根據嵌入式及防火墻的基本知識,設計了系統的總體結構,針對嵌入式系統的特點,給出了一種Linux內核的裁剪理由及方案,并針對該方案給出了測試結果,證明對其實施裁剪的必要性;其次,指出了Netfilter/Iptables架構在大數量規則集下性能低下的缺陷,提出了Iptables結合NF-hipac、Ipset使用的解決方案,并針對方案給出了詳細的移植方法及步驟;最后,對實現的系統進行了詳細的功能及性能測試。功能測試完成了整個系統各項功能的測試,證明了系統的可用性;性能測試主要給出了影響系統性能的參數,包括內核精簡程度、MTU值、套接口緩沖區大小、防火墻規則的數量等等,通過改變參數并加以測試,對得到的測試結果加以分析,給出優化系統的途徑。

參考文獻:

[ 1 ] PAYNE C,MARKHAM T. Architecture and Applications for a

Distributed Embedded Firewall[C]// Proceedings of the Comp-

uter Security Applications Conference,2001:329-336.

[ 2 ] BELLOVIN S M. Distributed Firewalls[J]. Journal of Login,19-

99:39-47.

[ 3 ] LOANNIDS S,SMITH J,KEROMYTIS A D,et al. Implementing

a distributed firewall[C]// Proceedings of the 7th ACM Conferen-

ce on Computer and Communications Security, Athens, Greece,

2000-11.

[ 4 ] PAYNE C,MARKHAM T. Architectures and applications for a

distributed embedded firewall[C]// Proceedings of the Computer

Security Applications Conference,2001:329-336.

[ 5 ] 劉正海. 基于嵌入式Linux防火墻的研究與實現[D]. 重慶:重慶

大學碩士學位論文,2007.

[ 6 ] 鄭培群. 嵌入式防火墻過濾規則的設計與算法優化[D]. 武漢:

武漢理工大學碩士學位論文,2010.

[ 7 ] 羅奕. 嵌入式Linux裁剪及其系統構建的研究與實現[D]. 長沙:

中南大學碩士學位論文,2005.

[ 8 ] 韓魯峰, 姚遠, 張其善. 一種基于Linux嵌入式系統的防火墻

的開發[J]. 微計算機應用,2005,26(4):407-410.

主站蜘蛛池模板: 亚洲va欧美ⅴa国产va影院| 欧美精品在线视频观看| 国产成人综合久久精品下载| 精品视频免费在线| 亚洲国产成人麻豆精品| 欧美激情视频一区| 99精品影院| 亚洲第一天堂无码专区| 精品国产美女福到在线直播| 亚洲午夜综合网| 波多野结衣在线一区二区| 在线视频亚洲欧美| 欧美综合激情| 亚洲一区二区三区中文字幕5566| 久久动漫精品| a色毛片免费视频| 亚洲日韩精品伊甸| 九色免费视频| 在线视频97| 色播五月婷婷| 久久精品人人做人人爽97| 久久99国产精品成人欧美| 久久亚洲中文字幕精品一区| 伊人色天堂| 久久久四虎成人永久免费网站| 伊人色综合久久天天| 国产导航在线| 国产成人免费观看在线视频| 亚洲中文字幕97久久精品少妇| 欧美色图第一页| 国模沟沟一区二区三区| 玖玖免费视频在线观看| 国产高颜值露脸在线观看| 国产精品尹人在线观看| 午夜毛片福利| 欧美性久久久久| 国产欧美成人不卡视频| 亚洲免费播放| 久久精品aⅴ无码中文字幕| 欧美无遮挡国产欧美另类| 在线精品亚洲国产| 亚洲色精品国产一区二区三区| 欧美激情福利| 国内精品视频在线| 高潮毛片无遮挡高清视频播放| 国产91视频观看| 国产一级精品毛片基地| 最新国产你懂的在线网址| 国产精品30p| 成人午夜网址| 国产成人8x视频一区二区| 五月综合色婷婷| 亚洲精品视频在线观看视频| 国产日韩欧美视频| 欧美日韩免费| 精品视频在线观看你懂的一区| 成人免费网站在线观看| 麻豆精品在线视频| 蜜桃视频一区| 91久久偷偷做嫩草影院精品| 亚洲国产欧美国产综合久久| 国产精品亚洲一区二区三区z| 精品国产香蕉在线播出| 无遮挡一级毛片呦女视频| 国产导航在线| 97se亚洲综合不卡| 九一九色国产| 久草视频精品| 国产激情无码一区二区三区免费| 亚洲国产综合自在线另类| 国产成人精品优优av| 国产99久久亚洲综合精品西瓜tv| 中文字幕乱妇无码AV在线| 国产精品手机在线播放| 凹凸国产熟女精品视频| 91精品人妻一区二区| 91网站国产| 亚洲国产成人在线| 亚洲大尺度在线| 国产精品香蕉在线| 欧美精品H在线播放| 欧美国产视频|