亚洲AV无码乱码在线观看不卡|最新大伊香蕉精品视频在线|亚洲不卡av一区二区|国产美女无遮挡免费

登錄論壇 | 注冊(cè)會(huì)員 設(shè)為首頁(yè) | 收藏本站
當(dāng)前位置 : 首頁(yè)>軟件學(xué)院>操作系統(tǒng)>linux系統(tǒng)>正文
 
簡(jiǎn)單解析Linux系統(tǒng)防火墻框架

http://m.yibo1263.com 2009-7-10 8:28:41  來(lái)源:網(wǎng)絡(luò)整理  編輯:葉子
 

數(shù)據(jù)報(bào)處理(Packet Mangling)

Mangle表格在NF_IP_PRE_ROUTING和NF_IP_LOCAL_OUT鉤子中進(jìn)行注冊(cè)。使用 mangle表,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)報(bào)的修改或給數(shù)據(jù)報(bào)附上一些帶外數(shù)據(jù)。當(dāng)前mangle表支持修改TOS位及設(shè)置skb的nfmard字段。

源碼分析

如果我們想加入自己的代碼,便要用nf_register_hook函數(shù),其函數(shù)原型為:

int nf_register_hook(struct nf_hook_ops *reg) 
struct nf_hook_ops 
{ 
struct list_head list; 
/* User fills in from here down. */ 
nf_hookfn *hook; 
int pf; 
int hooknum; 
/* Hooks are ordered in ascending priority. */ 
int priority; 
};

我們的工作便是生成一個(gè)struct nf_hook_ops結(jié)構(gòu)的實(shí)例,并用nf_register_hook將其HOOK上。其中l(wèi)ist項(xiàng)我們總要初始化為{NULL,NULL};由于一般在IP層工作,pf總是PF_INET;hooknum就是我們選擇的HOOK點(diǎn);一個(gè)HOOK點(diǎn)可能掛多個(gè)處理函數(shù),誰(shuí)先誰(shuí)后,便要看優(yōu)先級(jí),即priority的指定了。Netfilter_IPv4.h中用一個(gè)枚舉類型指定了內(nèi)置的處理函數(shù)的優(yōu)先級(jí):

enum nf_IP_hook_priorities { 
NF_IP_PRI_FIRST = INT_MIN, 
NF_IP_PRI_CONNTRACK = -200, 
NF_IP_PRI_MANGLE = -150, 
NF_IP_PRI_NAT_DST = -100, 
NF_IP_PRI_FILTER = 0, 
NF_IP_PRI_NAT_SRC = 100, 
NF_IP_PRI_LAST = INT_MAX, 
};

Hook是提供的處理函數(shù),也就是我們的主要工作,其原型為:

unsigned int nf_hookfn(unsigned int hooknum, 
struct sk_buff **skb, 
const struct net_device *in, 
const struct net_device *out, 
int (*okfn)(struct sk_buff *));

它的五個(gè)參數(shù)將由NFHOOK宏傳進(jìn)去。nf_register_hook根據(jù)reg中注冊(cè)的協(xié)議簇類型和優(yōu)先級(jí)在nf_hooks中找到相應(yīng)的位置并插入到此表中。_hooks[NPROTO][NF_MAX_HOOKS]在Netfilter初始化時(shí)(Netfilter_init/Netfilter.c,而它在sock_init時(shí)調(diào)用)已經(jīng)初始為一個(gè)空表。

例如IPtable在初始化時(shí)(init/IPtable_filter.c)調(diào)用nf_register_hook注冊(cè)他的hook函數(shù)。

static struct nf_hook_ops IPt_ops[] 
= { { { NULL, NULL }, IPt_hook, PF_INET, NF_IP_LOCAL_IN, NF_IP_PRI_FILTER }, 
{ { NULL, NULL }, IPt_hook, PF_INET, NF_IP_FORWARD, NF_IP_PRI_FILTER }, 
{ { NULL, NULL }, IPt_local_out_hook, PF_INET, NF_IP_LOCAL_OUT, 
NF_IP_PRI_FILTER } 
};
 

mangle在init/IPtable_mangle.c中注冊(cè)它自己的hook函數(shù)!

static struct nf_hook_ops IPt_ops[] 
= { { { NULL, NULL }, IPt_hook, PF_INET, NF_IP_PRE_ROUTING, NF_IP_PRI_MANGLE }, 
{ { NULL, NULL }, IPt_local_out_hook, PF_INET, NF_IP_LOCAL_OUT, 
{NF_IP_PRI_MANGLE } 
};

NAT在init/IP_nat_standalone.c中注冊(cè)它自己的hook函數(shù)

/*包過(guò)濾前,更改目的地址*/
static struct nf_hook_ops IP_nat_in_ops

本新聞共2頁(yè),當(dāng)前在第2頁(yè)  1  2  

 
收藏】【打印】【進(jìn)入論壇
  相關(guān)文章:

·在Linux系統(tǒng)下配置雙網(wǎng)卡路由表
·教你完全免費(fèi)自建Linux系統(tǒng)防火墻
·在linux系統(tǒng)下構(gòu)建入侵檢測(cè)系統(tǒng)

 
 
 
 
最新文章

中關(guān)村艷照門女主角詳記錄高清組圖 
大連護(hù)士門大尺度艷照高清組圖
iPhone女孩微博爆紅 最寶貴東西換iPhon
團(tuán)購(gòu)鼻祖Groupon中國(guó)揭秘:快與慢的商業(yè)
Spil Games發(fā)布新的品牌形象
1800配置一臺(tái)主機(jī) 不要顯示器
反恐精英之父內(nèi)維爾:改變電腦游戲銷售
團(tuán)購(gòu)網(wǎng)站黎明之前:中國(guó)市場(chǎng)慘烈廝殺不
聯(lián)想V360筆記本模特寫真
愛(ài)國(guó)者第四代移動(dòng)硬盤將面市、低電壓保

 
推薦文章
1
2
3
4
5
6
7
8
9
10
iPhone女孩微博爆紅 最寶貴東西換
大連護(hù)士門大尺度艷照高清組圖
中關(guān)村艷照門女主角詳記錄高清組
蘋果員工中毒門
宮如敏不雅照瘋傳 看張馨予韓一菲
深耕市場(chǎng) 永續(xù)經(jīng)營(yíng)——專訪百腦匯
優(yōu)派專業(yè)電子書 讓您回家旅途多姿
揭曉百萬(wàn)大獎(jiǎng)三星bada魅力綻放中
大明龍權(quán)“江湖英雄會(huì)”全國(guó)PK大
永恒之塔校園達(dá)人挑戰(zhàn)賽完美落幕
八卦圖解 More>>
iPhone女孩微博爆紅 最寶貴東西換 大連護(hù)士門大尺度艷照高清組圖
中關(guān)村艷照門女主角詳記錄高清組 宮如敏不雅照瘋傳 看張馨予韓一菲
思南县| 都江堰市| 鸡西市| 中方县| 石柱| 铜鼓县| 上饶市| 汉川市| 抚宁县| 涿鹿县| 泸水县| 镇宁| 巴南区| 沂水县| 民乐县| 阜新市| SHOW| 伊金霍洛旗| 二连浩特市| 潼关县| 德昌县| 和田县| 聊城市| 龙海市| 宁河县| 西乌| 周宁县| 郧西县| 珲春市| 化州市| 清涧县| 平乐县| 临西县| 永丰县| 淮安市| 贡觉县| 虹口区| 年辖:市辖区| 扬州市| 都安| 西华县|