Iptables:一个客户端代理,将用户的安全设定执行到对应的安全框架netfilter中。
五链四表:
五链:
- iptables命令中设置数据过滤或处理数据包的策略叫做规则,将多个规则合成一个链,叫规则链。
规则链则依据处理数据包的位置不同分类:
- PREROUTING
在进行路由判断之前所要进行的规则(DNAT/REDIRECT)
- INPUT
处理入站的数据包
- OUTPUT
处理出站的数据包
- FORWARD
处理转发的数据包
- POSTROUTING
在进行路由判断之后所要进行的规则(SNAT/MASQUERADE)
四表:
iptables中的规则表是用于容纳规则链,规则表默认是允许状态的,那么规则链就是设置被禁止的规
则,而反之如果规则表是禁止状态的,那么规则链就是设置被允许的规则。
- raw表
关闭nat上启用的连接追踪机制
- mangle表
拆解报文、修改报文、重新封装报文
- nat表
网络地址转换
- filter表
负责过滤功能,防火墙
规则表的先后顺序:raw-mangle-nat-filter
原理:
IPtables根据它的rule匹配而对数据包进行:放行(accept),拒绝(reject)和丢弃(drop)等动作rule存储在内核空间的信息过滤表中,这些规则指定:源地址、目的地址、传输协议(TCP、UDP、ICMP等)和服务类型(Http、FTP和SMTP)等
Netfilter位于内核空间中,是真正的防火墙,设置了“关卡”在Input、Output上(链)
网卡的驱动是在内核空间当中,Netfilter也是在内核空间当中,所以Iptables+netfilter 可以在内核空间当中设置“关卡”, 当用户去访问应用服务时,数据包是通过网卡流经内核空间之后到达用户空间。