https://www.youtube.com/watch?v=MExM0EIe80k
1. Install Google OTP
CentOS
#yum install google-authenticator
Ubuntu
#apt-get install libpam-google-authenticator
패키지 설치 관련해서 에러가 나타난다면, Ubuntu는 atp-get update, CentOS는 yum install epel-release 를 진행한후 다시 시도해보자.
2. Activate Google OTP
CentOS/Ubuntu 모두 동일하게 설정한다.
VI 편집기를 이용해서 /etc/pam.d/sshd에 pam_google_authenticator.so 를 추가하도록 한다.
# vi /etc/pam.d/sshd
내용은 아래와 같다.
#%PAM-1.0
auth required pam_google_authenticator.so nullok
3. SSH Configuration
이제 SSH에서 Google OTP 사용 설정을 하면 된다.
#vi /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
ChallengeResponseAuthentication : 응답 인증 방식을 사용 (2FA인증)
정상적으로 설정되었다면 SSH를 재시작하자.
systemctl reload sshd
systemctl restart sshd
Configuring 2FA for a User
Google OTP 사용 준비가 완료되었다. OTP 사용자 인증을 위해서는 Google Authenticator 인증 파일을 생성해야 Google OTP 이용이 가능하다. (각 사용자 홈디렉토리의 .google_authenticator 파일 필요)
개별 유저별로 로그인하여, 아래 명령을 실행하여, Google OTP 설정을 진행하도록 하자.
$google-authenticator
파일 생성 위치
# Do you want me to update your "/root/.google_authenticator" file? (y/n) y
.google_authenticator 기본 생성하는 파일입니다.
중간자공격(man-in-middle-attack) 옵션 - Yes 추천
# Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y
30초 이내 2회 이상 인증이 완료된 이후에도 시도가 가능하도록 할 것인지
일반적으로 인증 완료되었다면 다시 시도할 일이 없다. 다만 30초 이내에 다시 로그인하는 것이 빈번하다면 n를 선택
시간상 오차 방지하는 옵션 - Yes 추천
# By default, a new token is generated every 30 seconds by the mobile app.In order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. This allows for a time skew of up to 30 seconds between authentication server and client. If you experience problems with poor time synchronization, you can increase the window from its default size of 3 permitted codes (one previous code, the current code, the next code) to 17 permitted codes (the 8 previous codes, the current code, and the 8 next codes). This will permit for a time skew of up to 4 minutes between client and server. Do you want to do so? (y/n) y
30초마다 OTP 코드가 변경되는데, 앞뒤로 가지고 있는 OTP 코드를 사용할 수 있도록 할 것인지
타임 서버 관련해서 오차가 생각보다 많이 발생하기 때문에 Y를 하기를 추천한다.
TroubleShooting
마지막으로 정상적으로 사용이 되지 않을때 트러블 슈팅이 필요할 수 있다.
check ssh logon log
로그인 관련된 인증 문제시 /var/log/secure 에서 확인할 수 있다.
tail /var/log/secure -f
check Pam configuration
vi /etc/pam.d/sshd
.google_authenticator File Check
Google OTP를 사용하기 위해서는 ${HOME}/.google_authenticator 파일이 위치해야 한다. 해당 파일이 정상적인지 확인해야 한다.
Check the server time and synchronize with the time server with the following command.
ntpdate -q pool.ntp.org
'Linux' 카테고리의 다른 글
find -exec 특정 파일에서 특정 문구 찾기 (0) | 2020.11.18 |
---|---|
Graylog 2.x How to install on Centos7 with Syslog input (0) | 2020.11.18 |
Installing VMware Tools for Ubuntu/CentOS virtual machine (0) | 2020.11.16 |
.Net/core - make service for auto-start when boot on Ubuntu (0) | 2020.11.12 |
NGINX - File Upload, Error 413 Request Entity Too Large (0) | 2020.11.12 |