摘要:        
典型的模块Makefile如下所示; 1 ifneq ($(KERNELRELEASE),) 2 obj-m := hello.o 3 else 4 KERNELDIR ?=/lib/modules/$(shell uname -r)/build 5 PWD :=$(shell pwd) 6 def    阅读全文
posted @ 2019-10-28 21:48
AlexAlex
阅读(793)
评论(0)
推荐(0)
        
            
        
        
摘要:        
注册helper nf_conntrack_ftp_init是连接跟踪ftp模块的初始化函数,可以看到其调用了nf_conntrack_helpers_register来注册helper; 1 static int __init nf_conntrack_ftp_init(void) 2 { 3 i    阅读全文
posted @ 2019-10-28 21:45
AlexAlex
阅读(1852)
评论(0)
推荐(0)
        
            
        
        
摘要:        
初始化 iptable_mangle_table_init函数通过调用ipt_register_table完成mangle表注册和钩子函数注册的功能;该流程与iptable_filter的函数调用的函数一致,此处不再重复分析,详情请移步<iptable_filter分析>; 1 static int    阅读全文
posted @ 2019-10-28 21:43
AlexAlex
阅读(877)
评论(0)
推荐(0)
        
            
        
        
摘要:        
初始化 iptable_nat_table_init函数通过调用ipt_register_table完成NAT表注册和钩子函数注册的功能;该流程与iptable_filter的函数调用的函数一致,此处不再重复分析,详情请移步<iptable_filter分析>; 1 static int __net    阅读全文
posted @ 2019-10-28 21:41
AlexAlex
阅读(1656)
评论(0)
推荐(0)
        
            
        
        
摘要:        
ipv4_conntrack_defrag ipv4_conntrack_defrag对输入包进行检查,如果是分片包,则调用nf_ct_ipv4_gather_frags函数进行重组; 1 static unsigned int ipv4_conntrack_defrag(void *priv, 2    阅读全文
posted @ 2019-10-28 21:36
AlexAlex
阅读(1663)
评论(0)
推荐(0)
        
            
        
        
摘要:        
基础参数初始化 nf_conntrack_init_start函数完成连接跟踪基础参数的初始化,包括了hash,slab,扩展项,GC任务等; 1 int nf_conntrack_init_start(void) 2 { 3 int max_factor = 8; 4 int ret = -ENO    阅读全文
posted @ 2019-10-28 21:33
AlexAlex
阅读(1011)
评论(0)
推荐(0)
        
            
        
        
摘要:        
Netfilter通过连接跟踪来记录和跟踪连接的状态,为状态防火墙和NAT提供基础支持; 钩子点与钩子函数 下图为钩子点和钩子函数的关系图,其中ipv4_conntrack_defrag、ipv4_conntrack_in、ipv4_helper、ipv4_confirm为连接跟踪相关的钩子函数,其    阅读全文
posted @ 2019-10-28 21:30
AlexAlex
阅读(1177)
评论(0)
推荐(0)
        
            
        
        
摘要:        
概述 本文主要对filter表的初始化流程,以及钩子函数的规则match流程的源码进行分析; 源码分析 所在钩子点: 1 /* 在LOCAL_IN,FORWARD, LOCAL_OUT钩子点工作 */ 2 #define FILTER_VALID_HOOKS ((1 << NF_INET_LOCAL    阅读全文
posted @ 2019-10-28 21:26
AlexAlex
阅读(1139)
评论(0)
推荐(0)
        
            
        
        
摘要:        
概述 通过钩子点和优先级的代码追溯,得到如下对应关系图,图中横坐标为钩子点,纵坐标为优先级,每个钩子点上的钩子函数按照优先级排布; 详细分析 5个钩子点如下所示,在这个五个钩子点上的钩子函数按照上面的优先级从小到大排列; 1 /* IP Hooks */ 2 /* After promisc dro    阅读全文
posted @ 2019-10-28 21:21
AlexAlex
阅读(1154)
评论(0)
推荐(1)
        
            
        
        
摘要:        
概述 本文主要分析table,rule,match,target的作用和其数据结构之间的关系,为后面的匹配流程做铺垫,通过本文中代码流程的分析,可以得到如下的关系图: 详细分析 table iptables分为五种: filter:This is the default table (if no -    阅读全文
posted @ 2019-10-28 21:20
AlexAlex
阅读(1275)
评论(0)
推荐(0)
        
 
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号