Menu Close
Settings Close

Language and Page Formatting Options

1.16.4. 使用 firewalld RHEL 系统角色配置 DMZ firewalld 区域

作为系统管理员,您可以使用 RHEL firewalld 系统角色在 enp1s0 接口上配置 dmz 区域,以允许到区域的 HTTPS 流量。这样,您可以让外部用户访问您的 web 服务器。

先决条件

  • 对一个或多个 受管节点 的访问和权限,受管节点是您要使用 VPN 系统角色配置的系统。
  • 控制节点 的访问和权限,这是 Red Hat Ansible Core 配置其他系统的系统。
  • 列出受管节点的清单文件。
  • ansible-corerhel-system-roles 软件包在控制节点上安装。
  • 如果您在运行 playbook 时使用了与 root 不同的远程用户,则此用户在受管节点上拥有合适的 sudo 权限。
  • 受管节点使用 NetworkManager 配置网络。

步骤

  1. 使用以下内容创建 ~/configuring-a-dmz-using-the-firewall-system-role.yml playbook:

    ---
    - name: Creating a DMZ with access to HTTPS port and masquerading for hosts in DMZ
      hosts: node.example.com
      become: true
    
      tasks:
        - include_role:
            name: linux-system-roles.firewall
    
          vars:
            firewall:
              - zone: dmz
                interface: enp1s0
                service: https
                state: enabled
                runtime: true
                permanent: true
  2. 运行 playbook:

    • 要以 root 用户身份连接到受管主机,请输入:

      $ ansible-playbook -u root ~/configuring-a-dmz-using-the-firewall-system-role.yml
    • 以用户身份连接到受管主机,请输入:

      $ ansible-playbook -u user_name --ask-become-pass ~/configuring-a-dmz-using-the-firewall-system-role.yml

      --ask-become-pass 选项可确保 ansible-playbook 命令提示输入 -u user_name 选项中定义的用户的 sudo 密码。

    如果没有指定 -u user_name 选项,ansible-playbook 以当前登录到控制节点的用户身份连接到受管主机。

验证

  • 在受管节点上,查看 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: