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