2.3. NetFilter框架和Iptables使用方法概述

Linux根据数据包在内核中的不同处理,将整个IP包在内核中的生存周期划分为三个:PREROUTING、FORWARD、POSTROUTING。其他还有两个LOCAL_INPUT和LOCAL_OUTPUT(一般简写成INPUT和OUTPUT),分别对应送入本机上层协议栈的数据包和本机发送出的数据包。如果想要保护本机的安全性,那么只需关注INPUT和OUTPUT方向的数据包就可以了。其他几个不需要关心。

这五个方向对应着内核中五条不同的规则链和三个不同的规则表。

Linux中规则链被组织在三个不同的规则表中:Filter 、NAT、Mangle。其中Filter针对过滤系统,NAT针对地址转换系统,Mangle针对策略路由和特殊应用。规则链分配如下:

针对主机的安全性主要集中在Filter表中的INPUT和OUTPUT规则链,这两个关键字在添加规则的时候会使用到。

在内核编译了NetFilter系统以后,系统会自动建立这五个规则链和三个规则表。

我们在使用的时候主要要使用到的规则表是Filter表,规则链是INPUT和OUTPUT链。添加的主要规则都集中在这两个链上。用图示表示如下: