
netfilter分析
文章平均质量分 80
wangpengqi
这个作者很懒,什么都没留下…
展开
-
Netfilter框架
netfilter框架Linux内核包含了一个强大的网络子系统,名为netfilter,它可 以为iptables内核防火墙模块提供有状态或无状态的包过滤服务,如NAT、IP伪装等,也可以因高级路由或连接状态管理的需要而修改IP头信息。 netfilter位于Linux网络层和防火墙内核模块之间,如图9-1所示。 (点击查看大图)图9-1 netfilte转载 2013-07-05 19:31:04 · 926 阅读 · 0 评论 -
Linux netfilter源码分析(7)
七、 target 匹配7.1 ipt_target和ipt_entry_target结构 ip_tables.hipt_target和ipt_match结构类似:struct ipt_target{ struct list_head list; const char name[IPT_FUNCTION_MAXNAMELEN];转载 2013-07-06 14:28:06 · 893 阅读 · 0 评论 -
Linux netfilter源码分析(6)
六、 扩展的match 6.1 do_match函数 ip_tables.cdo_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 · 1184 阅读 · 0 评论 -
Linux netfilter源码分析(5)
五、 ipt_do_table()函数,数据包的过滤 5.1 ipt_entry 相关结构 ip_tables.hipt_entry结构前面有过了,再看一遍struct ipt_entry{struct ipt_ip ip;/* 所要匹配的报文的IP头信息 */unsigned int nfcache;/* 位向量,标示本规则关心报文的什么部转载 2013-07-06 12:40:05 · 838 阅读 · 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.hstruct nf_hook_ops{转载 2013-07-06 12:38:01 · 811 阅读 · 0 评论 -
Linux netfilter源码分析(3)
三、ipt_table表的注册 init()函数初始化时调用了ipt_register_table函数进行表的注册 3.1 ip_tables.c 表的注册 ipt_register_tableint ipt_register_table(struct ipt_table *table){ int ret; struct ipt_table转载 2013-07-06 12:37:25 · 755 阅读 · 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 · 949 阅读 · 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 · 1054 阅读 · 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 · 731 阅读 · 0 评论 -
Linux内核--基于Netfilter的内核级包过滤防火墙实现
知识基础:本防火墙的开发基于对Linux内核网络栈有个良好的概念,本人对网络栈的分析是基于早期版本(Linux 1.2.13),在明确了网络栈架构的前提下,上升一步分析高级版本内核中的Netfilter防火墙实现原理,然后进行模块或内核编程,开发一款基于包过滤的个人防火墙。包过滤防火墙:包过滤防火墙是用一个软件查看所流经的数据包的包头(header),由此决定整个包的命运。它可能会决定丢弃转载 2013-08-06 13:15:33 · 3116 阅读 · 0 评论