10.4. 使用 firewall RHEL 系统角色管理 firewalld 中的端口

您可以使用 firewall RHEL 系统角色为传入的流量在本地防火墙中打开或关闭端口,并使新配置在重启后保留。例如,您可以配置默认区域,以允许 HTTPS 服务的传入流量。

在 Ansible 控制节点上执行此步骤。

先决条件

步骤

  1. 创建包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - name: Configure firewalld
      hosts: managed-node-01.example.com
      tasks:
        - name: Allow incoming HTTPS traffic to the local host
          ansible.builtin.include_role:
            name: rhel-system-roles.firewall
          vars:
            firewall:
              - port: 443/tcp
                service: http
                state: enabled
                runtime: true
                permanent: true

    permanent: true 选项可使新设置在重启后保持不变。

  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

验证

  • 在受管节点上,验证与 HTTPS 服务关联的 443/tcp 端口是否已打开:

    # firewall-cmd --list-ports
    443/tcp

其他资源

  • /usr/share/ansible/roles/rhel-system-roles.firewall/README.md 文件
  • /usr/share/doc/rhel-system-roles/firewall/ 目录