netfilter分析
文章平均质量分 80
wangpengqi
这个作者很懒,什么都没留下…
展开
-
Netfilter框架
netfilter框架 Linux内核包含了一个强大的网络子系统,名为netfilter,它可 以为iptables内核防火墙模块提供有状态或无状态的包过滤服务,如NAT、IP伪装等,也可以因高级路由或连接状态管理的需要而修改IP头信息。 netfilter位于Linux网络层和防火墙内核模块之间,如图9-1所示。 (点击查看大图)图9-1 netfilte转载 2013-07-05 19:31:04 · 905 阅读 · 0 评论 -
Linux netfilter源码分析(7)
七、 target 匹配 7.1 ipt_target和ipt_entry_target结构 ip_tables.h ipt_target和ipt_match结构类似: struct ipt_target { struct list_head list; const char name[IPT_FUNCTION_MAXNAMELEN];转载 2013-07-06 14:28:06 · 873 阅读 · 0 评论 -
Linux netfilter源码分析(6)
六、 扩展的match 6.1 do_match函数 ip_tables.c do_match通过IPT_MATCH_ITERATE宏来调用, IPT_MATCH_ITERATE是在ipt_do_table函数中调用的宏 IPT_MATCH_ITERATE(e, do_match, *pskb, in, out,转载 2013-07-06 14:27:31 · 1159 阅读 · 0 评论 -
Linux netfilter源码分析(5)
五、 ipt_do_table()函数,数据包的过滤 5.1 ipt_entry 相关结构 ip_tables.h ipt_entry结构前面有过了,再看一遍 struct ipt_entry { struct ipt_ip ip; /* 所要匹配的报文的IP头信息 */ unsigned int nfcache; /* 位向量,标示本规则关心报文的什么部转载 2013-07-06 12:40:05 · 821 阅读 · 0 评论 -
Linux netfilter源码分析(4)
四、nf_hook_ops 钩子的注册 在filter表的初始化函数static int __init init(void)中除了有一个nf_register_hook函数注册一个tables外,还由nf_register_hook函数注册了3个hook 4.1 nf_hook_ops数据结构 netfilter.h struct nf_hook_ops {转载 2013-07-06 12:38:01 · 793 阅读 · 0 评论 -
Linux netfilter源码分析(3)
三、ipt_table表的注册 init()函数初始化时调用了ipt_register_table函数进行表的注册 3.1 ip_tables.c 表的注册 ipt_register_table int ipt_register_table(struct ipt_table *table) { int ret; struct ipt_table转载 2013-07-06 12:37:25 · 739 阅读 · 0 评论 -
Netfilter分析
一、概述 1. Netfilter/IPTables框架简介 Netfilter/IPTables是继2.0.x的IPfwadm、2.2.x的IPchains之后,新一代的Linux防火墙机制。Netfilter采用模块化设计,具有良好的可扩充性。其重要工具模块IPTables连接到Netfilter的架构中,并允许使用者对数据报进行过滤、地址转换、处理等操作。转载 2013-07-06 12:30:46 · 929 阅读 · 0 评论 -
Linux netfilter源码分析(1)
Linux netfilter源码分析(1) 内容基本上来自两篇文章: 《Netfilter源码分析》—(独孤九贱http://www.skynet.org.cn/index.php) 《Linux Netfilter实现机制和扩展技术》——(杨沙洲 国防科技大学计算机学院) 一、 IP报文的接收到hook函数的调用 1.1 ip_input.c ip_rcv()转载 2013-07-05 22:09:20 · 1038 阅读 · 0 评论 -
Linux netfilter源码分析(2)
二、ipt_table数据结构和表的初始化 2.1 include/linux/netfilter_ipv4/ip_tables.h struct ipt_table 表结构 struct ipt_table { struct list_head list; /* 表链 */ char name[IPT_TABLE_MAXNAMELEN]; /* 表名,如"filt转载 2013-07-06 12:32:31 · 715 阅读 · 0 评论 -
Linux内核--基于Netfilter的内核级包过滤防火墙实现
知识基础:本防火墙的开发基于对Linux内核网络栈有个良好的概念,本人对网络栈的分析是基于早期版本(Linux 1.2.13),在明确了网络栈架构的前提下,上升一步分析高级版本内核中的Netfilter防火墙实现原理,然后进行模块或内核编程,开发一款基于包过滤的个人防火墙。 包过滤防火墙:包过滤防火墙是用一个软件查看所流经的数据包的包头(header),由此决定整个包的命运。它可能会决定丢弃转载 2013-08-06 13:15:33 · 3064 阅读 · 0 评论