9.5. RHEL 시스템 역할을 사용하여 firewalld DMZ 영역 구성

시스템 관리자는 방화벽 시스템 역할을 사용하여 enp1s0 인터페이스에서 dmz 영역을 구성하여 해당 영역에 HTTPS 트래픽을 허용할 수 있습니다. 이렇게 하면 외부 사용자가 웹 서버에 액세스할 수 있습니다.

Ansible 제어 노드에서 다음 프로세스를 수행합니다.

사전 요구 사항

  • 제어 노드와 관리형 노드가 준비되었습니다.
  • 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
  • 관리형 노드에 연결하는 데 사용하는 계정에는 해당 노드에 대한 sudo 권한이 있습니다.
  • 이 플레이북을 실행하려는 관리형 노드 또는 관리형 노드 그룹은 Ansible 인벤토리 파일에 나열됩니다.

절차

  1. 다음과 같은 내용으로 플레이북 파일(예: ~/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
  2. 플레이북 구문을 확인합니다.

    # ansible-playbook ~/configuring-a-dmz.yml --syntax-check

    이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.

  3. 플레이북을 실행합니다.

    # 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