운영체제 (LNX,WIN)

SSH 서비스 Google OTP 통한 사용자별 2단계 인증 적용

날으는물고기 2024. 5. 27. 00:33

Setup Two-Factor Authentication (2FA) for Linux ❘ Linux SSH

SSH 서비스에 Google OTP (One-Time Password)를 통한 2단계 인증을 적용하는 과정을 아래와 같이 단계별로 설명드리겠습니다. 이 설명은 주로 Linux 시스템에 기반하고 있으며, Google Authenticator를 사용합니다.

1단계: 필요한 패키지 설치하기

  1. Google Authenticator PAM (Pluggable Authentication Module) 설치
    대부분의 Linux 배포판에서는 libpam-google-authenticator 패키지를 설치할 수 있습니다. CentOS나 Fedora와 같은 RHEL 기반 시스템에서는 다음 명령어를 사용합니다.
    sudo yum install google-authenticator
    Ubuntu나 Debian 기반 시스템에서는 다음 명령어를 사용합니다.
    sudo apt-get update
    sudo apt-get install libpam-google-authenticator
    이 패키지는 사용자별로 OTP를 설정하고 관리하는 데 필요한 PAM 모듈과 관련 도구를 포함하고 있습니다.

2단계: 사용자별로 Google Authenticator 설정

    1. 각 사용자 계정에 대해 Google Authenticator 실행
      각 사용자는 자신의 계정에서 다음 명령을 실행하여 OTP 설정을 진행해야 합니다.
      google-authenticator
      이 명령을 실행하면 여러 가지 질문이 나오며, 일반적으로 모든 질문에 'y'로 답변하는 것이 좋습니다. 실행 과정에서 아래와 같이 QR 코드가 생성되며, 이 QR 코드를 스마트폰의 Google Authenticator 앱으로 스캔해야 합니다.

3단계: SSH 구성 변경

      1. PAM 설정 수정
        /etc/pam.d/sshd 파일을 열고 다음 라인을 파일의 상단에 추가합니다.
        auth required pam_google_authenticator.so
        이 설정은 SSH 로그인 과정에서 Google Authenticator 모듈을 필수적으로 사용하도록 합니다.
      2. SSH Daemon 설정 수정
        /etc/ssh/sshd_config 파일을 열고, ChallengeResponseAuthenticationUsePAM 옵션을 찾아 다음과 같이 수정합니다.
        ChallengeResponseAuthentication yes
        UsePAM yes
        이 설정은 SSH 서버가 PAM을 사용하고, 인증 시 challenge-response 방식을 사용하도록 설정합니다.
      3. SSH 서비스 재시작
        설정을 적용하기 위해 SSH 서비스를 재시작합니다.
        sudo systemctl restart sshd

4단계: 로그인 테스트

      • 변경된 설정으로 SSH 로그인을 시도하여 Google OTP가 요구되는지 확인합니다. 사용자 이름과 비밀번호를 입력한 후, Google Authenticator 앱에서 제공하는 OTP 코드를 입력해야 로그인이 완료됩니다.

 

이 과정을 통해 SSH에 Google OTP를 성공적으로 적용할 수 있으며, 이는 계정의 보안을 한층 강화하는 방법입니다. 설정 중 문제가 발생하는 경우, 설정 파일의 문법을 다시 확인하거나, 패키지 설치 상태를 점검해보는 것이 좋습니다.

728x90