防火墙相关知识
寄居架构:安装在操作系统之上,操作系统死亡,软件随之毁灭。抢夺操作系统的资源
原生架构:直接安装在硬件之上,本身就属于一款操作系统。可以随时分配调节系统资源
软件级
(类似于寄居架构):安装在操作系统之上程序。
- 优点
工作在应用层,功能强大。可以针对IP地址进行过滤,还可以针对用户名进行过滤,组进行过滤。 - 缺点
工作在应用层,代理级的。对包的执行效率非常低。兼容性问题。安全漏洞问题。
常见的防火墙
-
Windows
ISA 2012 天网 系统本身自带 -
Linux
iptables firewalld
硬件级
(类似于原生架构):独立硬件,嵌入式应用程序。(这个操作系统本身就是防火墙)。。不需要开启那么多功能和接口。只开启防火墙相对应的功能和接口,相对来说比较稳定。不会太卡,重启即可。
- 优点
稳定、高效。根据数据包里的信息过滤。兼容性问题。安全漏洞问题较小。成本降低,根据用户群体需求提升性能。作为网络安全防护的主要设备。 - 缺点
功能没有软件级那么强大
常见的硬件防火墙
华为 ,思科 ,天融信 ,深信服 ,飞塔 ,浪潮 ,中新金盾,
绿盟科技 ,Juniper, 启明星辰 ,网康, NETGEAR
分类
- 包过滤型防火墙
抓取通过设备的数据包,对数据流层的内容进行分析。服务端口、IP(目标、源)地址、MAC(目标、源)地址等信息 - 应用层防火墙
工作在应用层,可以针对应用层的很多软件进行监听和防护。对信息类的数据进行监控分析,对传输的文件类型进行监控 - 包检测型防火墙
抓取用户的访问请求,预判用户的下一步动作,并对动作进行监听 - 网络行为管理防火墙
上网行为监控,域名访问记录、软件访问记录、搜索记录、论坛消息记录、QQ微信等软件聊天信息记录、电子有点等(华为称为下一代防火墙)
四表五链
-
四表 :规则链存放在表中,规则存放在规则链中。存放规则链的表叫做规则表
-
filter表
过滤表,确定是否放行数据包。包括:
input、forward、output链 -
mangle表
为数据包做标记,数据包需要做什么。包括:
prerouting、input、forward、output、postrouting链 -
nat表
地址转换表。包括:
prerouting、output、postrouting链 -
raw表
确定是否对数据包进行状态跟踪。包括:
prerouting、output链 -
五链 :利用五中钩子函数存放过滤规则,叫做规则链
-
prerouting
路由之前检查(路由选择之前处理数据包,目标地址转换) -
input
入站 -
forward
转发 -
output
出站 -
postrouting
路由之后检查(路由选择之后处理数据包,源地址转换)
iptables数据流顺序(规则表之间的顺序)
raw→mangle→nat→filter
iptables
iptables [-t 表名] -A/I 链名 条件 [-j 控制类型]
- 参数
-A:添加一条规则,添加在链的尾部
-I:插入一条规则,插入对应的链
-D:删除指定链中某条规则
-R:替换指定规则
-P:设定指定链的默认规则
-N:自定义一个新的空链
-X:删除一个自定义的空链
-F:清空指定规则链,如果省略链,则可以实现删掉对应表的中所有链
-Z:重置指定链中的所有规则计数器
-E:重命名自定义的空链
-L:显示指定表中的规则
-n:以数字线束主机地址和端口号
-v:显示详细信息
-vv:显示更详细信息
-x:显示计数器的精确值
--line-number:显示规则号
- 条件
协议类:-p tcp/udp/icmp
端口类:-dport 目标端口号 -sport 源端口号
地址类:-s 源IP地址 -d 目标IP地址
接口类:-i 输入接口 例:-i ens33
-o 输出接口 例:-o ens37
- 多端口匹配
-m multiport --sport 源端口列表(1024-2048)
-m multiport --dport 目标端口列表
- IP范围匹配
-m iprange --src-range IP范围(192.168.10.10-192.168.10.20)
MAC范围匹配
-m mac --mac-source MAC地址
- 控制类型
drop:丢弃
accept:允许通过
firewalld
查看所有区域名称
firewalld-cmd --get-zones
查看支持的服务
firewall-cmd --get-services
查看默认区域
firewall-cmd --get-default-zone
查看活动区域
firewall-cmd --get-active-zones
查看指定端口绑定的区域
firewall-cmd --get-zone-of-interface=端口名称(例:ens33)
指定默认区域
firewall-cmd --set-default-zone=区域名(例:external)
在指定的区域添加接口
firewall-cmd --zone=区域名 --add-interface=端口名称
重新加载防火墙
firewall-cmd --reload