一:Linux 防火墙基础:
Linux防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙(也称网络层防火墙);
Linux防火墙体系基于内核编码实现,具有非常稳定的性能和高效率,因此被广泛的应用。
1.Netfilter和iptables的区别:
-
Netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于“内核态”(KernelSpace,又称内核空间)的防火墙功能体系;
-
Iptables:指的是用来管理Linux防火墙的命令程序,通常位于/sbin/iptables,属于“用户态”(UserSpace,又称用户空间)的防火墙管理体系;
2.包过滤的工作层次:
主要是网络层,针对IP数据包;体现在对包内的IP地址、端口等信息的处理上;
3.Iptables 的表、链结构:
iptables作用:为包过滤机制的实现提供规则(或策略),通过各种不同的规则,告诉netfilter对来自某些源、前往某些目的或具有某些协议特征的数据包应该如何处理。
规则链:
-
规则的作用:对数据包进行过滤或处理
-
链的作用:容纳各种防火墙规则
-
链的分类依据:处理数据包的不同时机
默认包括5种规则链
-
INPUT:处理入站数据包
-
OUTPUT:处理出站数据包
-
FORWARD:处理转发数据包
-
POSTROUTING链:在进行路由选择后处理数据包(对数据链进行源地址修改转换)
-
PREROUTING链:在进行路由选择前处理数据包(做目标地址转换)
INPUT、OUTPUT链主要用在“主机型防火墙”中,即主要针对服务器本机进行保护的防火墙;而FORWARD、PREROUTING、POSTROUTING链多用在“网络型防火墙”中。
规则表
-
表的作用:容纳各种规则链
-
表的划分依据:防火墙规则的作用相似
默认包括4个规则表:
-
raw表:确定是否对该数据包进行状态跟踪;对应iptable_raw,表内包含两个链:OUTPUT、PREROUTING
-
mangle表:为数据包的TOS(服务类型)、TTL(生命周期)值,或者为数据包设置Mark标记,以实现流量整形、策略路由等高级应用。其对应iptable_mangle,表内包含五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
-
nat表:修改数据包中的源、目标IP地址或端口;其对应的模块为iptable_nat,表内包括三个链:PREROUTING、POSTROUTING、OUTPUT
-
filter表:确定是否放行该数据包(过滤);其对应的内核模块为iptable_filter,表内包含三个链:INPUT、FORWARD、OUTPUT
4.规则表之间的顺序:
rawàmangleànatàfilter
规则链之间的顺序
-
入站:PREROUTINGàINPUT
-
出站:OUTPUTàPOSTROUTING
-
转发:PREROUTINGàFORWARDàPOSTROUTING
规则链内的匹配顺序
-
按顺序依次检查,匹配即停止(LOG策略例外)
-
若找不到相匹配的规则,则按该链的默认策略处理
接下来请看第2页:http://www.linuxidc.com/Linux/2013-08/88423p2.htm