[System Hardening] SSH 서비스 보안 강화하기: 안전한 원격 접속을 위한 가이드

IMKUNYOUNG·2024년 7월 6일
0

CKS

목록 보기
30/70

원격 서버 관리의 필수 도구인 SSH(Secure Shell)는 강력한 보안 기능을 제공하지만, 기본 설정으로는 잠재적 보안 취약점이 존재할 수 있습니다. 이번 포스트에서는 SSH 서비스를 보호하고 노트의 보안을 향상시키는 방법을 단계별로 살펴보겠습니다.

1. SSH 기본 구문 이해하기

SSH는 원격 Linux 서버에 로그인하고 명령을 실행하는 데 사용됩니다. 기본 구문은 다음과 같습니다:

ssh [사용자명@]호스트명

예를 들어, Node01 서버에 현재 로그인된 사용자 계정으로 접속하려면 다음과 같이 입력합니다:

ssh Node01

사용자명을 지정하려면:

ssh 사용자명@Node01

2. SSH 키를 사용한 비밀번호 없는 로그인

SSH 키는 원격 서버에 비밀번호 없이 안전하게 로그인할 수 있는 방법을 제공합니다. 이를 위해 다음 단계를 따릅니다:

1. 키 쌍 생성

클라이언트(예: 노트북)에서 다음 명령어로 키 쌍을 생성합니다:

ssh-keygen

이 명령을 실행하면 암호 구문을 입력하라는 메시지가 표시됩니다. 이는 선택 사항이지만 보안을 강화하는 데 유용합니다.

생성된 키는 기본적으로 다음 경로에 저장됩니다:

  • 공개 키: ~/.ssh/id_rsa.pub
  • 개인 키: ~/.ssh/id_rsa

2. 공개 키를 원격 서버에 복사

공개 키를 원격 서버에 복사하려면 다음 명령어를 사용합니다:

ssh-copy-id 사용자명@호스트명

이 명령어는 한 번의 비밀번호 입력을 요구하며, 이후에는 비밀번호 없이 로그인할 수 있습니다. 공개 키는 원격 서버의 ~/.ssh/authorized_keys 파일에 저장됩니다.

3. SSH 구성 파일 수정으로 보안 강화

SSH 서비스의 보안을 더욱 강화하기 위해 구성 파일을 수정합니다.

1. root 계정 로그인 비활성화

root 계정으로 직접 로그인하는 것은 보안상 위험합니다. 대신, 일반 사용자 계정으로 로그인하고 필요한 경우 sudo 명령을 사용해 권한을 상승시키는 것이 좋습니다.

SSH 구성 파일(/etc/ssh/sshd_config)에서 PermitRootLogin 설정을 다음과 같이 변경합니다:

PermitRootLogin no

2. 비밀번호 기반 로그인 비활성화

SSH 키를 사용한 비밀번호 없는 로그인을 활성화한 후에는 비밀번호 기반 로그인을 비활성화하는 것이 좋습니다.

sshd_config 파일에서 PasswordAuthentication 설정을 다음과 같이 변경합니다:

PasswordAuthentication no

4. 변경 사항 적용

구성 파일을 수정한 후 SSH 서비스를 다시 시작하여 변경 사항을 적용합니다:

sudo systemctl restart sshd

5. CIS 벤치마크 참조

추가적인 보안 설정에 대해서는 Linux용 CIS 벤치마크(섹션 5.2)를 참조하세요. 이 문서는 SSH 서비스 강화 시 고려해야 할 다양한 보안 모범 사례를 다룹니다.

마무리

이번 포스트에서는 SSH 서비스를 보호하고 원격 접속의 보안을 강화하는 방법을 알아보았습니다. 암호화 키 쌍을 사용하고, root 계정 로그인을 비활성화하며, 비밀번호 기반 로그인을 비활성화하는 것이 주요 포인트입니다. 이러한 설정을 통해 SSH 서비스의 보안을 크게 향상시킬 수 있습니다.

0개의 댓글