SSH 접속 시 가장 흔하게 발생하는 보안 취약점은 기본 포트(22번)를 사용하고 비밀번호 기반 인증에만 의존하는 무차별 대입 공격(Brute Force Attack)입니다. 이 위험으로부터 서버를 효과적으로 보호하기 위해 필수적으로 적용해야 할 방어 방법 5가지는 포트 변경, 공개키 기반 인증 사용, 루트 계정 직접 접속 차단, Fail2Ban을 이용한 접근 제한, 그리고 방화벽을 통한 명시적 포트 개방입니다. 이 체크리스트를 단계별로 점검하면 대부분의 일반적인 자동화된 공격으로부터 서버 보안 수준을 현저히 높일 수 있습니다.
SSH 취약점 공격의 이해: 왜 보안 점검이 필수인가?
SSH(Secure Shell)는 리눅스 및 유닉스 기반 서버에서 원격으로 안전하게 접속하고 관리하는 핵심 프로토콜입니다. 높은 편리성 덕분에 전 세계적으로 가장 많이 사용되는 원격 접속 수단입니다. 하지만 이 편리함이 보안 관리에 소홀할 경우 심각한 위험에 노출될 수 있습니다.
실제 서버 운영 사례를 분석하면, 비밀번호 로그인 상태로 SSH 포트만 기본 설정으로 열어두는 것만으로도 몇 분 안에 자동화된 무차별 공격의 표적이 될 위험이 높습니다. 이러한 취약점은 단순히 비밀번호가 약해서 발생하는 문제가 아닙니다. 공격자들이 가장 예측하기 쉬운 기본 설정 자체에 구조적인 취약점이 존재하기 때문입니다.
가장 위험한 공격 유형은 무차별 대입 공격입니다. 공격자들은 자동화된 도구를 사용하여 수많은 사용자 이름과 비밀번호 조합을 대량으로 시도하며 서버 접근을 시도합니다. 이 과정에서 공격자들은 기본 포트인 22번을 주 타겟으로 삼기 때문에, 방어하기가 매우 용이한 목표물이 됩니다.
핵심 통계: Verizon 2023년 데이터 유출 보고서에 따르면, 전체 침해 사건의 상당 부분이 약하거나 도난당한 자격 증명(Credentials)을 통해 발생했습니다. 이는 SSH 계정 관리가 곧 서버 보안의 핵심임을 명확히 보여줍니다.
SSH 보안 강화를 위한 핵심 방어 전략 5단계
효과적인 SSH 보안은 단 하나의 설정으로 완성되지 않습니다. 여러 계층의 방어막을 구축하는 다중 방어(Defense in Depth) 전략이 필수적입니다. 아래 제시된 5가지 필수 방어책을 순서대로 점검하고 적용하는 것이 가장 효율적입니다.
1. SSH 기본 포트 변경 (Port Obscurity)
가장 먼저 취해야 할 조치는 SSH 기본 포트인 22번을 변경하는 것입니다. 기본 포트를 그대로 사용하면, 공격자들은 전 세계의 자동화된 공격 봇들이 가장 먼저 스캔하는 ‘기본 경로’를 통해 쉽게 타겟이 됩니다.
포트를 2222와 같이 일반적이지 않은 포트로 변경하는 것만으로도 공격 시도의 상당 부분을 회피할 수 있는 효과를 얻게 됩니다. 주의할 점은 포트를 변경했다면, 반드시 방화벽(예: UFW) 규칙을 수정하여 새로운 포트로의 외부 접속을 허용하도록 명시해야 한다는 것입니다.
| 설정 항목 | 변경 전 (기본값) | 권장 변경 사항 |
|---|---|---|
| 포트 번호 | 22 | 2222 또는 임의의 높은 포트 번호 |
| 목적 | 기본 노출 | 자동화된 스캐너로부터 은폐 |
2. SSH 키 기반 인증 사용 (Password Authentication 비활성화)
비밀번호 기반 인증은 무차별 대입 공격(Brute Force Attack)에 취약합니다. 가장 안전한 방법은 SSH 키 페어(Public/Private Key)를 이용한 인증 방식을 사용하는 것입니다.
- 조치 사항: SSH 설정 파일(
/etc/ssh/sshd_config)에서PasswordAuthentication no로 설정하고, 키 기반 인증만 허용해야 합니다.
3. Fail2Ban 설치 및 활성화
Fail2Ban은 서버에 대한 반복적인 로그인 실패 시도를 감지하여, 해당 IP 주소를 방화벽(iptables 등)에 의해 일시적으로 차단하는 도구입니다. 이는 무차별 대입 공격을 원천적으로 차단하는 가장 효과적인 방법 중 하나입니다.
4. 사용자 계정 최소화 및 제한적 접근 허용
실제 운영에 필요한 사용자 계정만 생성하고, 해당 계정들에 대해서만 SSH 접속을 허용해야 합니다. 불필요한 서비스 포트나 계정은 외부로부터 접근하지 못하도록 방화벽 규칙을 엄격하게 적용해야 합니다.
5. 정기적인 보안 패치 및 감사 수행
운영체제(OS)와 SSH 서버 소프트웨어(OpenSSH)는 항상 최신 보안 패치가 적용되어야 합니다. 또한, 누가, 언제, 어떤 목적으로 접속했는지 기록하는 감사 로그(Audit Log)를 주기적으로 검토해야 합니다.
요약 권장 보안 조치 순서:
- 포트 변경 (22 -> 임의의 포트)
- 키 인증 강제 (PasswordAuthentication no)
- Fail2Ban 설치 (Brute Force 방어)
- 최소 권한 원칙 적용 (필요한 서비스만 개방)