一、Netfilter 简介

Natfilter 是集成到linux内核协议栈中的一套防火墙系统,其提供了整个防火墙的基本框架,各个协议基于Netfilter 框架来自己实现自己的防火墙子系统。每个子系统都有自己独立的表来存储自己的配置信息,他们之间完全独立的进行配置和运行。在用户空间不同的子系统有着各自独立的配置/管理工具。


在内核中包括如下一些防火墙子系统

1、链路层的防火墙子系统,对应协议栈是在桥(bridge)中对报文进行处理。对应用户空间的配置工具是ebtables


2、网络层中ipv4的防火墙子系统,对应协议栈是在IPv4协议栈中对报文进行处理,对应用户空间的配置工具是iptables


3、网络层中ipv6的防火墙子系统,对应协议栈是在IPv6协议栈中对报文进行处理,对应用户空间的配置工具是ip6tables


4、ARP处理的防火墙子系统,该处理是在协议栈的IPv4部分,但是自己有独立的表来存放自己的配置,对应用户空间的配置工具是arptables


该系列博文主要讲解Netfilter ipv4 协议的防火墙子系统,结合其配置工具iptables 的使用来讲解防火墙内部的具体实现。在内核源码级上进行详细分析。


IPv4 防火墙主要有如下几种功能:

1、 对报文的过滤

2、 对报文的修改

3、 连接跟踪

4、 网络地址转换(NAT


防火墙中数据的组织关系:


一个可爱的机器人,呵呵。上图说明了Nntfilter中各个数据的包含关系。


1Netfilter 中包含一些表(table),不同的表用来存储不同功能的配置信息。

2、每个table 里有多个chainchain表示对报文的拦截处理点。

3、每个chain 包含一些用户配置的匹配规则(match),一个或多个匹配规则后都必须有一个执行动作(target),如果报文符合匹配规则后,需要根据该执行动作(target)来处理报文。


IPv4防火墙中的定义如下:


一、chain 的定义

IPv4 子系统默认实现了五个chain,定义如下:

1、PREROUTING: 在报文路由前进行对报文的拦截

2、INPUT:对到本机的报文进行拦截

3、FORWARD:对需要本机进行三层转发的报文进行拦截

4、OUTPUT:对本机生成的报文进行拦截

5、POSTROUTIN:路由后对报文进行拦截


二、表(table)的定义:

Iptalbes 默认创建了四张表,还可以由用户自己来创建自己的表。


1、filter :该表用来存储对报文过滤的配置信息,并且该表是iptables 默认的表,如果命令没有指定表的话,就默认使用该表来存储配置信息。

该表里包含了三个chain,,分别为IPUT,OUTPUT,FORWARD

2、mangle ,该表用来存储那些对报文修改的配置信息,该表包含了上面所说的五个chain

3、raw ,直译为原始的意思,该表主要是来在协议栈入口处对原始报文进行跟踪和处理的,该表包含了2chain,分别为OUTPUT(本机生成的报文进入Ipv4协议栈的入口),PREROUTING(目的ip是到本机的报文进入Ipv4协议栈的入口)。

4、nat ,该表用来存储网络地址转换的相关配置信息。NAT功能分SNAT(源地址转换)和DNAT(目的地址转换),SNAT是在协议栈出口进行转换,DNAT是在协议栈入口进行转换。该表包含了三个chain,分别为 DNATPREROUNGINOUTPUTSNATPOSTROUTIN


三、Match

Match 代表了对报文的匹配规则,根据用户设置的匹配元素值来对报文进行匹配。具体匹配元素由用户根据自身需要来自由组合。在iptables中有标准的匹配元素,还有一些扩展的匹配元素。标准的匹配元素包括 源/.目的IP地址, 接收/发送设备  传输层协议 这五个元素,扩展的匹配元素分两类,一类是由不同的传输层协议自己定义,比如tcp/udp/icmp协议自己定义的一些匹配元素。还有一些根据特性来定义的匹配元素,比如IP地址的类型,跟连接跟踪结合的一些匹配元素等。


四、Target :

Target ,执行动作,如果报文被匹配后,就根据该匹配规则后定义的target 来对报文进行处理,

标准的target  有如下几种 ACCEPTDROPQUEUERETURN还有一些扩展的target,详见下节内容。



本文出自 “耀洋的博客” 博客,请务必保留此出处http://yaoyang.blog.51cto.com/7657153/1396722

一、Netfilter 简介,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。