WEB开发网
开发学院网络安全防火墙 linux防火墙实现技术比较 阅读

linux防火墙实现技术比较

 2006-04-03 12:36:40 来源:WEB开发网   
核心提示: FW1是怎么解决这个问题的呢?见下面的代码(从汇编代码翻译成的C程序): packet_type *fw_type_list=NULL;static struct packet_type fw_ip_packet_type ={__constant_htons(ETH_P_IP),NULL

FW1是怎么解决这个问题的呢?见下面的代码(从汇编代码翻译成的C程序):

packet_type *fw_type_list=NULL;

static struct packet_type fw_ip_packet_type =

{

__constant_htons(ETH_P_IP),

NULL, /* All devices */

fw_filterin,

NULL,

NULL, /* next */

};

fwinstallin(int isinstall )

{

packet_type *temp;

/*安装*/

if(isinstall==0){

dev_add_pack(&fw_ip_packet_type);

fw_type_list = fw_ip_packet_type->next;

for(temp = fw_type_list; temp; temp=temp->temp)

dev_remove_pack(temp);

}

/*卸载*/

else {

dev_remove_pack(&fw_ip_packet_type);

for(temp = fw_ip_packet_type; temp; temp=temp->next)

dev_add_pack(temp);

}

}

不难看出,FW1把ip_packet_type歇载掉了,然后自己在自己的处理函数(fw_filterin)中调ip_recv。

输出的挂载和lkm的手法一样,更改dev->hard_start_xmit。dev结构在2.2版本的发展过程中变了一次,为了兼容FW1对这点也做了处理(通过检查版本号来取偏移)。

还有一款linux下的防火墙产品WebGuard(http://www.gennet.com.tw/b5/csub_webguard.html)采用的手法与FW1其非常类似。有兴趣的人可以自行研究一下。

四 规则

4.0 综述

4.1 ipchains

man ipfw可以看到这一段的详细解释。关键数据结构如下:

规则链用ip_chain结构来表示,缺省有input,ouptput,forward三条链。在配置规则的时候,也可以添加新的链。每条链事实上就是一组相关的规则,以链表的形式存储。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:linux 防火墙 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接