第 10 章 使用 RHEL 系统角色配置 firewalld
RHEL 系统角色是 Ansible 自动化工具的一组内容。此内容与 Ansible 自动化实用程序一起提供一致的配置接口,来一次性远程管理多个系统。
rhel-system-roles
软件包包含 rhel-system-roles.firewall
RHEL 系统角色。此角色是为 firewalld
服务的自动配置而引入的。
使用 firewall
RHEL 系统角色,您可以配置许多不同的 firewalld
参数,例如:
- Zones
- 应允许哪些数据包的服务
- 授予、拒绝或丢弃访问端口的流量
- 区的端口或端口范围的转发
10.1. 使用 firewall
RHEL 系统角色重置 firewalld
设置
随着时间的推移,对防火墙配置的更新可能会积累到这个点,从而给他们造成意外的安全风险。使用 firewall
RHEL 系统角色,您可以自动将 firewalld
设置重置为其默认状态。这样,您可以有效地删除任何非预期的或不安全的防火墙规则,并简化其管理。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。
步骤
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: Reset firewalld example hosts: managed-node-01.example.com tasks: - name: Reset firewalld ansible.builtin.include_role: name: rhel-system-roles.firewall vars: firewall: - previous: replaced
示例 playbook 中指定的设置包括以下内容:
previous: replaced
删除所有现有的用户定义的设置,并将
firewalld
设置重置为默认值。如果将previous:replaced
参数与其他设置相结合,则firewall
角色会在应用新设置前删除所有现有设置。有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.firewall/README.md
文件。
验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml
请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml
验证
在控制节点上运行这个命令,远程检查受管节点上的所有防火墙配置是否已重置为其默认值:
# ansible managed-node-01.example.com -m ansible.builtin.command -a 'firewall-cmd --list-all-zones'
其他资源
-
/usr/share/ansible/roles/rhel-system-roles.firewall/README.md
文件 -
/usr/share/doc/rhel-system-roles/firewall/
目录