防火墙 硬件防火墙 功能强大,性能好,但是成本高
软件防火墙 系统防火墙 iptables firewalld ufw
iptables防火墙 是Linux系统防火墙的一种 CentOS7以前版本系统的默认防火墙
组件:
netfilter :属于内核态的功能体系,是一个内核模块。由多个数据包过滤表组成,其中包含数据包的过滤处理规则集,并根据规则过滤处理IP数据包
iptables :属于用户态的管理工具,是一个防火墙应用管理程序,用来实现防火墙规则集的增删改查
iptables防火墙的架构:四表五链
四表五链的关系:表中有链,链中有规则
四表:raw(数据包状态跟踪) mangle(修改数据包内容,设置标记) nat(数据包地址转换) filter(过滤数据包)
五链:INPUT(处理入站数据) OUTPUT(处理出站数据) FORWARD(处理转发数据) PREROUTING(路由处理前,修改目的地址) POSTROUTING(路由处理后,修改源地址)
raw 表包含 OUTPUT PREROUTING
mangle 表包含 INPUT OUTPUT FORWARD PREROUTING POSTROUTING
nat 表包含 OUTPUT PREROUTING POSTROUTING
filter 表包含 INPUT OUTPUT FORWARD
表的匹配顺序 raw -> mangle -> nat -> filter
链的匹配顺序 入站数据 PREROUTING -> INPUT -> 本机的应用程序
出站数据 本机的应用程序 -> OUTPUT -> POSTROUTING
转发数据 PREROUTING -> FORWARD -> POSTROUTING
规则的匹配顺序 从上往下依次匹配链中的规则,匹配到即停止;若没有匹配的规则,则按照链的默认规则处理
过滤入站数据包 filter(INPUT)
过滤出站数据包 filter(OUTPUT)
过滤转发数据包 filter(FORWARD)
修改内网转发到外网数据包的源IP地址 nat(POSTROUTING)
修改外网转发到内网数据包的目的IP地址 nat(PREROUTING)
iptables操作管理
命令格式: iptables -t 表名 操作选项 链名 匹配条件选项 -j 控制类型
filter -A INPUT -i -o ACCEPT
nat -I OUTPUT -s -d DROP
mangle -D FORWARD -p REJECT
raw -R POSTROUTING --sport SNAT
-F PREROUTING --dport DNAT
-P
-L
查 iptables -t 表名 -L -n -v --line-numbers [链名] #不指定链名则查看表中所有链的规则
-nvL
删 iptables -t 表名 -D 链名 规则序号 #删除指定序号的规则
iptables -t 表名 -F [链名] #不指定链名则清空表中所有链的规则
增 iptables -t 表名 -A 链名 匹配条件选项 -j 控制类型 #在链的末尾添加新规则
iptables -t 表名 -I 链名 [规则序号] 匹配条件选项 -j 控制类型 #默认在链的开头插入规则,也可以在指定序号的规则前插入新规则
改 iptables -t 表名 -R 链名 规则序号 新规则内容 #修改指定序号的规则内容
iptables -t 表名 -P 链名 ACCEPT/DROP/REJECT #修改链的默认规则