Filewalld概述
Filewalld(动态防火墙)是redhat7系统中变更对于netfilter内核模块的管理工具,以分配对一个网络及其相关链接和界面一定程度的信任。它具备对 IP v4 和 IP v6 防火墙设置的支持。它支持以太网桥 , 并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口。
相较于传统的防火墙管理配置工具,firewalld支持动态更新技术并加入了区域(zone)的概念。
简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合。
两层结构
- 核心层 处理配置和后端,如iptables、ip6tables、ebtables、ipset和模块加载器
- 顶层D-Bus 更改和创建防火墙配置的主要方式。所有firewalld都使用该接口提供在线工具
firewalld的9个zone
默认情况下,有以下的区域(zone)可用:
drop – 丢弃所有传入的网络数据包并且无回应,只有传出网络连接可用。
block — 拒绝所有传入网络数据包并回应一条主机禁止的 ICMP 消息,只有传出网络连接可用。
public — 只接受被选择的传入网络连接,用于公共区域。
external — 用于启用了地址伪装的外部网络,只接受选定的传入网络连接。
dmz — DMZ 隔离区,外部受限地访问内部网络,只接受选定的传入网络连接。
work — 非军事区,对于处在你工作区域内的计算机,只接受被选择的传入网络连接。
home — 对于处在你家庭区域内的计算机,只接受被选择的传入网络连接。
internal — 对于处在你内部网络的计算机,只接受被选择的传入网络连接。
trusted — 允许所有的数据包。
不同的区域之间的差异是其对待数据包的默认行为不同,firewalld的默认区域为public
对于一个接受到的请求具体使用哪个zone,firewalld是通过三种方法来判断的:
1、source,也就是源地址 优先级最高
2、interface,接收请求的网卡 优先级第二
3、firewalld.conf中配置的默认zone 优先级最低
这三个的优先级按顺序依次降低,也就是说如果按照source可以找到就不会再按interface去查找,如果前两个都找不到才会使用第三个。
Firewalld与iptables对比
- firewalld 是 iptables 的前端控制器
- iptables 静态防火墙 任一策略变更需要reload所有策略,丢失现有链接
- firewalld 动态防火墙 任一策略变更不需要reload所有策略 将变更部分保存到iptables,不丢失现有链接
- firewalld 提供一个daemon和service 底层使用iptables
- firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现
即firewalld和iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter,只不过firewalld和iptables的结构以及使用方法不一样罢了。
firewalld的配置模式
firewalld的配置文件以xml格式为主(主配置文件firewalld.conf例外),他们有两个存储位置
1、/etc/firewalld/ 用户配置文件
2、/usr/lib/firewalld/ 系统配置文件,预置文件
管理配置firewalld的三种方法:
(1)图像化的配置工具 firewall-config ;
(2) 命令行工具 firewall-cmd;
(3)直接编辑firewalld的配置文件--xml文件;
命令行配置firewalld
临时配置与永久配置
Firewalld 有两个配置集:“runtime”和“permanent”。
runtime:在系统重新启动或重新启动 Firewalld时,不会保留运行时的配置更改;
permanent: 持久配置集的更改不会应用于正在运行的系统。(重新加载配置可以生效)
默认情况下,firewall--cmd 命令适用于运行时配置,但使用 --permanent 标志将保存到持久配置中。
firewall-cmd --zone=public --add-service=http 运行时配置,重启服务后失效
firewall-cmd --permanent --zone=public --add-service=http 永久配置,不影响当前连接,重启后生效firewall-cmd --permanent --zone=public --remove-service=http 永久删除http服务,重启后生效
firewall-cmd --state