1、 iptables概述
netfilter/iptables:IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables 组成。
netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。
netfilter/iptables 后期简称为:iptables。 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表。所有规则配置后,立即生效,不需要重启服务。
2、三张表介绍
① filte r负责过滤数据包,包括的规则链有,input,output 和 forward;
② nat 则涉及到网络地址转换,包括的规则链有,prerouting,postrouting和output;
③ mangle 表则主要应用在修改数据包内容上,用来做流量整形的,给数据包打个标识,默认的规则链有: input、output、 forward、postrouting、prerouting
三、 五个链
☐ prerouting# 用来修改目的地址,用来做DNAT 。如:把内网中的80端口映射到路由器外网端口上
☐ postrouting# 用来修改源地址用来做SNAT。 如:内网通过路由器NAT转换功能实现内网PC机
☐ raw 表:用于处理异常,包括的规则链有,prerouting,output; 一般使用不到,raw在整个防火墙体系优先级最高,如果启动用raw表,数据将会跳过conntrack(连接跟踪机制)
☐ 整体数据包分两类:发给防火墙本身的数据包,和需要经过防火墙的数据包。
(1) 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。
(2) 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。
本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
(3) 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。
转发数据:PREROUTING、FORWARD、POSTROUTING
若在该链内找不到的相匹配的规则,则按该链的默认策略处理(未修改的情况下,默认策略为允许)