目录
前言
Centos 7中防火墙FirewallD是Linux上新的防火墙软件,和iptables差不多的工具。firewalld是centos7/8的一大特性,两大优点:支持动态更新,不用重启服务;加入了防火墙的“zone”概念。Firewall提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。它支持IPv4,IPV6防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。以前的system-config- firewall/lokkit防火墙模型是静态的,每次修改都要求防火墙完全重启。这个过程包括内核 netfilter防火墙模块的卸载和新配置所需模块的装载等。而模块的卸载将会破坏状态防火墙和确立的连接。相反, firewall daemon动态管理防火墙,不需要重启整个防火墙便可应用更改。因而也就没有必要重载所有内核防火墙模块了。不过,要使用 firewall daemon就要求防火墙的所有变更都要通过该守护进程来实现,以确保守护进程中的状态和内核里的防火墙是一致的。firewalld能动态修改单条规则,不像iptables,修改规则后必须全部刷新才能生效。firewalld在使用上要比iptables人性化很多。firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter。
一:rewalld防火墙基础
1.1:Firewalld概述
-
支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
-
支持IPv4、IPv6防火墙设置以及以太网桥
-
支持服务或应用程序直接添加防火墙规则接口
-
拥有两种配置模式
1、运行时配置
2、永久配置
1.2:Firewalld和iptables的关系
1、netfilter
- 位于Linux内核中的包过滤功能体系
- 称为Linux防火墙的“内核态”
2、Firewalld/iptables
- CentOS7默认的管理防火墙规则的工具(Firewalld)
- 称为Linux防火墙的“用户态"
1.3:Firewalld和iptables的区别
Firewalld | iptables | |
---|---|---|
配置文件 | /usr/lib/firewalld/ (用户管理) /etc/firewalld (服务本身配置) | 需要全部刷新策略,丢失连接 |
对规则的修改 | 不需要全部刷新策略,不丢失现行连接 | 需要全部刷新策略,丢失连接 |
防火墙类型 | 动态防火墙 | 静态防火墙 |
1.4:Firewalld网络区域
- 区域如同进入主机的安全门,每个区域都具有不同限制程度的规则
- 可以使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口
- 默认情况下,public区域是默认区域,包含所有接口(网卡) .
1.5:Firewalld数据处理流程
Firewalld数据处理流程,检查数据来源的源地址
- 若源地址关联到特定的区域,则执行该区域所指定的规则
- 若源地址未关联到特定的区域,则使用传入网络接口的区域,并执行该区域所指定的规则
- 若网络接口未关联到特定的区域,则使用默认区域并执行该区域所指定的规则
1.6:区域的分类
区域默认 | 规则策略 |
---|---|
trusted | 允许所有的数据包流入与流出 |
home | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量 |
interna | l等同于home区域 |
work | 拒绝流入的流量,除非与流出的流量数相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量 |
public | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量 |
external | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量 |
dmz | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量 |
block | 拒绝流入的流量,除非与流出的流量相关 |
drop | 拒绝流入的流量,除非与流出的流量相关 |
1.7:Firewalld防火墙的配置方法
1、运行时配置
- 实时生效,并持续至Firewalld重 新启动或重新加载配置
- 不中断现有连接
- 不能修改服务配置
2、永久配置
- 不立即生效,除非Firewalld重新启动或重新加载配置
- 中断现有连接
- 可以修改服务配置
1.8:图形化工具跟命令行工具
- Firewall-config图形工具 (应用较少)
- Firewall-cmd命令行工具
- /etc/firewalld/中的配置文件
◆Firewalld会优先使用/etc/firewalld/中的配置,如果不存在
配置文件,则使用/usr/lib/firewalld/中的配置
◆/etc/firewalld/ :用户自定义配置文件,需要时可通过从
/usr/lib/firewalld/中拷贝
◆/usr/ib/firewalld/:默认配置文件,不建议修改,若恢复至默
认配置,可直接删除/etc/firewalld/ 中的配置
二:Firewalld防火墙命令
2.1firewalld防火墙维护命令
2.11:防火墙进程操作
[root@localhost ~]# systemctl 选项 firewalld
选项:
stop:关闭
start:开启
restart:重启
status:状态启动、停止、查看 firewalld 服务
2.12:启动、停止、查看 firewalld 服务
在安装 CentOS7 系统时,会自动安装 firewalld 和图形化工具 firewall-config。执行 以下命令可以启动 firewalld 并设置为开机自启动状态。
[root@localhost ~]# systemctl start firewalld //启动firewalld
[root@localhost ~]# systemctl enable firewalld 设置firewalld 为开机自启动
[root@localhost ~]# systemctl status firewalld
或者
[root@localhost ~]# firewall-cmd --state
running
2.13:如果想要禁用 firewalld
[root@localhost ~]# systemctl stop firewalld //停止 firewalld
[root@localhost ~