Linux 시스템 보안 기초 · 13/50편
이 글은
리눅스 시스템 기초·파일 · 권한 · 사용자 관리·서비스 · 프로세스 관리시리즈를 선행 학습으로 두고, 동일한 개념을 보안관제(SOC) 관점에서 한 단계 확장합니다.
SSH 보안의 대부분은 sshd_config 한 파일에서 결정됩니다. 잘못된 한 줄이 서버를 통째로 노출시키고, 올바른 몇 줄이 공격 표면을 크게 줄입니다. 이번 편은 실무에서 반드시 점검하는 핵심 지시어를 정리합니다.
핵심 지시어와 권장값입니다.
| 지시어 | 권장값 | 이유 |
|---|---|---|
| PermitRootLogin | no / prohibit-password | root 직접 로그인 차단 |
| PasswordAuthentication | no | 무차별 대입 차단 |
| PubkeyAuthentication | yes | 키 인증 사용 |
| AllowUsers/AllowGroups | 명시 | 접근 주체 최소화 |
| PermitEmptyPasswords | no | 빈 비밀번호 금지 |
| MaxAuthTries | 3~4 | 시도 제한 |
| LoginGraceTime | 20~30 | 미인증 세션 방치 차단 |
기본 노출 서버 하드닝 후
root 로그인 허용 → PermitRootLogin no
비밀번호 허용 → PasswordAuthentication no
누구나 접속 → AllowGroups sshusers
무제한 시도 → MaxAuthTries 3
─────────────── ───────────────
넓은 공격 표면 좁은 공격 표면
sshd는 시작 시 /etc/ssh/sshd_config를 읽어 적용합니다. Match 블록으로 특정 사용자/그룹/주소에 다른 정책을 줄 수도 있습니다. 설정 변경 후에는 문법 검사(sshd -t)와 재적용(systemctl reload ssh)이 필요합니다.
중요한 점: 파일에 여러 값이 있으면 먼저 나온 값이 우선입니다. 또 실제 적용값은 파일이 아니라 sshd -T(유효 설정 덤프)로 확인해야 정확합니다 — 포함된 conf.d 조각까지 반영되기 때문입니다.
# 문법 검사 (변경 후 필수)
sudo sshd -t
# 실제 적용되는 유효 설정 확인 (파일보다 정확)
sudo sshd -T | grep -E 'permitrootlogin|passwordauthentication|maxauthtries|allowusers|allowgroups|permitemptypasswords'
# 변경 적용
sudo systemctl reload ssh # Ubuntu (RHEL: reload sshd)
실습 컨테이너에서 sshd -T 실제 실행 결과입니다. (실제 캡처)
$ sudo sshd -T | grep -E 'permitrootlogin|passwordauthentication|maxauthtries|permitemptypasswords'
permitrootlogin prohibit-password
passwordauthentication yes
permitemptypasswords no
maxauthtries 6
여기서 개선 포인트가 보입니다: passwordauthentication을 no로, maxauthtries를 3~4로 낮추면 무차별 대입 표면이 크게 줄어듭니다. permitrootlogin prohibit-password는 이미 양호합니다.
Match로 세분화, 변경은 감사 로그와 함께.PermitRootLogin yes + PasswordAuthentication yes (최악 조합)sshd_config가 최근 무단 변경됨 → 공격자의 정책 약화 시도포트 변경(22→2222)은 자동 스캔을 줄이는 보조책일 뿐, 인증 하드닝을 대체하지 못합니다.
sshd_config 변경 감사: auditd -w /etc/ssh/sshd_config -p wa -k sshd_configsshd -T) 비교sshd_config 변경은 방어 약화 지표라 FIM/auditd 최우선 감시 대상입니다. 이 시리즈 실습에서 auditd에 sshd_config watch를 걸어 두었으며(41·44편), 변경 시 key=sshd_config로 태깅되어 SIEM에서 즉시 필터됩니다. Wazuh SCA는 CIS SSH 벤치마크로 설정 준수를 점수화합니다.
[ ] sshd -t로 문법 검사
[ ] sshd -T로 유효 설정 확인
[ ] root+password 위험 조합 점검
[ ] sshd_config 변경 감사 설정
다음 편에서는 14. SSH Brute Force 공격 이해 를 다룹니다. 이제 실제 공격 — SSH 무차별 대입이 로그에 어떻게 남는지 분석합니다.
본 실습은 격리된 테스트 VM(Rocky Linux / Ubuntu, VMware) 및 테스트 계정 환경을 기준으로 하며, 운영 서버를 대상으로 하지 않습니다. 실행 결과는 실제 캡처와 예시 출력을 명확히 구분해 표기합니다.