최근 사이버 공격이 지속적으로 증가함에 따라 서버 접근 보안의 중요성이 더욱 부각되고 있습니다. 특히 원격 관리를 위한 기본 프로토콜인 SSH는 자주 노출되는 대상이기 때문에 강화된 보안 조치가 필수적입니다. 이 글에서는 효과적인 을 중심으로 서버를 외부 위협으로부터 보호하는 방법을 다룹니다. 패스워드 기반 인증의 취약점을 극복하고, 기본 포트를 변경함으로써 자동화된 공격을 방지할 수 있습니다. 이러한 설정을 통해 시스템 관리자는 보다 안전하고 신뢰성 있는 원격 접속 환경을 구축할 수 있습니다.
SSH 보안 설정: 키 기반 인증과 포트 변경의 중요성
SSH 보안 설정: 키 기반 인증과 포트 변경은 서버 관리에서 외부 공격으로부터 시스템을 보호하기 위한 핵심적인 조치입니다. 기본 포트인 22번을 그대로 사용하거나 패스워드 기반 인증만을 사용하면 브루트포스 공격에 쉽게 노출될 수 있습니다. 따라서 공개 키와 개인 키를 이용한 인증 방식을 도입하고, SSH 연결 포트를 비표준 포트로 변경함으로써 보안 수준을 현저히 높일 수 있습니다. 또한, 이러한 조치는 불필요한 로그 기록과 자원 낭비를 줄이고, 정상적인 관리 작업만을 허용하도록 환경을 구성하는 데 기여합니다.
키 기반 인증이란 무엇인가?
키 기반 인증은 사용자가 비밀번호 대신 암호화된 키 쌍(공개 키와 개인 키)을 사용하여 서버에 인증하는 방식입니다. 공개 키는 서버에 저장되고, 개인 키는 사용자 단말기에 안전하게 보관됩니다. 이 방식은 비밀번호 기반 인증보다 훨씬 안전하며, 자동화된 스크립트나 원격 관리에서도 효율적으로 사용됩니다. SSH 보안 설정: 키 기반 인증과 포트 변경을 통해 브루트포스 공격이나 무차별 대입 공격을 효과적으로 차단할 수 있습니다.
기본 SSH 포트 변경의 보안 효과
SSH는 기본적으로 TCP 포트 22번을 사용하지만, 이는 공격자들이 가장 먼저 스캔하는 대상입니다. 포트를 다른 번호(예: 2222, 2200 등)로 변경하면 자동화된 스크립트나 무차별 공격의 타겟에서 벗어날 수 있습니다. 포트 변경은 단순한 보안 우회 조치(through obscurity)로 간주될 수 있으나, 실질적으로 로그인 시도 수를 급격히 줄이고 시스템 자원을 보호하는 데 효과적입니다. SSH 보안 설정: 키 기반 인증과 포트 변경 전략은 포트 변경을 보조 수단으로 적극 활용합니다.
키 생성 및 서버에 등록하는 방법
SSH 키는 일반적으로 `ssh-keygen` 명령어로 생성할 수 있습니다. 이 명령어는 RSA, Ed25519 등의 알고리즘을 지원하며, Ed25519가 보안성과 성능 면에서 권장됩니다. 생성된 공개 키(`id ed25519.pub` 등)는 서버의 `~/.ssh/authorized keys` 파일에 추가되어야 합니다. 이 과정에서 파일 권한 설정(`chmod 600 authorized keys`, `chmod 700 .ssh`)도 중요하며, 권한이 잘못 설정되면 SSH는 키 인증을 거부합니다. 이러한 절차는 SSH 보안 설정: 키 기반 인증과 포트 변경의 실질적인 구현 단계입니다.
SSH 설정 파일(sshd config) 수정 가이드
서버의 `/etc/ssh/sshd config` 파일을 수정하여 보안 설정을 적용할 수 있습니다. 주요 설정 항목으로는 `Port`로 포트 번호 변경, `PasswordAuthentication no`로 패스워드 인증 비활성화, `PubkeyAuthentication yes`로 키 기반 인증 활성화 등이 있습니다. 수정 후에는 반드시 `systemctl restart sshd` 또는 `service ssh restart` 명령으로 SSH 데몬을 재시작해야 변경 사항이 적용됩니다. 설정 오류는 원격 접속 차단으로 이어질 수 있으므로, 로컬 콘솔 접근이 가능한 상태에서 테스트하는 것이 안전합니다. 이 조치는 SSH 보안 설정: 키 기반 인증과 포트 변경의 핵심 구성 요소입니다.
보안 설정 적용 후 확인 및 테스트 절차
설정 변경 후에는 새로운 포트와 키를 사용해 SSH 접속 테스트를 수행해야 합니다. 예를 들어, `ssh -p 2222 -i ~/.ssh/id ed25519 user@server ip` 명령어로 접속을 시도합니다. 동시에 기존 포트(22)나 패스워드 인증이 더 이상 작동하지 않는지도 확인해야 합니다. 로그 파일(`/var/log/auth.log` 또는 `/var/log/secure`)을 분석하여 잘못된 인증 시도가 기록되는지도 점검하는 것이 좋습니다. 이러한 검증 절차는 SSH 보안 설정: 키 기반 인증과 포트 변경의 성공적인 적용을 보장합니다.
| 설정 항목 | 권장 값 | 설명 |
| Port | 비표준 포트 (예: 2222) | 기본 포트 22를 변경하여 자동화 공격 회피 |
| PasswordAuthentication | no | 비밀번호 인증 비활성화, 키 인증만 허용 |
| PubkeyAuthentication | yes | 공개 키 기반 인증 활성화 |
| PermitRootLogin | no 또는 prohibit-password | 루트 계정의 직접 로그인 금지 |
| Protocol | 2 | 보안이 취약한 SSHv1 비활성화 |
사례·비즈니스
SSH 키 기반 인증이란 무엇인가요?
SSH 키 기반 인증은 공개키와 개인키를 사용하여 사용자를 인증하는 보안 방식입니다. 이 방법은 패스워드 기반 인증보다 훨씬 더 안전하며, 무차별 대입 공격(Brute-force attack)에 강합니다. 서버에는 공개키가 저장되고, 클라이언트는 개인키를 사용해 서버에 접근 권한을 증명합니다.
SSH 포트를 기본값(22번)에서 변경해야 하는 이유는 무엇인가요?
기본 SSH 포트인 22번은 자동화된 공격의 주요 대상입니다. 포트를 비표준 번호로 변경하면 무차별 대입 공격이나 악의적인 스캐닝을 줄일 수 있어 보안성을 높일 수 있습니다. 다만, 방화벽 설정과 서비스 구성 파일에서 해당 포트가 올바르게 열려 있어야 합니다.
공개키와 개인키는 어떻게 생성하나요?
Linux 또는 macOS에서는 ssh-keygen 명령어를 사용해 키 쌍을 생성할 수 있습니다. 이 명령은 일반적으로 RSA 또는 Ed25519 알고리즘을 기반으로 키를 생성하며, 사용자는 저장 위치와 비밀번호(passphrase) 설정 여부를 선택할 수 있습니다. 생성된 공개키는 서버의 ~/.ssh/authorized keys 파일에 등록해야 합니다.
키 기반 인증 설정 후에도 패스워드 로그인이 가능한가요?
기본적으로는 키 기반 인증 외에도 패스워드 로그인이 활성화되어 있을 수 있습니다. 보안을 강화하려면 SSH 서버 설정 파일(/etc/ssh/sshd config)에서 PasswordAuthentication 항목을 no로 설정하고 SSH 서비스를 재시작해야 합니다. 이렇게 하면 오직 키를 가진 사용자만 접근할 수 있습니다.


