Linux 시스템 보안 기초 · 13/50편

이 글은 리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 시리즈를 선행 학습으로 두고, 동일한 개념을 보안관제(SOC) 관점에서 한 단계 확장합니다.

선행 학습

1. 들어가며

SSH 보안의 대부분은 sshd_config 한 파일에서 결정됩니다. 잘못된 한 줄이 서버를 통째로 노출시키고, 올바른 몇 줄이 공격 표면을 크게 줄입니다. 이번 편은 실무에서 반드시 점검하는 핵심 지시어를 정리합니다.

2. 핵심 개념

핵심 지시어와 권장값입니다.

지시어권장값이유
PermitRootLoginno / prohibit-passwordroot 직접 로그인 차단
PasswordAuthenticationno무차별 대입 차단
PubkeyAuthenticationyes키 인증 사용
AllowUsers/AllowGroups명시접근 주체 최소화
PermitEmptyPasswordsno빈 비밀번호 금지
MaxAuthTries3~4시도 제한
LoginGraceTime20~30미인증 세션 방치 차단
기본 노출 서버                하드닝 후
  root 로그인 허용     →      PermitRootLogin no
  비밀번호 허용        →      PasswordAuthentication no
  누구나 접속          →      AllowGroups sshusers
  무제한 시도          →      MaxAuthTries 3
  ───────────────           ───────────────
  넓은 공격 표면              좁은 공격 표면

3. 동작 원리

sshd는 시작 시 /etc/ssh/sshd_config를 읽어 적용합니다. Match 블록으로 특정 사용자/그룹/주소에 다른 정책을 줄 수도 있습니다. 설정 변경 후에는 문법 검사(sshd -t)와 재적용(systemctl reload ssh)이 필요합니다.

중요한 점: 파일에 여러 값이 있으면 먼저 나온 값이 우선입니다. 또 실제 적용값은 파일이 아니라 sshd -T(유효 설정 덤프)로 확인해야 정확합니다 — 포함된 conf.d 조각까지 반영되기 때문입니다.

4. 명령어 실습

# 문법 검사 (변경 후 필수)
sudo sshd -t

# 실제 적용되는 유효 설정 확인 (파일보다 정확)
sudo sshd -T | grep -E 'permitrootlogin|passwordauthentication|maxauthtries|allowusers|allowgroups|permitemptypasswords'

# 변경 적용
sudo systemctl reload ssh    # Ubuntu (RHEL: reload sshd)

5. 실행 결과

실습 컨테이너에서 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는 이미 양호합니다.

6. 보안 관점 — 정상 사용 vs 악용

  • 정상/권장: 위 표의 권장값 적용, Match로 세분화, 변경은 감사 로그와 함께.
  • 위험 징후:
    • PermitRootLogin yes + PasswordAuthentication yes (최악 조합)
    • sshd_config가 최근 무단 변경됨 → 공격자의 정책 약화 시도
    • 기본 포트만 믿고 그 외 하드닝 없음

포트 변경(22→2222)은 자동 스캔을 줄이는 보조책일 뿐, 인증 하드닝을 대체하지 못합니다.

7. 탐지 방법

  • sshd_config 변경 감사: auditd -w /etc/ssh/sshd_config -p wa -k sshd_config
  • 유효 설정 정기 스냅샷(sshd -T) 비교
  • 위험 조합(root+password 허용) 자동 점검

8. SOC 관점 — SIEM · Wazuh · IOC

sshd_config 변경은 방어 약화 지표라 FIM/auditd 최우선 감시 대상입니다. 이 시리즈 실습에서 auditd에 sshd_config watch를 걸어 두었으며(41·44편), 변경 시 key=sshd_config로 태깅되어 SIEM에서 즉시 필터됩니다. Wazuh SCA는 CIS SSH 벤치마크로 설정 준수를 점수화합니다.

9. 실습 체크리스트

[ ] sshd -t로 문법 검사
[ ] sshd -T로 유효 설정 확인
[ ] root+password 위험 조합 점검
[ ] sshd_config 변경 감사 설정

10. 핵심 정리

  • SSH 보안의 대부분은 sshd_config에서 결정된다.
  • 실제 적용값은 파일이 아니라 sshd -T로 확인한다.
  • PermitRootLogin no + PasswordAuthentication no가 핵심이다.
  • MaxAuthTries·AllowGroups로 공격 표면을 좁힌다.
  • 설정 변경은 방어 약화 지표로 최우선 감사 대상이다.

11. 다음 편

다음 편에서는 14. SSH Brute Force 공격 이해 를 다룹니다. 이제 실제 공격 — SSH 무차별 대입이 로그에 어떻게 남는지 분석합니다.


본 실습은 격리된 테스트 VM(Rocky Linux / Ubuntu, VMware) 및 테스트 계정 환경을 기준으로 하며, 운영 서버를 대상으로 하지 않습니다. 실행 결과는 실제 캡처와 예시 출력을 명확히 구분해 표기합니다.

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글