피드로 돌아가기
Automate SSH 2FA Hardening with Google Authenticator
Dev.toDev.to
Security

Ansible와 PAM 기반의 SSH 2FA 자동화로 인프라 보안 강화 및 설정 오류 제거

Automate SSH 2FA Hardening with Google Authenticator

DevOps Start2026년 6월 28일10intermediate

Context

SSH Key 기반 인증의 단일 지점 장애 및 워크스테이션 침해 시 전체 서버 노출 위험 존재. 수동 기반의 PAM 설정 방식은 설정 오류로 인한 Lock-out 위험과 서버 규모 확장에 따른 운영 오버헤드 증가라는 한계를 가짐.

Technical Solution

  • PAM 모듈(pam_google_authenticator.so) 도입을 통한 TOTP 기반의 다중 인증 계층 설계
  • /etc/pam.d/sshd 설정 내 nullok 옵션을 활용한 점진적 2FA 강제화 전략 적용
  • ChallengeResponseAuthenticationUsePAM 활성화를 통한 SSH Daemon의 PAM 연동 체계 구축
  • ~/.google_authenticator 파일의 권한을 0400/0600으로 제한하여 Secret 유출 및 읽기 오류 방지
  • Ansible 등 Configuration Management 도구를 통한 일관된 설정 배포 및 롤백 메커니즘 확보
  • NTP/Chrony를 통한 서버 간 Time Synchronization으로 TOTP 시간 드리프트로 인한 인증 실패 원천 차단

- PAM 설정 변경 시 기존 세션을 유지한 상태에서 새 세션 접속 테스트 수행 - HashiCorp Vault 등 전문 Secret Management 시스템을 통한 TOTP Secret 배포 체계 검토 - 2FA 우회 가능 IP를 지정한 별도의 Break-glass 계정 및 로깅 체계 구축 - 정기적인 `/etc/ssh/sshd_config` 및 사용자 Secret 파일 권한 감사 수행

원문 읽기