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

        ?

        基于Linux的Netfilter處理數(shù)據(jù)包的過程分析

        2009-10-26 09:35:10高祥斌
        新媒體研究 2009年13期
        關(guān)鍵詞:鉤子鏈表內(nèi)核

        高祥斌

        [摘要]防火墻技術(shù)在保護網(wǎng)絡(luò)安全方面的作用越來越明顯。相比較window,Linux有更好的網(wǎng)絡(luò)性能,因此基于Linux的Netfilter技術(shù)的使用越來越廣泛。先分析Netfilter技術(shù)的特點,然后從兩個方面對其進行詳細分析:Netfilter的工作原理和Netfilter對數(shù)據(jù)包的處理過程,最后簡要分析Netfilter應(yīng)用開發(fā)及其優(yōu)越性。

        [關(guān)鍵詞]Netfilter數(shù)據(jù)包鉤子函數(shù)

        中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0710041-01

        網(wǎng)絡(luò)在經(jīng)濟和生活的各個領(lǐng)域正在迅速普及,眾多的企業(yè)、組織、政府部門與機構(gòu)都在組建和發(fā)展自己的網(wǎng)絡(luò),并連接到Internet上。為了保護組織資源不泄露,不受到病毒侵襲,黑客攻擊,網(wǎng)絡(luò)安全越來越受到人們的重視。Linux良好的網(wǎng)絡(luò)性能和開放源代碼的特點,使越來越多的用戶選擇了Linux作為其防火墻的操作平臺,本文正是針對當前流行的Linux中采用的Netfilter技術(shù)進行相關(guān)分析。

        一、Netfilter的技術(shù)特點

        Netfilter技術(shù)對ipchains進行了改進:它摒棄了ipchains不區(qū)分數(shù)據(jù)包是單純的進入包、外出包或中轉(zhuǎn)包的做法,同時為每種網(wǎng)絡(luò)協(xié)議(IPv4、IPv6等)定義一套鉤子函數(shù),這些鉤子函數(shù)在數(shù)據(jù)包流過協(xié)議棧的幾個關(guān)鍵點被調(diào)用;Netfilter內(nèi)核中,任何模塊可以對每種協(xié)議的一個或多個鉤子進行注冊,實現(xiàn)掛載,這樣當某個數(shù)據(jù)包被傳遞給Netfilter框架時,內(nèi)核能檢測是否有任何模塊對某種協(xié)議和鉤子函數(shù)進行了注冊[1]。如果是注冊了,這些模塊就調(diào)用注冊時使用的回調(diào)函數(shù)對數(shù)據(jù)包進行檢查或修改,然后決定是丟棄還是接受數(shù)據(jù)包;Netfilter位于Linux的IP層,它的防火墻的代碼與實現(xiàn)IP層的代碼完全分離,從而構(gòu)成不同的模塊,使網(wǎng)絡(luò)層和防火墻在結(jié)構(gòu)上很清晰,防火墻代碼修改和功能擴充更加容易。

        二、Netfilter技術(shù)分析

        Netfilter是Linux內(nèi)核實現(xiàn)數(shù)據(jù)包過濾、網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)、數(shù)據(jù)包處理等的功能框架。相對于原來的ipchains防火墻,Netfilter防火墻以更好的結(jié)構(gòu)重新構(gòu)造,并實現(xiàn)了許多新功能。

        (一)Netfilter的工作原理。Netfilter的設(shè)計為Linux內(nèi)核中其它模塊動態(tài)參與IP層中的數(shù)據(jù)包處理提供了途徑。其實現(xiàn)方法是:

        1. 在內(nèi)核中建立了一個函數(shù)指針鏈表,即鉤子函數(shù)鏈表,加入到鏈表中的函數(shù)指針所指的函數(shù)稱為鉤子函數(shù)(Hook Function)。當內(nèi)核模塊需要參與IP層中對數(shù)據(jù)包的處理時,通過調(diào)用Netfilter中鉤子函數(shù)的注冊函數(shù),注冊內(nèi)核模塊的數(shù)據(jù)包處理函數(shù),Netfilter將在鉤子函數(shù)鏈表中記錄下此模塊中的數(shù)據(jù)包處理函數(shù)指針。

        2. IP層在數(shù)據(jù)包處理過程中,會檢查相應(yīng)的鉤子函數(shù)鏈表中是否有鉤子函數(shù)被注冊:如果存在注冊的鉤子函數(shù),便會調(diào)用此函數(shù),并且根據(jù)該函數(shù)的處理結(jié)果,決定是繼續(xù)完成IP層中的后續(xù)處理過程,還是丟棄此數(shù)據(jù)包,中斷數(shù)據(jù)包的傳輸;如果不存在注冊的鉤子函數(shù),則繼續(xù)完成IP層中的后續(xù)處理。

        3. 當內(nèi)核模塊不需要參與IP層的數(shù)據(jù)包處理時,調(diào)用Netfilter鉤

        子注銷函數(shù),Netfilter從鉤子函數(shù)鏈表中去掉此鉤子函數(shù)指針,這樣IP層檢測不到鉤子函數(shù)的存在,會繼續(xù)其后續(xù)操作。

        鉤子和掛載函數(shù)是Netfilter架構(gòu)中的核心部分。Linux內(nèi)核的Netfil

        Ter框架為IPv4協(xié)議實現(xiàn)了五個鉤子函數(shù)掛載點,分別為:NF_IP_PRE_ROUT

        ING,NF_IP_LOCAL_IN,NF_IP_FORWARD,NF_IP_POST_ROUTING,NF_IP_LOC

        AL_OUT。當數(shù)據(jù)包流經(jīng)IPv4協(xié)議棧的五個掛載點時,內(nèi)核就會調(diào)用在掛載點注冊的回調(diào)函數(shù)對數(shù)據(jù)包進行處理。Netfilter掛載點回調(diào)函數(shù)的調(diào)用代碼是通過NF_HOOK宏嵌入在網(wǎng)絡(luò)協(xié)議棧的代碼之中的,其定義在include/li

        nux/netfilter.h中。

        (二)Netfilter對數(shù)據(jù)包的處理過程?;贚inux的Netfilter防火墻設(shè)計中,其對數(shù)據(jù)包的處理過程如圖1所示:

        圖1Netfilter中數(shù)據(jù)包的處理過程

        圖1中共有5個鉤子函數(shù)(即HOOK),數(shù)據(jù)包從左邊進入系統(tǒng),進行IP校驗以后,數(shù)據(jù)包經(jīng)過第一個鉤子函數(shù)鏈表NF_IP_PRE_ROUTING進行處理;然后就進入路由代碼,決定該數(shù)據(jù)包是需要轉(zhuǎn)發(fā)還是發(fā)給本機;若該數(shù)據(jù)包是發(fā)給本機的,則經(jīng)過鉤子函數(shù)鏈表NF_IP_LOCAL_IN處理后傳遞給上層協(xié)議;若該數(shù)據(jù)包應(yīng)該被轉(zhuǎn)發(fā),則它被NF_IP_FORWARD處理;轉(zhuǎn)發(fā)的數(shù)據(jù)包經(jīng)過最后一個鉤子函數(shù)鏈表NF_IP_POST_ROUTING處理以后,再傳輸?shù)骄W(wǎng)絡(luò)上。本地產(chǎn)生的數(shù)據(jù)包經(jīng)過鉤子函數(shù)鏈表NF_IP_LOCAL_OUT處理后,進行路由選擇處理,然后經(jīng)過NF_IP_POST_ROUTING處理并發(fā)送到網(wǎng)絡(luò)上。另外,還可以使用內(nèi)核模塊在Netfilter的五個鉤子函數(shù)鏈表上掛載一個或者多個這樣的鉤子函數(shù)。這樣當有數(shù)據(jù)包進入鉤子點處理時,將查找被掛載的函數(shù),然后調(diào)用這些函數(shù)對數(shù)據(jù)包進行處理。

        (三)Netfilter應(yīng)用和開發(fā)。一般而言基于Netfilter的應(yīng)用開發(fā)有兩種[2]:從用戶空間的角度進行開發(fā),這種開發(fā)主要是如何充分發(fā)揮內(nèi)核所提供的防火墻功能,它不能為防火墻增加基本功能模塊;另外就是從內(nèi)核空間的角度進行開發(fā)。這種方法不僅能充分發(fā)揮現(xiàn)有功能,而且還能添加新的功能模塊。

        Netfilter具有良好的框架和拓展性,這使得開發(fā)人員無需過多涉及內(nèi)核協(xié)議棧的改動。開發(fā)基于Netfilter框架的內(nèi)核模塊一般有一下幾個步驟:分析功能需求,確定要在哪幾個鉤子掛載點處注冊鉤子函數(shù);按照鉤子函數(shù)的接口規(guī)范編寫鉤子函數(shù);在掛載點處注冊鉤子函數(shù)。

        參考文獻:

        [1]鄒思軼,嵌入式Linux設(shè)計與應(yīng)用[M].北京:清華大學出版社,2002.

        [2]姚曉宇、趙晨,Linux內(nèi)核防火墻Netfilter實現(xiàn)與應(yīng)用研究[J].計算機工程,2003(5).

        猜你喜歡
        鉤子鏈表內(nèi)核
        萬物皆可IP的時代,我們當夯實的IP內(nèi)核是什么?
        群眾路線是百年大黨成功之內(nèi)核性制度因素的外在表達
        當代陜西(2021年12期)2021-08-05 07:45:46
        強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        基于二進制鏈表的粗糙集屬性約簡
        跟麥咭學編程
        Linux內(nèi)核mmap保護機制研究
        誰和誰好
        快樂語文(2018年15期)2018-11-29 10:23:17
        基于鏈表多分支路徑樹的云存儲數(shù)據(jù)完整性驗證機制
        幸福的一家
        《脈望館鈔校本古今雜劇》穿關(guān)之“鉤子困帶”考
        中華戲曲(2017年2期)2017-02-16 06:53:24
        久久国产成人精品av| 精品视频在线观看一区二区有| 亚洲一区有码在线观看| 中文字幕日韩有码在线| 亚洲成a∨人片在线观看不卡| 国产精品免费久久久久影院| 日韩av中出在线免费播放网站 | 日日av拍夜夜添久久免费| 久久中文字幕日韩精品| 日本一道本加勒比东京热| 未满十八18禁止免费无码网站| v一区无码内射国产| 免费 无码 国产在线观看不卡| 求网址日韩精品在线你懂的| 国产成人久久精品一区二区三区| 国产av综合影院| 丝袜美女污污免费观看的网站| 日韩精品一区二区三区免费观影| 久久777国产线看观看精品| 成人免费看片又大又黄| av无码精品一区二区乱子| 国产一区二区三区av观看| 国产精品国产亚洲精品看不卡| 永久免费av无码网站yy | 国产av久久在线观看| 欧美亚洲色综久久精品国产| 中国大陆一级毛片| 日韩中文字幕一区在线| 久久久久99人妻一区二区三区| 亚洲av三级黄色在线观看| 国产a国产片国产| 84pao强力打造免费视频34| 扒开非洲女人大荫蒂视频| 亚洲最近中文字幕在线| 另类老妇奶性生bbwbbw| 日本手机在线| 午夜一区二区三区福利视频| 亚洲av区,一区二区三区色婷婷| 国产亚洲欧美精品久久久| 亚洲AV毛片无码成人区httP| 日韩伦理av一区二区三区|