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

        ?

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

        2009-10-26 09:35:10高祥斌
        新媒體研究 2009年13期
        關鍵詞:鉤子鏈表內核

        高祥斌

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

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

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

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

        一、Netfilter的技術特點

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

        二、Netfilter技術分析

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

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

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

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

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

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

        鉤子和掛載函數(shù)是Netfilter架構中的核心部分。Linux內核的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é)議棧的五個掛載點時,內核就會調用在掛載點注冊的回調函數(shù)對數(shù)據(jù)包進行處理。Netfilter掛載點回調函數(shù)的調用代碼是通過NF_HOOK宏嵌入在網(wǎng)絡協(xié)議棧的代碼之中的,其定義在include/li

        nux/netfilter.h中。

        (二)Netfilter對數(shù)據(jù)包的處理過程?;贚inux的Netfilter防火墻設計中,其對數(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ù)包是需要轉發(fā)還是發(fā)給本機;若該數(shù)據(jù)包是發(fā)給本機的,則經(jīng)過鉤子函數(shù)鏈表NF_IP_LOCAL_IN處理后傳遞給上層協(xié)議;若該數(shù)據(jù)包應該被轉發(fā),則它被NF_IP_FORWARD處理;轉發(fā)的數(shù)據(jù)包經(jīng)過最后一個鉤子函數(shù)鏈表NF_IP_POST_ROUTING處理以后,再傳輸?shù)骄W(wǎng)絡上。本地產(chǎn)生的數(shù)據(jù)包經(jīng)過鉤子函數(shù)鏈表NF_IP_LOCAL_OUT處理后,進行路由選擇處理,然后經(jīng)過NF_IP_POST_ROUTING處理并發(fā)送到網(wǎng)絡上。另外,還可以使用內核模塊在Netfilter的五個鉤子函數(shù)鏈表上掛載一個或者多個這樣的鉤子函數(shù)。這樣當有數(shù)據(jù)包進入鉤子點處理時,將查找被掛載的函數(shù),然后調用這些函數(shù)對數(shù)據(jù)包進行處理。

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

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

        參考文獻:

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

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

        猜你喜歡
        鉤子鏈表內核
        萬物皆可IP的時代,我們當夯實的IP內核是什么?
        群眾路線是百年大黨成功之內核性制度因素的外在表達
        當代陜西(2021年12期)2021-08-05 07:45:46
        強化『高新』內核 打造農(nóng)業(yè)『硅谷』
        基于二進制鏈表的粗糙集屬性約簡
        跟麥咭學編程
        Linux內核mmap保護機制研究
        誰和誰好
        快樂語文(2018年15期)2018-11-29 10:23:17
        基于鏈表多分支路徑樹的云存儲數(shù)據(jù)完整性驗證機制
        幸福的一家
        《脈望館鈔校本古今雜劇》穿關之“鉤子困帶”考
        中華戲曲(2017年2期)2017-02-16 06:53:24
        精品厕所偷拍一区二区视频| а天堂中文地址在线| 日本无遮挡真人祼交视频| 国内精品卡一卡二卡三| 国产精品美女久久久久| 两个人看的www中文在线观看| 久久老子午夜精品无码| 国产无套粉嫩白浆内精| 精品一区二区三区a桃蜜| 久久精品蜜桃亚洲av高清| 久久久久99精品成人片欧美| av鲁丝一区鲁丝二区鲁丝三区| 蜜臀av 国内精品久久久| 99热最新在线观看| 黄 色 成 年 人 网 站免费| 丰满巨臀人妻中文字幕| 日韩视频在线观看| 人妻中文无码久热丝袜| 亚洲中文无码av在线| 国产免费播放一区二区| 日韩不卡无码三区| 久久国产精品免费一区二区三区| 看女人毛茸茸下面视频| 中文字幕乱偷无码av先锋蜜桃 | 理论片87福利理论电影| 最好看的最新高清中文视频 | 久草视频在线这里只有精品| 国产一区二区三区蜜桃| 一区二区三区无码高清视频 | 国产三级欧美| 亚洲 美腿 欧美 偷拍| 亚洲天堂亚洲天堂亚洲色图| 国产精品无码一区二区三区在| 欧美大黑帍在线播放| 天天射色综合| 东京道一本热码加勒比小泽| 国产精品熟女视频一区二区三区 | 国产精品亚洲av无人区二区| 中国免费看的片| 熟妇人妻无码中文字幕| 在线无码免费看黄网站|