1.8.2. sshd RHEL 시스템 역할을 사용하여 OpenSSH 서버 구성
sshd RHEL 시스템 역할을 사용하여 보안 원격 액세스를 위해 여러 OpenSSH 서버를 구성할 수 있습니다.
이 역할은 다음과 같은 이름을 제공하여 원격 사용자를 위한 보안 통신 환경을 보장합니다.
- 원격 클라이언트에서 들어오는 SSH 연결 관리
- 인증 정보 확인
- 안전한 데이터 전송 및 명령 실행
SSHD 구성을 변경하는 다른 RHEL 시스템 역할과 함께 sshd RHEL 시스템 역할을 사용할 수 있습니다(예: Red Hat Enterprise Linux RHEL 시스템 역할의 ID 관리). 구성을 덮어쓰지 않도록 sshd RHEL 시스템 역할은 네임스페이스(RHEL 8 및 이전 버전) 또는 드롭인 디렉터리(RHEL 9)를 사용하는지 확인합니다.
사전 요구 사항
- 컨트롤 노드와 관리형 노드를 준비했습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는 이러한 노드에 대한
sudo권한이 있습니다.
프로세스
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml)을 생성합니다.--- - name: SSH server configuration hosts: managed-node-01.example.com tasks: - name: Configure sshd to prevent root and password login except from particular subnet ansible.builtin.include_role: name: redhat.rhel_system_roles.sshd vars: sshd_config: PermitRootLogin: no PasswordAuthentication: no Match: - Condition: "Address 192.0.2.0/24" PermitRootLogin: yes PasswordAuthentication: yes예제 플레이북에 지정된 설정은 다음과 같습니다.
PasswordAuthentication: yes|no-
OpenSSH 서버(
sshd)가 사용자 이름과 암호 조합을 사용하는 클라이언트의 인증을 수락하는지 여부를 제어합니다. 일치:-
match 블록을 사용하면
root사용자가 서브넷192.0.2.0/24에서만 암호를 사용하여 로그인할 수 있습니다.
플레이북에 사용된 역할 변수 및 OpenSSH 구성 옵션에 대한 자세한 내용은 제어 노드의
/usr/share/ansible/roles/rhel-system-roles.sshd/README.md파일 및sshd_config(5)매뉴얼 페이지를 참조하십시오.플레이북 구문을 확인합니다.
$ ansible-playbook --syntax-check ~/playbook.yml이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
Playbook을 실행합니다.
$ ansible-playbook ~/playbook.yml
검증
SSH 서버에 로그인합니다.
$ ssh <username>@<ssh_server>SSH 서버에서
sshd_config파일의 내용을 확인합니다.$ cat /etc/ssh/sshd_config.d/00-ansible_system_role.conf # # Ansible managed # PasswordAuthentication no PermitRootLogin no Match Address 192.0.2.0/24 PasswordAuthentication yes PermitRootLogin yes192.0.2.0/24서브넷에서 root로 서버에 연결할 수 있는지 확인합니다.IP 주소를 확인합니다.
$ hostname -I 192.0.2.1IP 주소가
192.0.2.1-192.0.2.254범위 내에 있는 경우 서버에 연결할 수 있습니다.root로 서버에 연결합니다 :$ ssh root@<ssh_server>