亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Iptables規(guī)則集的優(yōu)化設計

        2015-04-29 00:55:53林燕
        計算機時代 2015年2期
        關鍵詞:防火墻優(yōu)化

        林燕

        摘 要: 分析了Iptables工作原理,介紹了Iptables規(guī)則集,提出了一種有效的規(guī)則集優(yōu)化算法,并在Linux下實現(xiàn)。運用該優(yōu)化算法能夠有效剔除規(guī)則集中重復的規(guī)則,直接提升系統(tǒng)過濾效率,減少過濾數(shù)據(jù)包所需的時間,從而提高防火墻系統(tǒng)的網(wǎng)絡吞吐量。

        關鍵詞: Linux; 防火墻; Iptables; 規(guī)則集; 優(yōu)化

        中圖分類號:TP391.9 文獻標志碼:A 文章編號:1006-8228(2015)02-47-03

        Optimization design of Iptables rules set

        Lin Yan

        (Hangzhou Vocational & Technical College, Hangzhou, Zhejiang 310008, China)

        Abstract: The working principles of Iptables are analyzed and its rule set is introduced. An effective optimization algorithm is put forward and implemented in Linux. The optimization algorithm can effectively eliminate rules focused duplicate rules, directly improve the system filtration efficiency and reduce the required data packet filtering time, so as to improve the throughput of network firewall system.

        Key words: Linux; firewall; Iptables; rules set; optimization

        0 引言

        防火墻是指隔離本地網(wǎng)絡與外界網(wǎng)絡之間的一道防御系統(tǒng),它在網(wǎng)絡之間執(zhí)行訪問控制策略[1]。防火墻是非常簡單的過濾器,或者是精心配置的網(wǎng)關,檢測并過濾所有內(nèi)部網(wǎng)和外部網(wǎng)之間的信息交換,防火墻保護著內(nèi)部網(wǎng)絡敏感的數(shù)據(jù)不被偷竊和破壞,并記錄內(nèi)外通訊的有關狀態(tài)信息日志。防火墻軟件通常是運行在計算機上的一個特別的服務軟件,它可以識別并屏蔽非法的請求。

        在計算機網(wǎng)絡日益普及的今天,不但要求防治病毒,還要提高系統(tǒng)抵抗外來非法入侵的能力,更要提高對遠程數(shù)據(jù)傳輸?shù)谋C苄?,避免在傳輸途中遭遇非法竊取。此時,對防火墻性能進行優(yōu)化顯得尤為重要。

        netfilter/Iptables (其中包括netfilter和Iptables兩個組件)組成了Linux平臺下的包過濾防火墻,它與大多數(shù)的Linux自帶軟件一樣,這個防火墻是免費提供的,它可以代替昂貴的企業(yè)級防火墻來解決實際問題與實際方案,完成封包過濾,封包重定向和網(wǎng)絡地址轉換等功能[2-3]。

        Iptables并不是最早出現(xiàn)的防火墻軟件,它的前身是ipchains。隨著發(fā)展到Linux 2.4.X內(nèi)核以后,ipchains逐漸被功能更加強大的Iptables所代替。Iptables可以檢查數(shù)據(jù)包的源和目的IP地址,源和目的端口,流入數(shù)據(jù)包的順序號,TCP先后順序的信息,以及包頭標記(SYN、ACK、FIN、RST等)的狀態(tài)。Iptables會跟蹤整個會話過程,從而提高安全性和包過濾的效率。

        1 Iptables工作原理

        數(shù)據(jù)包從外網(wǎng)傳送到防火墻后,防火墻在IP層向TCP層傳送之前,將數(shù)據(jù)包轉發(fā)給檢查模塊進行處理。其過程如下。

        ⑴ 首先與第一個過濾規(guī)則比較。

        ⑵ 如果與第一個模塊相同,則對它進行審核,判斷是否要轉發(fā)該數(shù)據(jù)包,這時審核的結果是轉發(fā)數(shù)據(jù)包,則將數(shù)據(jù)包發(fā)送到TCP層進行處理,否則就將它丟棄。

        ⑶ 如果與第一個過濾規(guī)則不同,則接著與第二個規(guī)則相比較,如果相同則對它進行審核,過程與上一步相同。

        ⑷ 如果與第二個過濾規(guī)則不同,則繼續(xù)與下一個過濾規(guī)則比較,直到與所有的過濾規(guī)則比較完成。要是不滿足所有過濾規(guī)則,就將數(shù)據(jù)丟棄。

        包檢查器并不檢查數(shù)據(jù)包的所有內(nèi)容,它通常只檢查下列幾項:

        2 Iptables規(guī)則集

        規(guī)則就是決定如何處理一個包的語句。如果一個包符合所有的條件(match),我們就運行target指令。書寫規(guī)則的語法格式是:

        Iptables [-t table] command [match] [target]

        一條Iptables規(guī)則包含如下四個基本元素。

        2.1 表(table)

        [-t table]選項允許使用標準表之外的任何表。表是包含僅處理特定類型信息包的規(guī)則和鏈的信息包過濾表。有三種可用的表選項:filter、nat和mangle。該選項不是必須的,如果未指定,則filter用作默認表。Filter表用于一般的信息包過濾,包含INPUT、OUTPUT和FORWARD鏈。Nat表用于要轉發(fā)的信息包,它包含PREROUTING、OUTPUT和POSTROUTING鏈。如果信息包及其頭內(nèi)進行了任何更改,則使用mangle表。該表包含一些規(guī)則來標記用于高級路由的信息包以及PREROUTING和OUTPUT鏈。

        2.2 命令(command)

        Command部分是Iptables命令的最重要部分,它告訴Iptables命令要做什么,例如,插入規(guī)則、將規(guī)則添加到鏈的末尾或刪除規(guī)則[4]。

        命令選項用于指明要進行的特定操作:

        -A 增加一個規(guī)則到鏈中;

        -D 在鏈中的指定位置刪除一個規(guī)則;

        -R 在鏈中的指定位置替換一個規(guī)則;

        -I 在鏈中的指定位置插入一個新的規(guī)則;

        -N 產(chǎn)生一個新的鏈;

        -X 刪除一個空的鏈;

        -P 設置一個鏈的默認策略;

        -L 列出一個鏈的規(guī)則;

        -F 清空一個鏈的所有規(guī)則;

        -Z 清零一個鏈里所有規(guī)則的包和字節(jié)計數(shù)器;

        2.3 匹配(match)

        Iptables命令的可選match部分指定信息包與規(guī)則匹配所應具有的特征(如源和目的地地址、協(xié)議等)[5]。

        參數(shù)選項組成一個規(guī)則的說明:

        -p - -protocol [!]protocol 協(xié)議說明選項

        -s - -source[!]address[/mask] 源地址說明選項

        -d - -destination[!]address[/mask] 目標地址說明選項

        -o - -out-interface[!][name] 指明離開接口的值

        -c - -set-counters PKTS BYTES 管理員的初始包和字節(jié)計數(shù)器

        -j - - jump target 指明規(guī)則的目標

        -i - - in-interface[!][name] 指明進入接口的值

        2.4 目標(target)

        目標是由規(guī)則指定的操作,對與那些規(guī)則匹配的信息包執(zhí)行這些操作。除了允許用戶定義的目標之外,還有許多可用的目標選項。下面是常用的一些目標及其示例和說明。

        ACCEPT:當信息包與具有ACCPET目標的規(guī)則完全匹配時,會被接受(允許它前往目的地)。

        DROP:當信息包與具有DROP目標的規(guī)則完全匹配時,會阻塞該信息包,并且不對它作進一步處理。

        REJECT:該目標的工作方式與DROP目標相同,但它比DROP好。REJECT不會在服務器和客戶機上留下死套接字。另外,REJECT會將錯誤信息發(fā)回給信息包的發(fā)送方。

        SNAT:指明包的源地址將被修改,并將停止規(guī)則的檢查。

        DNAT:指明包的目的地址將被修改,并將停止規(guī)則的檢查。

        MASQUERADE:被專門設計用于那些動態(tài)獲取IP地址的連接的,比如,撥號上網(wǎng)、DHCP連接等。

        REDIRECT:改變包的目的IP地址來發(fā)送包。

        MIRROR:互換源和目的地址后發(fā)送數(shù)據(jù)包。

        3 規(guī)則集優(yōu)化與實現(xiàn)

        對于一個防火墻系統(tǒng)來說,過濾規(guī)則是系統(tǒng)過濾的核心。隨著防火墻系統(tǒng)的運行,新的過濾規(guī)則會不斷的加入。當規(guī)則越來越多時,系統(tǒng)對每個數(shù)據(jù)包的處理時間會變得越來越長,系統(tǒng)的過濾效率會越來越低,這樣勢必會造成數(shù)據(jù)包的延時和網(wǎng)絡的擁堵。因此,規(guī)則集的結構合理性對系統(tǒng)的過濾效率起著至關重要的作用。

        3.1 算法思想

        考慮到過濾系統(tǒng)中,規(guī)則一般都是由入侵檢測系統(tǒng)根據(jù)實際網(wǎng)絡情況來實時動態(tài)添加的,規(guī)則之間可能存在極大的冗余。因此,在添加規(guī)則時,嘗試對新添加的規(guī)則和已有的規(guī)則進行比較和合并,刪除被包含的規(guī)則,合并多條相關的規(guī)則成一條規(guī)則。這樣可以大大減少規(guī)則的數(shù)量,從而提高過濾的效率。

        3.2 Iptables運行流程

        當用戶從命令行輸入操作命令時,系統(tǒng)執(zhí)行流程如下:

        ⑴ main函數(shù)載入相應的模塊,然后將命令行參數(shù)傳入do_command,調(diào)用do_command函數(shù)。

        ⑵ do_command函數(shù)解析main函數(shù)傳遞過來的命令行參數(shù),解析出命令、規(guī)則等信息。

        ⑶ main函數(shù)判斷do_command函數(shù)的返回值,如果相應的操作成功,則調(diào)用iptc_commit函數(shù)將提交用戶修改到內(nèi)核。

        d.iptc_commit函數(shù)將根據(jù)表操作句柄中的所有鏈信息轉換成內(nèi)核數(shù)據(jù)結構,然后將所有的修改提交到內(nèi)核。

        ⑷ 如果提交操作完成,main函數(shù)退出,完成命令執(zhí)行。

        3.3 算法實現(xiàn)

        規(guī)則集優(yōu)化算法的流程不改變Iptables系統(tǒng)的執(zhí)行流程,只是在其默認的處理過程中加入一個預處理過程。這個預處理過程判斷所添加的規(guī)則是否能夠和已有的規(guī)則重新組合。如果可以重新組合,則修改現(xiàn)有的規(guī)則,然后返回,否則執(zhí)行默認的流程。

        3.3.1 主要函數(shù)

        本算法中主要函數(shù)如下。

        ⑴ pp_iptc_merge_entry函數(shù)

        此函數(shù)的功能是合并規(guī)則到規(guī)則鏈,其函數(shù)原型如下:

        Int pp_iptc_merge_entry(iptc_handle_t *handle,

        const ipt_chainlabel chain,const struct ipt_entry *entry)

        ⑵ pp_compare_entry函數(shù)

        此函數(shù)的功能為比較兩條規(guī)則,判斷兩條規(guī)則之間是否具有等價、包含或交叉關系,其函數(shù)原型如下:

        Int pp_compare_entry(const struct ipt_entry *e1,

        const struct ipt_entry *e2)

        ⑶ pp_compare_match函數(shù)

        此函數(shù)的功能為比較兩條規(guī)則的匹配部分,判斷兩條規(guī)則的匹配部分是否具有等價、包含或交叉關系。其函數(shù)原型如下:

        Int pp_compare_match(const struct ipt_entry *e1,

        const struct ipt_entry *e2)

        ⑷ pp_compare_target函數(shù)

        此函數(shù)的功能為比較兩條規(guī)則的目標部分,判斷兩條規(guī)則的目標部分是否相同,其函數(shù)原型如下:

        Int pp_compare_target(const struct ipt_entry *e1,

        const struct ipt_entry *e2)4

        3.3.2 算法流程

        當向規(guī)則集中添加一條規(guī)則時,優(yōu)化程序執(zhí)行如下操作。

        ⑴ 取出待添加鏈中的所有規(guī)則,將規(guī)則集中的每條規(guī)則和待添加的規(guī)則比較。

        ⑵ 根據(jù)比較結果,執(zhí)行如下流程:

        (a) 如果待添加的規(guī)則和已有的規(guī)則是等價關系,則直接丟棄待添加的規(guī)則。

        (b) 如果待添加的規(guī)則和已有的規(guī)則是包含關系,則刪除原規(guī)則集中被包含的規(guī)則,然后將待添加的規(guī)則加入到規(guī)則集。

        (c) 如果待添加的規(guī)則和已有的規(guī)則是被包含關系,則直接丟棄待添加的規(guī)則。

        (d) 如果待添加的規(guī)則和已有的規(guī)則是交叉關系,則根據(jù)交叉關系修改已有的規(guī)則,待添加的規(guī)則丟棄。

        (e) 如果規(guī)則集中的規(guī)則和待添加的規(guī)則沒有等價、包含、交叉關系,則執(zhí)行默認的添加過程。

        4 結束語

        Iptables在經(jīng)過優(yōu)化后,對于無法合并的規(guī)則集,系統(tǒng)的執(zhí)行效率只有微小的降低,基本上只減慢了3-5%之間。對于可以合并的規(guī)則集,優(yōu)化算法避免了插入重復的規(guī)則,Iptables和內(nèi)核的交互次數(shù)減少了,Iptables系統(tǒng)的性能有明顯的提高,特別是在當規(guī)則集的數(shù)目巨大時更為突出。這從另一方面說明了優(yōu)化算法能有效的去掉規(guī)則集中冗余的規(guī)則,提高內(nèi)核過濾效率。優(yōu)化算法能夠有效地剔除規(guī)則集中重復的規(guī)則,這不僅能夠提高Iptables系統(tǒng)本身運行效率,而且由于系統(tǒng)中過濾規(guī)則的減少,直接提升了系統(tǒng)過濾效率,減少過濾數(shù)據(jù)包所需的時間,從而提高防火墻的吞吐率。

        參考文獻:

        [1] 黎連業(yè),張維.防火墻及其應用技術[M].清華大學出版社,2004.3:

        220-244

        [2] 朱立才.Netfilter/Iptables防火墻性能優(yōu)化方案與實現(xiàn)[J].計算機工

        程與應用,2008.6:218-232

        [3] 劉君堯.linux下基于Netfilter的防火墻設計[J].計算機技術與發(fā)展,

        2005.10:250-255

        [4] 毛德操.linux內(nèi)核源代碼情景分析[M].浙江大學出版社,2001.6:

        118-130

        [5] 徐千洋.linux C函數(shù)庫參考手冊[M].北京:中國青年出版社,2007.9:

        102-111

        猜你喜歡
        防火墻優(yōu)化
        超限高層建筑結構設計與優(yōu)化思考
        民用建筑防煙排煙設計優(yōu)化探討
        關于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        構建防控金融風險“防火墻”
        當代陜西(2019年15期)2019-09-02 01:52:08
        下一代防火墻要做的十件事
        自動化博覽(2014年6期)2014-02-28 22:32:13
        筑起網(wǎng)吧“防火墻”
        中國火炬(2010年10期)2010-07-25 07:43:49
        真正強力四大防火墻
        极品av一区二区三区| 久久精品女人天堂av免费观看| 日韩av无码精品一二三区| 日韩人妻ol丝袜av一二区| 久久精品无码一区二区日韩av| 最新日本一道免费一区二区| 免费网站看v片在线18禁无码| 国产一线二线三线女| 国产成人无码精品午夜福利a| 最近中文av字幕在线中文| 国产91吞精一区二区三区| 豆国产95在线 | 亚洲| 一本无码人妻在中文字幕| 看黄色亚洲看黄色亚洲| 国产av一区二区三区香蕉| 亚洲精品成人久久av| 一区二区三区四区午夜视频在线| 成人国产激情自拍视频| 国产精品久久久天天影视| 在线观看人成视频免费| 国产精品无码久久综合| 真实单亲乱l仑对白视频| 婷婷四房色播| 九九久久国产精品大片| 日本一区二区在线看看| 国产伦奸在线播放免费| 蜜臀一区二区三区精品| 热re99久久精品国99热| 日本成本人三级在线观看| 婷婷激情六月| 中文字幕一区二区网站| 亚洲国产综合久久精品| 亚洲黄片av在线播放| 特黄做受又硬又粗又大视频小说| 亚洲中文有码字幕青青| 亚洲自拍愉拍| 少妇特殊按摩高潮惨叫无码| 亚洲视频在线观看青青草| 伊人久久亚洲综合av影院| 国产白色视频在线观看| 国产做国产爱免费视频|