NetFilter

  1. typedef unsigned int nf_hookfn(unsigned int hooknum,
  2. struct sk_buff *skb,
  3. const struct net_device *in,
  4. const struct net_device *out,
  5. int (*okfn) (struct sk_buff *));
  6. /* 处理函数返回值 */
  7. #define NF_DROP 0 /* drop the packet, don‘t continue traversal */
  8. #define NF_ACCEPT 1 /* continue traversal as normal */
  9. #define NF_STOLEN 2 /* I‘ve taken over the packet, don‘t continue traversal */
  10. #define NF_QUEUE 3 /* queue the packet (usually for userspace handling) */
  11. #define NF_REPEAT 4 /* call this hook again */
  12. #define NF_STOP 5
  13. #define NF_MAX_VERDICT NF_STOP

在使用Netfilter时,需要定义一个nf_hook_ops实例。

  1. struct nf_hook_ops {
  2. struct list_head list;
  3. /* User fills in from here down. */
  4. nf_hookfn *hook; /* 要注册的钩子函数 */
  5. struct module *owner;
  6. u_int8_t pf; /* 协议类型 */
  7. unsigned int hooknum; /* 哪个钓鱼台 */
  8. /* Hooks are ordered in asending priority. */
  9. int priority; /* 数值越小,优先级越高 */
  10. };
  11. typedef __u8 u_int8_t;
时间: 2024-10-13 01:09:12

NetFilter的相关文章

针对Red Hat Enterprise Linux 6.5 的防火墙详细讲解,iptables(netfilter)规则的

防火墙基础 Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙(或网络层防火墙).基于Linux内核编码实现,具有非常稳定的性能和高效率,因此获得广泛使用. 在Linux系统中,netfilter和iptables都用来指Linux防火墙. netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于"内核态"(Kernel Space,又称为内核空间)的防火墙功能体系. iptables:指的是

Iptables/Netfilter应用总结

目录: 一.理论部分. 二.实验部分. **********************************理论部分********************************** 1. 前提知识 任何主机若要与非同网络中的主机通信,则必须将报文发送到默认网关:对Linux而言,IP地址是属于主机(内核中)的,不属于网卡,只要属于当前主机的IP地址间,都可直接响应,不能称为转发:私有地址在路由器上是不允许被路由的 2. iptables简介: netfilter/iptables(简称为ip

Linux防火墙iptables/netfilter(一)

防火墙大家都不陌生,或者说都听说过,现实中的防火墙是将一个区域内的火隔离开来使之不蔓延到另一个区域,计算机领域的防火墙与之功能类似,也是为了隔离危险.在如今广阔的互联网领域内,我们一般会相信一个叫做"黑暗森林"的法则.对于这个法则大家可以去搜索一下,它是在<三体>系列小说中写出来的,大致意思是在黑暗丛林中我们无法判断对方对自己是否有恶意, 对方也无法判断我们是否有恶意,所以一见面就把对方灭掉.互联网中的恶意攻击者太多了,我们无法确定它们都是水更无法把它们灭掉,但是我们可以把

iptables/Netfilter 学习

开始学iptables,因为它是和路由器技术紧密结合在一起的. iptables的命令看起来眼花缭乱,随便找两个: iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 192.168.1.234 --dport 80 -j ACCEPT iptables -A FORWARD -f -p tcp -s 192.168.1.0/24 -d 192.168.1.234 --dport 80 -j ACCEPT 看了一些博客,还是云里雾里的,所以开始看内核里

初窥netfilter/iptables

做这个东西太麻烦了,一不小心,就被自己关门外了. ---------------------------------------------- 一.前言 二.环境 三.语法解析 四.配置及测试 1.SNAT案例 2.DNAT案例 3.SSH案例 4.SSH深入案例(自定义规则) 5.web和ftp(自定义规则) 6.web和ftp(系统默认规则) 五.保存 ---------------------------------------------- 一.前言 iptables即Linux 内核集

netfilter 简介

一.Netfilter 简介 (1) Netfilter 是 Linux 的一种防火墙,iptables 只是用于管理 Netfilter 防火墙的用户程序(2) Netfilter 防火墙包含五张表,每个表包含不同的规则链,每条规则链包含不同的(用户自定义的)规则(3) Netfilter 防火墙包含 filter .nat .mangle .raw .security 五张表,分别用于实现包过滤,网络地址转换.包重构(修改).数据跟踪处理(4) Netfilter 防火墙包含五个链:INPU

Linux Netfilter conntrack对zone的支持

我真的羡慕自己,特别的极端崇拜,要是我拉二胡能像摆弄Linux网络那样随心所欲,我就敢请个一个月的无薪长假,去公园每天拉半天二胡...只可惜到现在还没怎么拉响.       一个多月前,我对Netfilter conntrack做了一个优化,即将conntrack分为了多个表替换现在的一个表,目的是为了提高查找的效率,这个优化是独立进行的,我希望在最新的内核版本中存在这样的优化,然而没有.但是却有一个类似的,即conntrack zone的支持,这个特性不是为了优化,它仅仅在conntrack中

Linux协议栈优化之Netfilter分类conntrack

首先,如果你不同意我以下的观点,本文就不必看了:如今内存不值钱,空间换时间很划算,要知道,一万年前的1秒和一万年后1秒是一样的,你要是觉得人们做的事情可能不同,但是请记住,永远都会发生"安迪给你的被比尔拿走"之类的事情,对于你而言,什么都没有改变!       虽然空间可以被拓展,但是要讲技巧.以下是一张截图,测试的是http服务器的常规性能,我依然使用相对值比较,因为我的电脑压不出真实性能,另外,为了将网络影响降低,我使用了本地环回地址,我的目的是测试conntrack对新建连接数的

IPtables/NetFilter

前提知识 任何主机若要与非同网络中的主机通信,则必须将报文发送到默认网关: 对Linux而言,IP地址是属于主机(内核中)的,不属于网卡,只要属于当前主机的IP地址间,都可直接响应,不称为转发 私有地址在路由器上是不允许被路由的 防火墙的类型与作用的链 主机防火墙:一般使用INPUT,OUTPUT链来过滤进入和发出的报文 网络防火墙:一般使用PREROUTING,FORWARD,POSTROUTING链来转发经过的报文 命令参数 : iptables [-t 表] -命令 匹配   操作说明(1

Linux内核--基于Netfilter的内核级包过滤防火墙实现

测试内核版本:Linux Kernel 2.6.35----Linux Kernel 3.2.1 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7572382 更多请查看专栏http://blog.csdn.net/column/details/linux-kernel-net.html 作者:闫明 知识基础:本防火墙的开发基于对Linux内核网络栈有个良好的概念,本人对网络栈的分析是基于早期版本(Linux 1.2.13),在