文档章节

Linux Kernel Netfilter Helper 分析

最新更新消息
 最新更新消息
发布于 2015/11/15 11:10
字数 233
阅读 120
收藏 3

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
崇明
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
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
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

没有更多内容

加载失败,请刷新页面

加载更多

win32截屏并rgb24转yuv420

//最终f的内存布局为BGRA格式,需要保证buf长度足够(>w*h*4)void ScreenCap(void* buf, int w, int h){ HWND hDesk = GetDesktopWindow(); HDC hScreen = GetDC(hDesk); ......

styleman
47分钟前
1
0
php输出mysql取出的中文为??的问题

解决方法: @ $db=new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_DB); $db->query("set names utf8");//添加此语句,可以解决问题...

Aomo
58分钟前
1
2
白话SpringCloud | 第五章:服务容错保护(Hystrix)

前言 前一章节,我们知道了如何利用RestTemplate+Ribbon和Feign的方式进行服务的调用。在微服务架构中,一个服务可能会调用很多的其他微服务应用,虽然做了多集群部署,但可能还会存在诸如网...

oKong
今天
2
0
【解惑】领略Java内部类的“内部”

内部类有两种情况: (1) 在类中定义一个类(私有内部类,静态内部类) (2) 在方法中定义一个类(局部内部类,匿名内部类) 1、私有内部类 —— 在方法之间定义的内部类,非静态 我们首先看看类中...

偶尔诗文
今天
1
0
sqlserver 2008 r2 直接下载地址(百度云)

之前下载的sqlserver2008发现不能附加,就卸载了,重新找到了sqlserver2008R2的百度云资源 卸载sqlserver2008还是有点麻烦,不过就是需要删除注册表中的信息 自己来回卸载了3次终于重装sqlse...

dillonxiao
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部