SSH(Secure Shell)는 원격 서버에 암호화된 통신으로 접속할 수 있게 해주는 프로토콜입니다. 서버 관리자는 대부분의 작업을 SSH를 통해 수행하기 때문에 올바른 설정과 보안 관리가 매우 중요합니다.

기본 접속 방법

ssh username@server_ip ssh -p 2222 username@server_ip   # 포트를 변경한 경우

비밀번호 대신 키 기반 인증 사용하기

비밀번호 인증은 무차별 대입 공격에 취약할 수 있습니다. SSH 키 페어(공개키/개인키)를 사용하면 훨씬 안전하게 접속할 수 있습니다.

ssh-keygen -t ed25519 -C "my-server-key" ssh-copy-id username@server_ip

위 명령으로 키를 생성하고 서버에 공개키를 등록하면, 이후 개인키만으로 비밀번호 없이 로그인할 수 있습니다.

보안을 강화하는 설정

/etc/ssh/sshd_config 파일에서 다음과 같은 설정을 조정하면 보안을 크게 강화할 수 있습니다.

  • PermitRootLogin no: root 계정으로 직접 로그인하는 것을 차단합니다.
  • PasswordAuthentication no: 비밀번호 인증을 비활성화하고 키 인증만 허용합니다.
  • Port 22222: 기본 포트를 변경해 자동화된 스캔 공격을 줄입니다.

Fail2ban으로 추가 방어하기

Fail2ban은 짧은 시간 내 반복적으로 로그인에 실패한 IP를 자동으로 차단해주는 도구입니다. 설치 후 기본 설정만으로도 무차별 대입 공격에 대한 방어력을 크게 높일 수 있습니다.

정리

SSH는 서버 관리의 출입문과 같습니다. 키 기반 인증, 포트 변경, Fail2ban 도입만으로도 대부분의 자동화된 공격을 효과적으로 막을 수 있으니 서버를 구축한 직후 반드시 적용하는 것을 권장합니다.