Linux netfilter/iptables内核模块介绍
来源:互联网 发布:手机字体美化软件 编辑:程序博客网 时间:2024/05/21 07:12
http://www.linuxidc.com/Linux/2012-09/71468.htm
netfilter架构
netfilter架构其实就是在一个packet流经系统时的多个关键点处设置了钩子,程序员可以为每一个钩子点注册一个监听器(即钩子函数,就是在packet流经这个钩子点时的一段处理代码),钩子函数将决定packet的下一个动作是什么?
在钩子函数的代码最后需要决定netfiler框架接下来需要怎么处理packet,可以返回以下5种值:
NF_ACCEPT: continue traversal as normal.
NF_DROP: drop the packet; don't continue traversal.
NF_STOLEN: I've taken over the packet; don't continue traversal.
NF_QUEUE: queue the packet (usually for userspace handling).
NF_REPEAT: call this hook again.
Iptables--filter、nat、mangle表
IPtables作为一个packet选择系统建立在netfilter框架之上。Iptables可扩展内核,注册一系列规则表,从而要求每一个packet进过某个表从而实现对某些packet的过滤。系统中默认含有3张表,它们分别是:filter、nat、mangle
1. filter,默认表,不能修改packet的内容,只能过滤packet。filter表中设置的规则仅能在NF_IP_LOCAL_IN,NF_IP_FORWARD和NF_IP_LOCAL_OUT钩子点上注册监听器。其中对于NF_IP_FORWARD钩子,netfilter还提供INPUT和OUTPUT两种接口。
2. nat, 在‘nat’领域使用,在修改源和目的地址时使用。对于非本地packet,NF_IP_PRE_ROUTING和NF_IP_POST_ROUTING钩子可以使用来修改packet的源和目的地址。如果定义了CONFIG_IP_NF_NAT_LOCAL,可是使用NF_IP_PRE_ROUTING和NF_IP_POST_ROUTING钩子修改本地packet的源和目的地址。
3. mangle, 在修改packet信息时使用。mangle表支持所有的5类钩子。
对于一个packet,程序用能够编写钩子函数的地方及处理的顺序如下图所示:
- Linux netfilter/iptables内核模块介绍
- Linux netfilter/iptables内核模块介绍
- netfilter/iptables模块功能中文介绍
- Linux安全性和netfilter/iptables介绍
- iptables和netfilter介绍
- netfilter/iptables详细介绍
- netfilter/iptables 命令介绍
- netfilter/iptables详细介绍
- netfilter/iptables 命令介绍
- netfilter/iptables 简介--使用 netfilter/iptables 为 Linux(内核 2.4.x)配置防火墙
- netfilter/iptables 简介使用 netfilter/iptables 为 Linux(内核 2.4.x)配置防火墙
- 解析Linux下Netfilter & iptables:开发一个match模块
- netfilter/iptables 为 Linux(内核 2.4.x)配置防火墙
- linux 2.6下编译内核启用iptables及netfilter
- 洞悉linux下的Netfilter&iptables:内核中的ip_tables分析
- Linux内核中Netfilter架构介绍
- Linux内核中Netfilter架构介绍
- Linux内核中Netfilter架构介绍
- android,TableLayout布局
- *取得系统变量的最简单方法(Environ 函数)
- 堆和栈的区别 (转贴)
- SqlConnetction类
- 统计代码行数(python实现)
- Linux netfilter/iptables内核模块介绍
- 网站头像——浏览器标签窗口图标
- 两个线程调用同一个函数
- mysqladmin命令详解
- hello_charset1.py
- ZOJ 1392 The Hardest Problem Ever
- SAP&Java WebService(一) ----SAP新建WebService
- myeclipse6.5重新换maven2
- 在sql中将时间戳转换为时间类型