8.5. firewalld RHEL システムロールを使用した DMZ firewalld ゾーンの設定

システム管理者は、firewall システムロールを使用して、enp1s0 インターフェイスで dmz ゾーンを設定し、ゾーンへの HTTPS トラフィックを許可できます。これにより、外部ユーザーが Web サーバーにアクセスできるようにします。

Ansible コントロールノードで以下の手順を実行します。

前提条件

  • 制御ノードと管理対象ノードを準備している
  • 管理対象ノードで Playbook を実行できるユーザーとして制御ノードにログインします。
  • 管理対象ノードへの接続に使用するアカウントには、そのノードに対する sudo 権限があります。
  • この Playbook を実行する管理対象のノードまたは管理対象のノードのグループは、Ansible インベントリーファイルにリストされています。

手順

  1. ~/configuring-a-dmz.yml などの Playbook ファイルを次の内容で作成します。

    ---
    - 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
  2. 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