文档章节

Linux Kernel Netfilter Helper 分析

最新更新消息
 最新更新消息
发布于 2015/11/15 11:10
字数 233
阅读 117
收藏 3
点赞 0
评论 0

linux netfilter 与helper相关的hook:

点击(此处)折叠或打开

{

.hook = ipv4_conntrack_in,

.owner = THIS_MODULE,

.pf = PF_INET,

.hooknum = NF_IP_PRE_ROUTING,

.priority = NF_IP_PRI_CONNTRACK,

}

{

.hook = ipv4_conntrack_help,

.owner = THIS_MODULE,

.pf = PF_INET,

.hooknum = NF_IP_POST_ROUTING|NF_IP_LOCAL_IN,

.priority = NF_IP_PRI_CONNTRACK_HELPER,

}

第一个数据包到来的流程:

ipv4_conntrack_in --> nf_conntrack_in --> resolve_normal_ct --> nf_ct_get_tuple --> nf_conntrack_find_tuple(1) --> init_conntrack --> nf_ct_find_expection(2) --> nf_ct_helper_find(3) --> nf_ct_helper_ext_add(4)


(1) 查找tuple五元组,因为是第一个连接,所有查找不到

(2) 查找期待连接,因为没有添加过期待连接,所有也查找不到

(3) 查找注册的helper,这里以tftp为例,找到了tftp注册的helper

(4) 将找到的helper添加到ct结果体中


在之后的ipv4_conntrack_help的hook函数中,会执行ct->helper->help函数,这个help函数tftp_help会添加一个exp到全局期待连接表中


当期待的链接的第一个数据包到达的时候,会在(2)中找到,从而将新的连接与之前的链接联系起来。


© 著作权归作者所有

共有 人打赏支持
最新更新消息
粉丝 1
博文 39
码字总数 49637
作品 0
崇明
debian 6上安装l7 filter在应用层禁用xunlei

平台:debian 6 x86_64,在linode里选择内核版本2.6.28,l7 filter官网说改版本内核可用 1,准备环境 apt-get update apt-get upgrade -y apt-get install -y build-essential libncurses5-d......

hiwill
2015/11/13
0
0
centos 6 上安装l7 filter尝试过滤xunlei

平台:Centos 6 x86_64,默认内核版本2.6.34 1,准备 yum update -y yum install -y ncurses-devel gcc make bc wget patch grub 2,下载相关安装包 wget http://download.clearfoundation.c......

hiwill
2015/11/13
0
0
iptables模块添加--七层过滤、防CC、DDOS

#!/bin/bash # BY kerryhu # QQ:263205768 # MAIL:king_819@163.com # BLOG:http://kerry.blog.51cto.com IPT=/sbin/iptables /* 当前系统版本centos5.3,内核版本2.6.18-128.el5,对现有系统......

刘赤龙
2010/06/08
0
0
conntrack-tools

The conntrack-tools user manual Pablo Neira Ayuso This document details how to install and configure the conntrack-tools >= 1.4.0. This document will evolve in the future to cov......

Linux_woniu
2017/11/02
0
0
CentOS 内核升级步骤和方法

当前系统为CentOS Linux release 6.0 (Final),内核版本为2.6.32-71.el6.i686.由于最近内核出现最新的漏洞(linux kernel 又爆内存提权漏洞,2.6.39 内核无一幸免,所以将内核升级至3.2.2最新...

LiShixi
2012/03/27
0
0
在Linux下用LVS和Ipvsadm做Web负载均衡

在Linux下用LVS和Ipvsadm做Web负载均衡,如果想对负载均衡有一个全面、宏观上的理解,可以看:服务器负载均衡技术的原理及应用。 一、简介及环境配置 在 Linux下用LVS和Ipvsadm做Web负载均衡...

脚本爱好者
2012/06/25
0
0
Linux中netfilter模块编程实践

 上篇我们看了netfilter的实现机制,这篇来实现下netfilter模块实操一把。 为了注册一个钩子,需要填充nfhookops结构体,包括优先级,钩子地点和钩子函数。然后调用nfregisterhook()函数。 ...

binarydady
05/16
0
0
Linux 用户态与内核态的交互——netlink 篇

原文链接:http://www.chinaunix.net/jh/4/822500.html 这是一篇学习笔记,主要是对《Linux 系统内核空间与用户空间通信的实现与分析》中的源码imp2的分析。其中的源码,可以到以下URL下载:...

bigfish__
2012/02/20
0
0
Linux Kernel 4.10.1、4.9.13 和 4.4.52 稳定版发布

Linux Kernel 4.10.1、4.9.13 和 4.4.52 稳定版发布,后两个都包含了一些小的修复和一组通常的重要修复。 4.9.13 更新内容以及 4.4.52 更新内容 Linux Kernel 4.10.1 更新内容: xfs:清除写...

王练
2017/02/27
1K
4
编译2.4.20-8版本linux内核后,头文件interrupt.h和smplock.h出现依赖循环

带源码安装linux版本2.4.20-8后,源码位于/usr/src/linux-2.4.20-8/中,重新编译源码: make mrproper make oldconfig make bzImage//生成核心 make modules //生成核心模块 关于内核编译相关知...

jetyi
2013/09/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

崛起于Springboot2.X之thymeleaf(24)

1、依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency> 2、application.properties spring......

木九天
6分钟前
0
0
spring-boot:run启动时,指定spring.profiles.active

Maven启动指定Profile通过-P,如mvn spring-boot:run -Ptest,但这是Maven的Profile。 如果要指定spring-boot的spring.profiles.active,则必须使用mvn spring-boot:run -Drun.profiles=test......

夜黑人模糊灬
8分钟前
0
0
大数据分析挖掘技术学习:Python文本分类

引言 文本分类作为自然语言处理任务之一,被广泛应用于解决各种商业领域的问题。文本分类的目的是将 文本/文档 自动地归类为一种或多种预定义的类别。常见的文本分类应用如下: • 理解社交媒...

加米谷大数据
12分钟前
0
0
istio-0.8 指标监控,prometheus,grafana

配置: https://istio.io/docs/tasks/telemetry/metrics-logs/ https://istio.io/docs/tasks/telemetry/tcp-metrics/ envoy拦截请求>上报mixer>对接prometheus>grafana 效果截图: promethe......

xiaomin0322
14分钟前
0
0
公众号推荐

阿里技术 书籍:《不止代码》

courtzjl
17分钟前
0
0
关于改进工作效率

1.给不同的业务线建立需求群,所有的数据需求都在群里面提。 2.对于特别难搞定的事情,到对应的技术哪去做,有问题随时沟通。 3.定期给工作总结形成方法论。 4.学习新的技术,尝试用新的方法...

Avner
24分钟前
0
0
关于thinkphp 框架开启路径重写,无法获取Authorization Header

今天遇到在thinkphp框架中获取不到header头里边的 Authorization ,后来在.htaccess里面加多一项解决,记录下: <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews Rewrite......

殘留回憶
28分钟前
0
0
centos 使用yum安装nginx后如何添加模块 10

centos 使用yum安装nginx后如何添加模块 10 centos6.2版本,使用yum来安装了nginx,但是最近需要重新添加模块,所以就傻了,询问下有人知道怎么重新添加模块吗? PS:俺是新手,需要高手救助...

linjin200
31分钟前
0
0
dubbo 资料

dubbo资料网站: https://www.cnblogs.com/a8457013/p/7818925.html

zaolonglei
31分钟前
0
0
大型网站,你是如何架构的?

大型网站,你是如何架构的?

微小宝
33分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部