首页 > 代码库 > Linux防火墙简介 – iptables配置策略

Linux防火墙简介 – iptables配置策略

Netfilter/iptables简介

????要想真正掌握Linux防火墙体系,首先要搞清楚Netfilter和iptables的关系,Netfilter和iptables包含在Linux2.4以后的内核中,可实现防火墙、NAT和数据包分割的功能。Netfilter采用模块化设计,具有良好的可扩展性。Netfilter是一个框架,iptables则是我们用户层的工具,通过iptables我们可以配置很多规则,这些规则加载到Netfilter框架中生效。

????Netfilter可以和协议栈很好的契合,如图1所示;协议栈底层实现机制就是这样,ABCDE就是我们可以配置规则的点,BD我们可以控制发往本机的数据包,ACE可以控制经过本网卡转发的数据包。那么在Netfilter中如何实现?如图2所示;针对ABCDE五个点,Netfilter定义了五个hook函数;五个钩子函数对应了五个规则链:PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING;我们使用iptables配置的规则就在这五个规则链中生效。

技术分享

图1. 协议栈底层实现

技术分享

图2. Netfilter实现

Iptables简介

????IPtables主要包括四方面的功能:

????????Filter(过滤功能)可配置在INPUT链、OUTPUT链、FORWARD链

????????NET(地址转换功能)可配置在PREROUTING链、POSTROUTING链、OUTPUT链

????????Mangle(修改报文首部)可配置在五个链上

????????Raw(原始格式)可配置在PREROUTING链和OUTPUT链

????如果在某一个链上配置了多个功能的规则改以什么顺序生效呢?如下图所示:

技术分享

图3. 规则生效顺序图

????Iptables也可以自定义链,但是必须由默认的这五个链调用,类似于中断功能,如果自定义链匹配则不必返回,如果自定义链不匹配,则返回到主链继续匹配。

Iptables规则举例

????下面我们以iptables的几个例子来引入iptables规则的详细解释(man iptables可以获得帮助文档)。

?

?

Iptables命令详解

?

?

Iptables常用扩展模块

?

?

NAT地址转换

?

?

Layer7 Filter

?

?

?

?

?

?

?

参考资料:

????洞悉linux下的Netfilter&iptables:什么是Netfilter?

????????http://blog.chinaunix.net/uid-23069658-id-3160506.html

Linux防火墙简介 – iptables配置策略