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

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

선행 학습

1. 들어가며

SSH가 사용자를 인증하는 방법은 하나가 아닙니다. 어떤 방식을 쓰느냐가 서버의 보안 수준을 크게 좌우합니다. 이번 편은 세 가지 주요 방식을 비교하고, SOC 관점에서 각각의 로그 특성을 정리합니다.

2. 핵심 개념

방식원리보안성무차별 대입
Password비밀번호 입력낮음취약
Public Key키쌍 검증높음사실상 불가
Keyboard-Interactive서버 프롬프트 응답(OTP 등 MFA)방식에 따라 높음방식 의존

권장 구성은 공개키 인증 + 비밀번호 인증 비활성화, 필요 시 keyboard-interactive로 MFA를 얹는 것입니다.

클라이언트                         서버(sshd)
  │  Password: 'secret' ───────────▶ shadow 해시 비교
  │                                   (탈취·추측 위험)
  │
  │  PublicKey: 서명 ───────────────▶ authorized_keys의 공개키로 검증
  │  (개인키는 절대 전송 안 됨)         (네트워크로 비밀 안 흐름)

3. 동작 원리

공개키 인증에서는 개인키가 네트워크로 전송되지 않습니다. 클라이언트가 개인키로 챌린지에 서명하고, 서버는 ~/.ssh/authorized_keys의 공개키로 서명을 검증합니다. 비밀이 흐르지 않으므로 도청·추측이 무의미합니다.

비밀번호 방식은 (암호화 채널이지만) 결국 '맞히면 통과'라 무차별 대입에 노출됩니다. 그래서 인터넷에 노출된 서버라면 비밀번호 인증을 끄는 것이 사실상 표준입니다.

4. 명령어 실습

# 서버에서 현재 허용된 인증 방식(유효 설정) 확인
sudo sshd -T | grep -E 'authenticationmethods|passwordauthentication|pubkeyauthentication'

# 클라이언트: 키쌍 생성(ed25519 권장)
ssh-keygen -t ed25519 -C 'alice@lab'

# 공개키를 서버에 등록
ssh-copy-id alice@server

5. 실행 결과

실습 컨테이너에서 sshd -T로 확인한 유효 설정입니다. (실제 캡처)

$ sudo sshd -T | grep -E 'passwordauthentication|pubkeyauthentication'
pubkeyauthentication yes
passwordauthentication yes

여기서 passwordauthentication yes는 비밀번호 로그인이 허용됨을 의미합니다. 보안 강화를 위해서는 키 등록 후 passwordauthentication no로 전환하는 것이 권장됩니다(13편).

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

  • 정상/권장: 공개키 인증, 비밀번호 인증 off, 필요 시 MFA.
  • 위험 징후:
    • 인터넷 노출 서버에서 passwordauthentication yes
    • authorized_keys에 관리자가 모르는 공개키(15·34편 — 키 기반 지속성)
    • 키에 패스프레이즈가 없어 탈취 시 즉시 악용 가능

로그 관점에서 공개키 로그인은 Accepted publickey ... key: SHA256:... 형태로 남아, 어떤 키로 로그인했는지 지문(fingerprint)으로 추적할 수 있습니다.

7. 탐지 방법

  • 인증 방식별 로그: Accepted password vs Accepted publickey
  • 공개키 지문(fingerprint)으로 로그인 키 추적
  • 비밀번호 인증이 켜져 있는지 정기 점검(sshd -T)

8. SOC 관점 — SIEM · Wazuh · IOC

SIEM에서 Accepted password(비밀번호 성공)는 무차별 대입 성공 가능성 때문에 Accepted publickey보다 높은 관심 대상입니다. 공개키 로그인은 fingerprint를 IOC/자산 인벤토리로 관리해, '등록되지 않은 키로의 로그인'을 탐지할 수 있습니다. Wazuh는 두 방식을 구분해 파싱합니다.

9. 실습 체크리스트

[ ] sshd -T로 허용 인증 방식 확인
[ ] ed25519 키쌍 생성 실습
[ ] authorized_keys의 키 목록 점검
[ ] password 인증 비활성화 검토

10. 핵심 정리

  • SSH 인증은 password·publickey·keyboard-interactive로 나뉜다.
  • 공개키 인증은 개인키를 전송하지 않아 무차별 대입에 강하다.
  • 노출 서버는 비밀번호 인증을 끄는 것이 사실상 표준이다.
  • 공개키 로그인은 fingerprint로 추적 가능하다.
  • Accepted password는 SOC에서 더 높은 관심 대상이다.

11. 다음 편

다음 편에서는 13. SSH 보안 설정 를 다룹니다. 이 방식들을 강제하는 sshd_config의 핵심 보안 설정을 정리합니다.


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

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

0개의 댓글