12장. ssh 시스템 역할을 사용하여 보안 통신 구성

관리자는 sshd 시스템 역할을 사용하여 SSH 서버 및 ssh 시스템 역할을 구성하여 Ansible Core 패키지를 사용하여 동시에 여러 RHEL 시스템에서 SSH 클라이언트를 일관되게 구성할 수 있습니다.

12.1. SSH Server 시스템 역할 변수

sshd 시스템 역할 플레이북에서는 기본 설정 및 제한 사항에 따라 SSH 구성 파일의 매개변수를 정의할 수 있습니다.

이러한 변수를 구성하지 않으면 시스템 역할은 RHEL 기본값과 일치하는 sshd_config 파일을 생성합니다.

모든 경우에 부울이 sshd 구성에서 yesno로 올바르게 렌더링됩니다. 목록을 사용하여 여러 줄 구성 항목을 정의할 수 있습니다. 예를 들면 다음과 같습니다.

sshd_ListenAddress:
  - 0.0.0.0
  - '::'

다음과 같이 렌더링됩니다.

ListenAddress 0.0.0.0
ListenAddress ::

sshd 시스템 역할에 대한 변수

sshd_enable
False로 설정하면 역할이 완전히 비활성화됩니다. 기본값은 True입니다.
sshd_skip_defaults
True 로 설정하면 시스템 역할이 기본값이 적용되지 않습니다. 대신 sshd dict 또는 sshd_Key 변수를 사용하여 전체 구성 기본값 세트를 지정합니다. 기본값은 False입니다.
sshd_manage_service
False로 설정하면 서비스가 관리되지 않으므로 부팅 시 활성화되지 않으며 시작 또는 다시 로드되지 않습니다. Ansible service 모듈이 현재 AIX에 대해 enabled되지 않으므로 컨테이너 또는 AIX 내부에서 실행되는 경우를 제외하고 기본값은 True입니다.
sshd_allow_reload
False로 설정하면 구성이 변경된 후sshd가 다시 로드되지 않습니다. 이는 문제 해결에 도움이 될 수 있습니다. 변경된 구성을 적용하려면 sshd를 수동으로 다시 로드합니다. 기본값은 AIX를 제외하고 sshd_manage_service 와 동일한 값입니다. 여기서 sshd_manage_service 기본값은 False 이지만 sshd_allow_reload 의 기본값은 True 입니다.
sshd_install_service

True 로 설정하면 역할은 sshd 서비스에 대한 서비스 파일을 설치합니다. 이렇게 하면 운영 체제에 제공된 파일이 재정의됩니다. 두 번째 인스턴스를 구성하고 sshd_service 변수도 변경하지 않는 한 True 로 설정하지 마십시오. 기본값은 False입니다.

역할은 다음 변수에서 가리키는 파일을 템플릿으로 사용합니다.

sshd_service_template_service (default: templates/sshd.service.j2)
sshd_service_template_at_service (default: templates/sshd@.service.j2)
sshd_service_template_socket (default: templates/sshd.socket.j2)
sshd_service
이 변수는 두 번째 sshd 서비스 인스턴스를 구성하는 데 유용한 sshd 서비스 이름을 변경합니다.
sshd

구성이 포함된 dict입니다. 예를 들면 다음과 같습니다.

sshd:
  Compression: yes
  ListenAddress:
    - 0.0.0.0
sshd_OptionName

dict 대신 sshd_ 접두사와 옵션 이름으로 구성된 간단한 변수를 사용하여 옵션을 정의할 수 있습니다. simple 변수는 sshd dict의 값을 재정의합니다. 예를 들면 다음과 같습니다.

sshd_Compression: no
sshd_matchsshd_match_1 to sshd_match_9
dicts 목록 또는 일치 섹션의 경우 dict에 불과합니다. 이러한 변수는 sshd dict에 정의된 대로 일치하는 블록을 재정의하지 않습니다. 결과 구성 파일에 모든 소스가 반영됩니다.

sshd 시스템 역할의 보조 변수

이러한 변수를 사용하여 지원되는 각 플랫폼에 해당하는 기본값을 재정의할 수 있습니다.

sshd_packages
이 변수를 사용하여 설치된 패키지의 기본 목록을 재정의할 수 있습니다.
sshd_config_owner, sshd_config_group, and sshd_config_mode
이 역할에서 이러한 변수를 사용하여 생성하는 openssh 구성 파일의 소유권 및 권한을 설정할 수 있습니다.
sshd_config_file
이 역할이 openssh 서버 구성이 생성된 경로입니다.
sshd_config_namespace

이 변수의 기본값은 null입니다. 즉, 역할이 시스템 기본값을 포함하여 구성 파일의 전체 콘텐츠를 정의함을 의미합니다. 또는 이 변수를 사용하여 드롭인 디렉터리를 지원하지 않는 시스템의 단일 플레이북에 있는 다른 역할 또는 여러 위치에서 이 역할을 호출할 수 있습니다. sshd_skip_defaults 변수는 무시되며 이 경우 시스템 기본값이 사용되지 않습니다.

이 변수를 설정하면 역할이 지정된 구성을 지정된 네임스페이스 아래에 기존 구성 파일의 구성 스니펫에 배치합니다. 시나리오에 역할을 여러 번 적용해야 하는 경우 각 애플리케이션에 대해 다른 네임스페이스를 선택해야 합니다.

참고

openssh 구성 파일의 제한 사항은 계속 적용됩니다. 예를 들어 구성 파일에 지정된 첫 번째 옵션만 대부분의 구성 옵션에 적용됩니다.

기술적으로, 역할은 기존 구성 파일의 이전 일치 블록과 관계없이 적용되도록 다른 일치 블록을 포함하지 않는 한 "Match all" 블록에 코드 조각을 배치합니다. 이를 통해 다양한 역할 호출에서 충돌하지 않는 옵션을 구성할 수 있습니다.

sshd_binary
opensshsshd 실행 파일의 경로입니다.
sshd_service
sshd 서비스의 이름입니다. 기본적으로 이 변수에는 대상 플랫폼에서 사용하는 sshd 서비스의 이름이 포함됩니다. 또한 역할에서 sshd_install_service 변수를 사용하는 경우 사용자 지정 sshd 서비스의 이름을 설정할 수도 있습니다.
sshd_verify_hostkeys
기본값은 auto 입니다. auto로 설정하면 생성된 구성 파일에 있는 모든 호스트 키가 나열되고 존재하지 않는 경로가 생성됩니다. 또한 권한 및 파일 소유자는 기본값으로 설정됩니다. 이 기능은 배포 단계에서 역할을 사용하여 첫 번째 시도에서 서비스를 시작할 수 있는지 확인하는 데 유용합니다. 이 확인을 비활성화하려면 이 변수를 빈 목록 []으로 설정합니다.
sshd_hostkey_owner, sshd_hostkey_group, sshd_hostkey_mode
이러한 변수를 사용하여 sshd_verify_hostkeys에서 호스트 키에 대한 소유권 및 권한을 설정합니다.
sshd_sysconfig
RHEL 기반 시스템에서 이 변수는 sshd 서비스에 대한 추가 세부 정보를 구성합니다. true 로 설정하면 이 역할은 다음 구성에 따라 /etc/sysconfig/sshd 구성 파일도 관리합니다. 기본값은 false입니다.
sshd_sysconfig_override_crypto_policy
RHEL에서 true 로 설정하면 이 변수가 시스템 전체 암호화 정책을 재정의합니다. 기본값은 false입니다.
sshd_sysconfig_use_strong_rng
RHEL 기반 시스템에서 이 변수는 sshd 에서 인수로 지정된 바이트 수를 사용하여 openssl 임의 번호 생성기를 다시 작성할 수 있습니다. 기본값은 0 으로, 이 기능을 비활성화합니다. 시스템에 하드웨어 임의 번호 생성기가 없는 경우 이 값을 설정하지 마십시오.