WEB开发网
开发学院网络安全防火墙 Linux防火墙程序设计 阅读

Linux防火墙程序设计

 2006-04-03 12:38:29 来源:WEB开发网   
核心提示: 参数: * 协议标志pf,主要的取值及其代表的协议如下: 2代表Ipv4协议,Linux防火墙程序设计(2),4代表IPX协议,10代表Ipv6协议等,并发送不可达到的网络控制报(ICMP报文), 2 通知内核认可该网络报, * 参数结构fw定义如下: struct firewall_op

参数:

* 协议标志pf,主要的取值及其代表的协议如下:

2代表Ipv4协议,4代表IPX协议,10代表Ipv6协议等。

* 参数结构fw定义如下:

struct firewall_ops{

struct firewall_ops *next;

int (*fw_forward)(struct firewall_ops *this, int pf,

struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);

int (*fw_input)(struct firewall_ops *this, int pf,

struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);

int (*fw_output)(struct firewall_ops *this, int pf,

struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);

int fw_pf;

int fw_priority;

};

结构中next的域将由内核来修改,使其指向下一个防火墙模块。

fw_pf域为协议标志,含义同上。

fw_priority指定优先级,一般应大于0。

fw_input、fw_output、fw_forward是用户编写的防火墙函数模块,在接收到网络报和发送网络报时内核将调用这些模块,后面将详细讨论。

2、 unregister_firewall

unregister_firewall的原型说明与调用方法同register_firewall。

三、 防火墙函数模块的设计

1、 防火墙函数模块的返回值

返回值是至关重要的,内核将根据它来决定对网络数据报采取的处理策略。主要返回值及意义如下:

0和1 通知内核忽略该网络报。

-1 通知内核忽略该网络报,并发送不可达到的网络控制报(ICMP报文)。

2 通知内核认可该网络报。

2、 各模块函数的入口参数

* 参数this

指向register_firewall中的fw参数结构。

上一页  1 2 3 4  下一页

Tags:Linux 防火墙 程序设计

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