iptables四表五链介绍
目录:
- 一、iptables介绍:
- 1.防火墙分类:
- 二、四表五链详解:
- 1.链:
- 2.表:
一、iptables介绍:
iptables 并不是真正意义上的防火墙,我们可以理解为一个客户端工具,用户通过ipatbles这个客户端,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个框架的名字叫netfilter。
netfilter才是防火墙真正的安全框架,netfilter位于内核空间。
iptables是一个命令行工具,位于用户空间,通过这个命令行工具来操作netfilter。
- 内核空间:也叫做内核态,操作系统占据的内存区域
- 用户空间:也叫做用户态,用户进程所在的内存区域
硬件驱动代码运行在内核空间,与kernel运行在相同空间内,所以驱动程序发生问题容易造成系统的崩溃。将用户空间与内核空间隔离开,可减少系统崩溃的可能,提高系统的稳定性。再现实环境中,应用程序崩溃的情况比一些硬件故障出现的概率要多的多得多。所以将用户空间和内核空间隔离开很有必要。
netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
1.防火墙分类:
从逻辑上分类:
分类 说明 主机防火墙 针对单个主机进行防护 网络防火墙 处于网络入口或者边缘,针对网络入口进行防护,服务于防火墙背后的本地局域网 从物理上分类:
分类 说明 硬件防火墙 在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高 软件防火墙 应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低
二、四表五链详解:
防火墙是按照规则办事的,我们就来说说规则(rules),规则其实就是网络管理员预定义的条件,规则一般的定义为"如果数据包头符合这样的条件,就这样处理这个数据包"。规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的主要工作就是添加、修改和删除这些规则。
当客户端访问服务器的web服务时,客户端发送报文到网卡,而tcp/ip协议栈是属于内核的一部分,所以,客户端的信息会通过内核的TCP协议传输到用户空间中的web服务中,而此时,客户端报文的目标终点为web服务所监听的套接字(IP:Port)上,当web服务需要响应客户端请求时,web服务发出的响应报文的目标终点则为客户端,这个时候,web服务所监听的IP与端口反而变成了原点,我们说过,netfilter才是真正的防火墙,它是内核的一部分,所以,如果我们想要防火墙能够达到"防火"的目的,则需要在内核中设置关卡,所有进出的报文都要通过这些关卡,经过检查后,符合放行条件的才能放行,符合阻拦条件的则需要被阻止,于是,就出现了input关卡和output关卡,而这些关卡在iptables中不被称为"关卡",而被称为"链"。
这只是一个简单的描述,除过这两个关卡以外,我们还有其他关卡,也就是其他链,他们就是 “路由前”、“转 发”、“路由后”,对应英文表示为PREROUTING、FORWARD、POSTROUTING。
报文的流向: 到本机某进程的报文:PREROUTING --> INPUT 由本机转发的报文:PREROUTING --> FORWARD–> POSTROUTING 由本机的某进程发出报文(通常为响应报文):OUTPUT --> POSTROUTING
1.链:
五链的具体作用:prerouting:判断是否为本地—>①若为本地 input—>②若不为本地—> forward(地址转化)—>postrouting
链 表 PREROUTING raw表,mangle表,nat表 INPUT mangle表,filter表,(centos7中还有nat表,centos6中没有 FORWARD mangle表,filter表 OUTPUT raw表,mangle表,nat表,filter表 POSTROUTING mangle表,nat表
2.表:
表 说明 filter表 负责过滤功能,防火墙;内核模块:iptables_filter nat表 network address translation,网络地址转换功能;内核模块:iptable_nat mangle表 拆解报文,做出修改,并重新封装 的功能;iptable_mangle raw表 关闭nat表上启用的连接追踪机制;iptable_raw
表(功能) 链(钩子) raw REROUTING,OUTPUT mangle REROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING nat REROUTING,OUTPUT,POSTROUTING(centos7中还有INPUT,centos6中没有) filter INPUT,FORWARD,OUTPUT iptables为我们定义了4张"表",当他们处于同一条"链"时,执行的优先级如下。
优先级次序(由高而低):raw --> mangle --> nat --> filter