15장. ssh 및 sshd RHEL 시스템 역할을 사용하여 보안 통신 구성
관리자는 sshd
시스템 역할을 사용하여 SSH 서버를 구성하고 ssh
시스템 역할을 사용하여 Red Hat Ansible Automation Platform을 사용하여 동시에 여러 RHEL 시스템에서 SSH 클라이언트를 일관되게 설정할 수 있습니다.
15.1. ssh
서버 시스템 역할의 변수
sshd
시스템 역할 플레이북에서는 기본 설정 및 제한 사항에 따라 SSH 구성 파일에 대한 매개변수를 정의할 수 있습니다.
이러한 변수를 구성하지 않으면 System Role은 RHEL 기본값과 일치하는 sshd_config
파일을 생성합니다.
모든 경우에 부울이 sshd
구성에서 yes
및 no
로 올바르게 렌더링됩니다. 목록을 사용하여 여러 줄 구성 항목을 정의할 수 있습니다. 예를 들면 다음과 같습니다.
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_match
및sshd_match_1
을sshd_match_9
로 재정의-
사전 목록 또는 일치 섹션의 사전만 표시합니다. 이러한 변수는
sshd
사전에 정의된 대로 일치 블록을 재정의하지 않습니다. 결과 구성 파일에 모든 소스가 반영됩니다. sshd_backup
-
false
로 설정하면 원래sshd_config
파일이 백업되지 않습니다. 기본값은true
입니다.
sshd
시스템 역할에 대한 보조 변수
이러한 변수를 사용하여 지원되는 각 플랫폼에 해당하는 기본값을 재정의할 수 있습니다.
sshd_packages
- 이 변수를 사용하여 설치된 패키지의 기본 목록을 재정의할 수 있습니다.
sshd_config_owner
,sshd_config_group
및sshd_config_mode
-
이 역할에서 이러한 변수를 사용하여 생성하는
openssh
구성 파일의 소유권 및 권한을 설정할 수 있습니다. sshd_config_file
-
이 역할이
openssh
서버 구성이 생성된 경로입니다. sshd_config_namespace
이 변수의 기본값은 null입니다. 즉, 역할이 시스템 기본값을 포함하여 구성 파일의 전체 콘텐츠를 정의함을 의미합니다. 또는 이 변수를 사용하여 드롭인 디렉터리를 지원하지 않는 시스템의 단일 플레이북에 있는 다른 역할 또는 여러 위치에서 이 역할을 호출할 수 있습니다.
sshd_skip_defaults
변수는 무시되며 이 경우 시스템 기본값이 사용되지 않습니다.이 변수를 설정하면 역할이 지정된 구성을 지정된 네임스페이스 아래에 기존 구성 파일의 구성 스니펫에 배치합니다. 시나리오에 역할을 여러 번 적용해야 하는 경우 각 애플리케이션에 대해 다른 네임스페이스를 선택해야 합니다.
참고openssh
구성 파일의 제한 사항은 계속 적용됩니다. 예를 들어 구성 파일에 지정된 첫 번째 옵션만 대부분의 구성 옵션에 적용됩니다.기술적으로, 역할은 기존 구성 파일의 이전 일치 블록과 관계없이 적용되도록 다른 일치 블록을 포함하지 않는 한 "Match all" 블록에 코드 조각을 배치합니다. 이를 통해 다양한 역할 호출에서 충돌하지 않는 옵션을 구성할 수 있습니다.
sshd_binary
-
openssh
의sshd
실행 파일의 경로입니다. 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_policy
및sshd_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
으로 이 기능을 비활성화합니다. 시스템에 하드웨어 임의 번호 생성기가 없는 경우 이 값을 설정하지 마십시오.
추가 리소스
-
/usr/share/ansible/roles/rhel-system-roles.sshd/README.md
파일 -
/usr/share/doc/rhel-system-roles/sshd/
디렉터리