업체 보안요구 사항 중 OS 접근 및 쉘 접속 시 MFA(다중인증)을 하라는 보안 요구사항이 있었습니다.
현재는 AWS EC2에 접근하기 위해서는 ppk 파일 or pem 파일이 있어야 하는대요
이것 만으로는 MFA를 충족 시킬 수 없었습니다.
그래서 Google Authenticator을 써서 다중인증을 적용하고자 했습니다.
SSH 보안 2단계 OTP 설정
SSH에 두 단계 인증 (2FA)을 설정하는 것은 고급 보안 조치 중 하나로, 비밀번호 또는 SSH 키 인증 외에 추가적인 인증 수단을 요구합니다. 일반적으로, Google Authenticator와 같은 시간 기반 일회용 패스워드 (TOTP) 앱을 사용하여 구현할 수 있습니다. 여기에 SSH에 2FA를 설정하는 방법을 단계별로 설명하겠습니다.
1. 소프트웨어 설치
먼저, 서버에 libpam-google-authenticator 패키지를 설치합니다. 이 패키지는 PAM (Pluggable Authentication Module)을 사용하여 Google Authenticator와의 통합을 가능하게 합니다.
sudo apt update
sudo apt install libpam-google-authenticator
2. 각 사용자의 Google Authenticator 설정
각 사용자는 자신의 계정에서 google-authenticator 명령을 실행해야 합니다. 이 명령은 개인 키를 생성하고, 이 키를 바탕으로 QR 코드를 생성합니다. 사용자는 스마트폰에 Google Authenticator 앱을 설치한 후,
이 QR 코드를 스캔해야 합니다.
google-authenticator
명령어 실행 중 다음과 같은 질문에 답해야 합니다:
이후의 질문들은 사용 환경에 맞게 y 또는 n으로 답변합니다.
일반적으로 로그인 시마다 새로운 인증 코드가 요구되도록 설정하는 것이 좋습니다.
설정 과정에서 다음과 같은 질문에 답변하세요:
저는 모르고 다 Y로 했는대 상관없었습니다.
Time-based (y/n): y
Update the .google_authenticator file (y/n): y
Disallow multiple uses (y/n): y
Increase the window size (y/n): n
Enable rate-limiting (y/n): y
3. SSH PAM 설정 변경
이제 SSH 서버가 PAM을 통해 2FA를 요구하도록 /etc/pam.d/sshd 파일을 수정해야 합니다.
sudo vi /etc/pam.d/sshd
파일 맨 아래 다음 줄 추가
auth required pam_google_authenticator.so
4. SSH 데몬 설정 변경
또한, /etc/ssh/sshd_config 파일에서 PAM을 활성화해야 합니다.
sudo vi /etc/ssh/sshd_config
다음 설정을 확인하거나 수정합니다.
ChallengeResponseAuthentication yes
UsePAM yes
KbdInteractiveAuthentication yes
쉘 접속 시 PPK로 로그인할 경우 자동으로 로그인되기 때문에 아래 내용도 추가해 줍니다.(아이디 / 패스워드 인증만 있으면 안 해도 됩니다.)
AuthenticationMethods publickey,keyboard-interactive
5. SSH 서비스 재시작
sudo systemctl restart ssh
또는
sudo systemctl restart sshd
6. 테스트
아래와 같이 뜨면 핸드폰에 설치된 Google Authenticator 앱을 열어 6자리 숫자를 입력해 줍니다.
Google Authenticator가 설치된 쉘에 접속을 해줍니다.
아이디와 패스워드 인증을 거치고 한 단계 더 인증을 거치게 됩니다.
핸드폰을 켜서 Google Authenticator 앱을 연 후 보안코드 6자리를 입력해 주세요.
정상적으로 접속된 걸 확인할 수 있습니다.
날이 부쩍 추워졌습니다. 빙판 조심하시고
오늘도 보람찬 생존 ^.^
'리눅스 > Ubuntu' 카테고리의 다른 글
Webmin으로 쉽게 하는 리눅스 서버관리 (0) | 2025.02.13 |
---|---|
슈퍼바이저를 이용한 지속적 데몬 관리 (1) | 2024.02.29 |
루트 권한 없이 80 포트 실행하기 (0) | 2024.02.29 |
형태소 분석기 설치 및 적용 (0) | 2023.07.05 |
apache + tomcat 설치 (0) | 2022.11.04 |
댓글