【参考文章】:iptables详解-朱双印个人日志
【参考文章】:linux iptables详解--个人笔记
【参考文章】:iptables详解--转
【参考文章】:linux下IPTABLES配置详解
【参考文章】:linux防火墙(三)—— iptables语法之匹配条件
1. 基本概念
Linux真正的防火墙安全框架是 netfilter ,它位于Linux的内核空间。
iptables本质是一个命令行工具,位于用户空间,它相当于一个代理,将用户的安全设定执行到对应的安全框架 netfilter 中。
2. 工作方式
iiptables的工作方式是根据配置的规则去处理数据包。规则存储在内核空间的信息包过滤表中,规则里面包括了源地址,源端口,目的地址,目的端口,传输协议,应用层协议等。当数据包与规则匹配时,iptables就根据规则处理数据包,如放行(accept),拒绝(reject)和丢弃(drop)等。配置防火墙的主要方式就是添加,修改,删除这些规则。
3. 数据包经过防火墙的流程
1、当主机收到一个数据包后,数据包先在内核空间中处理,若发现目的地址是自身,则传到用户空间中交给对应的应用程序处理;若发现目的不是自身,则会将包丢弃或进行转发。
2、iptables实现防火墙功能的原理是:在数据包经过内核的过程中有五处关键地方,分别是 PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING,称为钩子函数,iptables可以在这5处地方写规则,对经过的数据包进行处理,规则一般的定义为 “如果数据包头符合这样的条件,就这样处理数据包”。
3、iptables中定义有5条链,说白了就是上面说的5个钩子函数,因为每个钩子函数中可以定义多条规则,每当数据包到达一个钩子函数时,iptables就会从钩子函数中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合钩子函数中任一条规则,iptables就会根据该函数预先定义的默认策略来处理数据包
4、iptables中定义有表,分别表示提供的功能,有filter表(实现包过滤)、nat表(实现网络地址转换)、mangle表(实现包修改)、raw表(实现数据跟踪),这些表具有一定的优先级:raw-->mangle-->nat-->filter
4. iptables规则
基本语法:iptables [-t 表] [操作命令] [链] [规则匹配器] [-j 目标动作]
-m 表示扩展数据包匹配模块
-m 模块名 --模块名 条件