1. iptables介绍
(1)iptables并不是真正意义上的防火墙,可以理解为一个客户端工具,用户通过iptables客户端将用户的安全设定到对应的“安全架构”中,而这个安全架构才为真正的防火墙,即netfilter。
(2)内核空间:也叫做内核态,操作系统占据的内存区域。
用户空间:也叫做用户态,用户进程所在的内存区域。
注意:netfilter位于内核空间中;iptables是一个命令行工具,位于用户空间中,通过iptables命令行工具来操作netfilter。
2. iptables四表五链
(1)防火墙是按照规则运行的,而规则即是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”,规则储存在内核空间的信息包过滤表中,这些规则分别指定了源地址,目的地址,传输协议(如TCP,UDP,ICMP)和服务类型(如HTTP,FTP和SMTP)等。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept),拒绝(reject)和丢弃(drop)等。配置防火墙的主要工作就是添加,修改和删除这些规则。
(2)报文流向图:
报文的流向:到本机某进程的报文:PREROUTING→INPUT
由本机转发的报文:PREROUTING→FORWARD→POSTROUTING
由本机的某进程发出的报文(通常为响应报文):OUTPUT→POSTROUTING
(3)链:prerouting input forward output postrouting
防火墙的作用就在于对经过的报文“匹配规则”,然后执行对应的“动作”,所以,当报文经过这些关卡的时候,则必须匹配上这个关卡上的规则。
(4)表:
表 | 链 | 功能 |
filter | INPUT ,FORWARD ,OUTPUT | 负责过滤功能,防火墙; 内核模块:iptables_filter |
nat | PREOUTING ,INPUT ,OUTPUT ,POSTOUTING | network address translation,网络地址转换功能;内核模块:iptables_nat |
mangle | PREROUTING ,INPUT ,FORWARD ,OUTPUT ,POSTROUTING | 拆解报文,做出修改,并重新封装的功能; 内核模块:iptables_mangle |
raw | PREROUTING ,OUTPUT | 关闭nat表上启用的连接追踪机制; 内核模块:iptables_raw |
优