Red Hat Training

A Red Hat training course is available for RHEL 8

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

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

2.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 사전 또는 sshd_<OptionName > 변수를 사용하여 전체 구성 기본값 세트를 지정합니다. 기본값은 false입니다.
sshd_manage_service
false 로 설정하면 서비스가 관리되지 않으므로 부팅 시 활성화되지 않고 시작 또는 다시 로드되지 않습니다. Ansible service 모듈이 현재 AIX에 대해 활성화되지 않기 때문에 컨테이너 또는 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

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

sshd:
  Compression: yes
  ListenAddress:
    - 0.0.0.0

sshd_config(5)sshd 사전의 모든 옵션을 나열합니다.

sshd_<OptionName>

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

sshd_Compression: no

sshd_config(5)sshd 에 대한 모든 옵션을 나열합니다.

sshd_manage_firewall

기본 포트 22 와 다른 포트를 사용하는 경우 이 변수를 true 로 설정합니다. true 로 설정하면 sshd 역할은 firewall 역할을 사용하여 포트 액세스를 자동으로 관리합니다.

참고

sshd_manage_firewall 변수는 포트만 추가할 수 있습니다. 포트를 제거할 수 없습니다. 포트를 제거하려면 방화벽 시스템 역할을 직접 사용합니다. 방화벽 시스템 역할을 사용하여 포트를 관리하는 방법에 대한 자세한 내용은 시스템 역할을 사용하여 포트 구성을 참조하십시오.

sshd_manage_selinux

기본 포트 22 와 다른 포트를 사용하는 경우 이 변수를 true 로 설정합니다. true 로 설정하면 sshd 역할은 selinux 역할을 사용하여 포트 액세스를 자동으로 관리합니다.

참고

sshd_manage_selinux 변수는 포트만 추가할 수 있습니다. 포트를 제거할 수 없습니다. 포트를 제거하려면 selinux 시스템 역할을 직접 사용합니다.

sshd_matchsshd_match_1sshd_match_9로 재정의
사전 목록 또는 일치 섹션의 사전만 표시합니다. 이러한 변수는 sshd 사전에 정의된 대로 일치 블록을 재정의하지 않습니다. 결과 구성 파일에 모든 소스가 반영됩니다.
sshd_backup
false 로 설정하면 원래 sshd_config 파일이 백업되지 않습니다. 기본값은 true 입니다.

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 8 및 이전 버전을 기반으로 하는 시스템에서 이 변수는 sshd 서비스에 대한 추가 세부 정보를 구성합니다. true 로 설정하면 이 역할은 sshd_sysconfig_override_crypto_policysshd_sysconfig_use_strong_rng 변수를 기반으로 /etc/sysconfig/sshd 구성 파일도 관리합니다. 기본값은 false입니다.
sshd_sysconfig_override_crypto_policy

RHEL 8에서 true 로 설정하면 sshd 사전 또는 sshd_<OptionName > 형식에서 다음 구성 옵션을 사용하여 시스템 전체 암호화 정책을 덮어쓸 수 있습니다.

  • 암호화
  • macs
  • GSSAPIKexAlgorithms
  • GSSAPIKeyExchange (FIPS 전용)
  • KexAlgorithms
  • HostKeyAlgorithms
  • PubkeyAcceptedKeyTypes
  • CASignatureAlgorithms

    기본값은 false입니다.

    RHEL 9에서는 이 변수가 적용되지 않습니다. 대신 sshd 사전 또는 sshd_<OptionName > 형식에서 다음 구성 옵션을 사용하여 시스템 전체 암호화 정책을 덮어쓸 수 있습니다.

  • 암호화
  • macs
  • GSSAPIKexAlgorithms
  • GSSAPIKeyExchange (FIPS 전용)
  • KexAlgorithms
  • HostKeyAlgorithms
  • PubkeyAcceptedAlgorithms
  • HostbasedAcceptedAlgorithms
  • CASignatureAlgorithms
  • RequiredRSASize

    sshd_config_file 변수에 정의된 드롭인 디렉터리의 사용자 지정 구성 파일에 이러한 옵션을 입력하면 암호화 정책이 포함된 /etc/ssh/sshd_config.d/50-redhat.conf 파일 앞에 사전 정의된 파일 이름을 사용합니다.

sshd_sysconfig_use_strong_rng
RHEL 8 및 이전 버전을 기반으로 하는 시스템에서 이 변수는 sshd 가 인수로 지정된 바이트 수를 사용하여 openssl 난수 생성기를 다시 만들 수 있습니다. 기본값은 0으로 이 기능을 비활성화합니다. 시스템에 하드웨어 임의 번호 생성기가 없는 경우 이 값을 설정하지 마십시오.