9.5. 使用 RHEL 系统角色配置一个 firewalld DMZ 区域
作为系统管理员,您可以使用 firewall
系统角色在 enp1s0 接口上配置一个 dmz
区域,以允许到区域的 HTTPS
流量。这样,您可以让外部用户访问您的 web 服务器。
在 Ansible 控制节点上执行此步骤。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户对其具有
sudo
权限。 - 要在其上运行此 playbook 的受管节点或受管节点组列在 Ansible 清单文件中。
流程
创建包含以下内容的 playbook 文件,如
~/configuring-a-dmz.yml
:--- - name: Configure firewalld hosts: managed-node-01.example.com tasks: - name: Creating a DMZ with access to HTTPS port and masquerading for hosts in DMZ include_role: name: rhel-system-roles.firewall vars: firewall: - zone: dmz interface: enp1s0 service: https state: enabled runtime: true permanent: true
验证 playbook 语法:
# ansible-playbook ~/configuring-a-dmz.yml --syntax-check
请注意,这个命令只验证语法,且不会防止错误但有效的配置。
运行 playbook:
# ansible-playbook ~/configuring-a-dmz.yml
验证
在受管节点上,查看关于
dmz
区的详细信息:# firewall-cmd --zone=dmz --list-all dmz (active) target: default icmp-block-inversion: no interfaces: enp1s0 sources: services: https ssh ports: protocols: forward: no masquerade: no forward-ports: source-ports: icmp-blocks:
其它资源
-
/usr/share/ansible/roles/rhel-system-roles.firewall/README.md