跟大家分享Linux系统iptable硬核干货,通过对其概念、工作流程、其结构、其添加规则相关用法去开展,让大家在Linux系统中的安全防范再添一块技能砖!
一、iptables简介
iptables是linux系统自带的一款优秀,并且是开放源代码的完全的自由的软件工具。这是一款基于包过滤的防火墙工具,具有功能强大、使用灵活等特点,可以对流入和流出服务器的数据包进行灵活控制。
1、表(tables)的概念
表(tables)是用来存放链的,即看作是链的一个容器。
2、链(chains)的概念
链(chains)是用来存放规则的,即看作是规则的一个容器。
3、规则(policy)的概念
规则(policy)就是iptables用于过滤相关数据包的一种规范。
二、iptables工作流程
1、防火墙是一层层过滤的,就是按照配置规则的顺序从上到下,从前到后进行过滤的。
2、如果匹配上了相应的规则,即明确表明是阻止还是通过,此时数据包就不再向下匹配新的规则了。
3、如果所有的规则中没有明确表明是阻止还是通过这个数据包,也就是没有匹配上规则,则继续向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
4、防火墙的默认规则是对应链表的所有规则执行完成后,才会执行的规则。
三、iptables中的四表五链
1、iptables中存在的4种表:
1)filter:主要用于过滤的,控制数据包是否允许进出及转发。
filter表中的链有INPUT、FORWARD、OUTPUT。
2)nat:主要用于控制数据包中地址转换,即来源IP和端口与目的IP和端口
的转换。
nat表中的链有PREROUTING、INPUT、OUTPUT、POSTROUTING。
3)mangle:主要用于修改数据包中的原数据,如打标记。
mangle表中的链有PREROUTING、INPUT、FORWARD、OUTPUT、
POSTROUTING。
4)raw:主要用于控制nat表中连接追踪机制的启用状况。
raw表中的链有PREROUTING、OUTPUT。
2、iptables中的存在的5种链,这里必须是大写:
1)PREROUTING:指的是进入路由之前的数据包。
2)INPUT:指的是过滤进来的数据