서버 관리자가 실수하기 쉬운SSH 설정 5가지 알아보기
서버 관리자가 실수하기 쉬운
SSH 설정 5가지 알아보기
# sshd_config 진단 & 권고 값 적용 가이드
SSH(Secure Shell)는 서버에 원격 접속할 때 쓰는 표준 프로토콜(포트 22)입니다. 설정 파일 /etc/ssh/sshd_config 한 줄 한 줄이 곧 서버의 방어선입니다. 이번 글에서는 KISA 가이드에서 "이 설정이면 취약함"으로 분류하는 대표 5가지 항목을 실제 진단표 형식으로 정리하고, 권고 값으로 수정하는 방법까지 다룹니다.
진단표 — 양호 / 취약 판별 및 권고 값
| # | 현재 값 (sshd_config) | 양호 / 취약 | 권고 수정값 |
|---|---|---|---|
| ① | PermitRootLogin yes | 취약 | no |
| ② | PasswordAuthentication yes | 취약 | no |
| ③ | MaxAuthTries 10 | 취약 | 3 이하 |
| ④ | X11Forwarding yes | 취약 | no |
| ⑤ | Banner none | 취약 | /etc/issue.net |
root 직접 원격 로그인 허용 → 브루트포스 1회 성공 시 서버 전체 즉시 장악
패스워드 인증 허용 → 브루트포스·패스워드 스프레이·크리덴셜 스터핑 공격 노출
로그인 실패 10회 허용 → 자동화 공격 도구가 반복 시도하기에 충분한 횟수
서버 대부분에서 불필요. 켜 두면 X11 터널로 GUI 원격 실행 공격면 확대
법적 경고 배너 없이 접속 허용 → 법적·정책적 고지 누락, 내부자 위협 억지력 상실
가장 위험한 항목은?
root 계정은 리눅스 서버의 최고 권한 계정입니다. 원격 로그인이 허용될 경우 공격자가 브루트포스 한 번만 성공해도 서버 전체를 즉시 장악할 수 있습니다. 별도의 권한 상승 단계 없이 모든 파일·프로세스·네트워크 설정을 변경·삭제할 수 있으며, 피해 복구가 사실상 불가능한 수준에 이릅니다.
수정된 sshd_config 스니펫
# ── 5개 항목 권고 값으로 수정 ────────────────────── PermitRootLogin no PasswordAuthentication no MaxAuthTries 3 X11Forwarding no Banner /etc/issue.net # ── 적용 방법 ────────────────────────────────────── $ sshd -t # 설정 문법 검증 $ systemctl restart sshd # SSH 데몬 재시작 $ systemctl status sshd # 서비스 상태 확인
PasswordAuthentication 비활성화 전 필수 선행 작업: 반드시 SSH 공개키(SSH Key)를 서버에 먼저 등록해야 합니다. 순서를 지키지 않고 재시작하면 모든 SSH 접속이 차단되어 콘솔 직접 접근이 필요해집니다.
경영진 보고 — 2줄 요약
취약 항목별 공격 시나리오 & MITRE ATT&CK
| 취약 설정 | 실제 공격 시나리오 | MITRE ATT&CK |
|---|---|---|
| PermitRootLogin yes | 브루트포스로 root 직접 탈취 → 서버 전체 장악 | T1078 |
| PasswordAuthentication yes | 패스워드 스프레이, 크리덴셜 스터핑 | T1110 |
| MaxAuthTries 10 | 자동화 도구로 10회씩 반복 시도 허용 | T1110.001 |
| X11Forwarding yes | X11 터널로 GUI 앱 원격 실행 | T1021 |
| Banner none | 법적 경고 없이 접속 → 내부자 위협 억지력 상실 | — |
Phase 3 연계 포인트
인증/인가 실패 연결
SSH 설정 취약점은 서버 측 인증 실패로 직결됩니다. 브루트포스 성공 = 계정 탈취 = 세션 하이재킹과 동일 결과.
Security Log Analyzer 연계
/var/log/auth.log 파싱 규칙 추가 → Isolation Forest로 비정상 로그인 패턴 이상 탐지 적용 예정.
실시간 위협 알림
MaxAuthTries 초과 이벤트 감지 → Slack Webhook으로 즉시 알림 전송하는 파이프라인 구축 예정.
핵심 요약 Checklist
- PermitRootLogin → no
- PasswordAuthentication → no
- MaxAuthTries → 3 이하
- X11Forwarding → no
- Banner → /etc/issue.net
- SSH Key 등록 먼저
- sshd -t로 검증 후 재시작
- auth.log 모니터링
'보안 공부' 카테고리의 다른 글
| 악성 코드 분석 - PE 파일 구조 (0) | 2026.05.28 |
|---|---|
| 악성 코드 분석 - 악성 코드 분석 개요 (0) | 2026.05.28 |
| 파일 업로드 취약점 (0) | 2026.05.11 |
| 크로스 사이트 스크립팅 (Cross-Site Scripting, XSS) (0) | 2026.05.06 |
| 웹사이트 보안 헤더, Python 3줄로 점검하기 (0) | 2026.05.04 |