15.6. 시스템 역할을 사용하여 SSH 서버에서 시스템 전체 암호화 정책 덮어쓰기

sshd RHEL 시스템 역할을 사용하여 SSH 서버에서 시스템 전체 암호화 정책을 재정의할 수 있습니다.

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

사전 요구 사항

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

절차

  1. 필요한 역할을 사용하는 플레이북을 생성합니다.

    1. 새 YAML 파일을 생성하고 텍스트 편집기에서 엽니다. 예를 들면 다음과 같습니다.

      # vi <cryptographic-playbook.yml>
    2. 다음 예제를 삽입합니다.

      ---
      - name: Overriding the system-wide cryptographic policy
        hosts: all
        become: true
        roles:
          - rhel_system_roles.sshd
        vars:
          sshd_sysconfig: true
          sshd_sysconfig_override_crypto_policy: true
          sshd_KexAlgorithms: ecdh-sha2-nistp521
          sshd_Ciphers: aes256-ctr
          sshd_MACs: hmac-sha2-512-etm@openssh.com
          sshd_HostKeyAlgorithms: rsa-sha2-512,rsa-sha2-256

      RHEL 9 관리 노드에서 시스템 역할은 암호화 옵션이 자동으로 적용되는 /etc/ssh/sshd_config.d/00-ansible_system_role.conf 파일에 구성을 씁니다. sshd_config_file 변수를 사용하여 파일을 변경할 수 있습니다. 그러나 구성이 효과적임을 확인하려면 구성된 암호화 정책을 포함하는 /etc/ssh/sshd_config.d/50-redhat.conf 파일을 사전 지정하는 파일 이름을 사용합니다. 자세한 내용은 시스템 전체 암호화 정책 옵트아웃 예를 참조하십시오.

      RHEL 8 관리 노드에서 sshd_sysconfig_override_crypto_policysshd_sysconfig 변수를 true 로 설정하여 재정의를 활성화해야 합니다.

      rhel_system_roles.sshd RHEL 시스템 역할의 다음 변수를 사용하여 SSH 서버에서 구성을 추가로 사용자 지정할 수 있습니다.

      sshd_Ciphers
      암호(예: aes128-ctr,aes192-ctr ) 또는 aes256-ctr.
      sshd_MACs
      예를 들어 hmac-sha2-256,hmac-sha2-512 또는 hmac-sha1 과 같은 MAC을 선택할 수 있습니다.
      sshd_HostKeyAlgorithms
      공개 키 알고리즘을 선택할 수 있습니다(예: ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa, ssh-dss ).
      sshd_KexAlgorithms

      키 교환 알고리즘을 선택할 수 있습니다. 예를 들어 ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1 또는 diffie-hellman-group-exchange-sha256.

      더 많은 변수와 가능한 값은 sshd_config(5) 도움말 페이지를 참조하십시오.

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

    $ ansible-playbook <cryptographic-playbook.yml>

검증

  1. 자세한 SSH 연결을 사용하여 절차의 성공 여부를 확인하고 다음 출력에서 정의된 변수를 확인할 수 있습니다.

    $ ssh -vvv localhost
    ...
    debug2: peer server KEXINIT proposal
    debug2: KEX algorithms: ecdh-sha2-nistp521
    debug2: host key algorithms: rsa-sha2-512,rsa-sha2-256
    debug2: ciphers ctos: aes256-ctr
    debug2: ciphers stoc: aes256-ctr
    debug2: MACs ctos: hmac-sha2-512-etm@openssh.com
    debug2: MACs stoc: hmac-sha2-512-etm@openssh.com
    ...