Ubuntu의 활용 OTP 설정

이장훈·2022년 1월 25일
0

1. OTP란?

One-Time-Password로, 특정 알고리즘에 맞춰 일정 시간 마다 일회성 암호를 생성하여 사용자를 확인하는 인증방법 중하나이다. Google, Azure 등 다양한 곳에서 제공한다.

2. 활용 요소

단순히 pem키나 비밀번호만으로 접속하게 될 경우 보안상 문제가 된다면 흔히 요즘 말하는 2단계 인증요소로 쓰일 수 있다. (2FA Two-Factor-Authentication)

apt install libpam-google-authenticator

3. SSH 인증 PAM 모듈 설정

PAM(Pluggable Authentication Modules) 설정파일에 Google Authenticator를 추가합니다.

vi /etc/pam.d/sshd로 접속해 아래 내용을 가장 하단에 추가합니다.
auth required pam_google_authenticator.so nullok

  • nullok : 리눅스 내 모든 사용자가 각각의 secret key를 생성 해야 합니다. 만약 동일한 secret key를 모든 사용자가 사용 할 때는 nullok를 제외시켜주면 됩니다.

4. SSH 서버의 설정파일 수정

vi/etc/ssh/sshd_config

  • PasswordAuthentication: 패스워드 인증을 사용하는 가?(OTP인증시 PW인증 사용안함)
  • ChallengeResponseAuthentication : 시도 응답 인증 방식을 사용할 것인가 (2FA 인증을 위해서 필요)
  • UsePAM : 인증에 PAM 모듈을 사용할 것인가
  • PermitEmptyPasswords : 비어있는 사용자 암호를 허용할 것인가

PasswordAuthentication no
ChallengeResponseAuthentication yes
UsePAM yes
PermitEmptyPasswords no

5. SSH 서버 프로세스 재시작

systemctl restart sshd

profile
개발자가 꿈입니다.

0개의 댓글