웹사이트 검색

Ubuntu에서 2단계 인증을 사용하는 방법


시간이 지나면서 전통적인 사용자 이름과 비밀번호 인증은 애플리케이션과 시스템에 강력한 보안을 제공하는 데 부적절하다는 것이 입증되었습니다. 사용자 이름과 비밀번호는 수많은 해킹 도구를 사용하여 쉽게 해독될 수 있으므로 시스템이 침해에 취약해집니다. 이러한 이유로 보안을 중요하게 생각하는 기업이나 단체는 2단계 인증을 구현해야 합니다.

구어적으로 MFA(다단계 인증)로 알려진 2단계 인증은 사용자가 코드와 같은 특정 세부정보를 제공하도록 요구하는 추가 보안 계층을 제공합니다. Strong> 또는 OTP(일회용 비밀번호)는 일반적인 사용자 이름과 비밀번호로 인증하기 전이나 후에 사용됩니다.

요즘에는 Google, Facebook, Twitter, AWS 등 여러 회사에서 사용자에게 선택권을 제공합니다. 계정을 더욱 안전하게 보호하기 위해 MFA를 설정하는 것입니다.

이 가이드에서는 Ubuntu에서 2단계 인증을 사용하는 방법을 보여줍니다.

1단계: Google의 PAM 패키지 설치

먼저 Google PAM 패키지를 설치하세요. Pluggable Authentication Module의 약어인 PAM은 Linux 플랫폼에서 추가 인증 계층을 제공하는 메커니즘입니다.

패키지는 Ubuntu 저장소에 호스팅되므로 다음과 같이 apt 명령을 사용하여 설치하세요.

sudo apt install libpam-google-authenticator

메시지가 나타나면 'Y'를 누르고 ENTER를 눌러 설치를 계속합니다.

2단계: 스마트폰에 Google OTP 앱 설치

또한 태블릿 또는 스마트폰에 Google OTP 애플리케이션을 설치해야 합니다. 앱은 30초마다 자동 갱신되는 6자리 OTP 코드를 제공합니다.

3단계: Ubuntu에서 Google PAM 구성

Google Authenticator 앱이 설치되면 /etc/pam.d/common-auth<를 수정하여 Ubuntu에서 Google PAM 패키지를 구성하고 구성하겠습니다. 파일을 보여줍니다.

sudo vim /etc/pam.d/common-auth

표시된 대로 파일에 아래 줄을 추가합니다.

auth required pam_google_authenticator.so

파일을 저장하고 종료합니다.

이제 아래 명령을 실행하여 PAM을 초기화하세요.

google-authenticator

그러면 터미널 화면에 몇 가지 질문이 표시됩니다. 먼저 인증 토큰을 시간 기반으로 할지 묻는 메시지가 표시됩니다.

시간 기반 인증 토큰은 특정 시간이 지나면 만료됩니다. 기본적으로 이는 30초 이후에 이루어지며, 이때 새로운 토큰 세트가 생성됩니다. 이러한 토큰은 시간 기반이 아닌 토큰보다 더 안전한 것으로 간주되므로 'y'를 입력하고 ENTER를 누르세요.

그러면 아래와 같이 QR 코드가 단말기에 표시되고 바로 아래에 몇 가지 정보가 표시됩니다. 표시되는 정보는 다음과 같습니다.

  • 비밀 키
  • 확인 코드
  • 긴급 스크래치 코드

나중에 참조할 수 있도록 이 정보를 Vault에 저장해야 합니다. 긴급 스크래치 코드는 인증 장치를 분실한 경우 매우 유용합니다. 인증 장치에 문제가 발생하면 코드를 사용하세요.

스마트 기기에서 Google OTP 앱을 실행하고 'QR 코드 스캔'을 선택하여 표시된 QR 코드를 스캔하세요.

참고: 전체 QR 코드를 스캔하려면 터미널 창을 최대화해야 합니다. QR 코드를 스캔하면 30초마다 변경되는 6자리 OTP가 앱에 표시됩니다.

그런 다음 'y'를 선택하여 홈 폴더의 Google 인증 파일을 업데이트하세요.

다음 메시지에서는 메시지 가로채기(man-in-the-middle) 공격으로 인해 발생할 수 있는 공격을 방지하기 위해 로그인을 30초마다 한 번만 로그인하도록 제한합니다. 따라서 'y'를 선택하세요.

다음 프롬프트에서 'n'을 선택하여 서버와 클라이언트 간의 시간 차이를 해결하는 기간의 연장을 허용하지 않습니다. 시간 동기화 문제가 발생하지 않는 한 이는 더 안전한 옵션입니다.

마지막으로 로그인 시도 횟수를 3회까지로 제한하는 속도를 활성화하세요.

이제 2단계 인증 기능 구현이 완료되었습니다. 실제로 sudo 명령을 실행하면 Google Authenticator 앱에서 얻을 수 있는 인증 코드를 입력하라는 메시지가 표시됩니다.

재부팅하여 이를 추가로 확인할 수 있으며, 로그인 화면이 나타나면 인증 코드를 제공하라는 요청을 받게 됩니다.

Google OTP 앱에서 코드를 제공한 후 시스템에 액세스하려면 비밀번호만 입력하세요.

4단계: SSH를 Google OTP와 통합

Google PAM 모듈과 함께 SSH를 사용하려면 두 모듈을 통합해야 합니다. 이를 달성할 수 있는 방법에는 두 가지가 있습니다.

SSH 비밀번호 인증의 경우

일반 사용자에 대해 SSH 비밀번호 인증을 활성화하려면 먼저 기본 SSH 구성 파일을 엽니다.

sudo vim /etc/ssh/sshd_config

그리고 표시된 대로 다음 속성을 'yes'로 설정합니다.

루트 사용자의 경우 'PermitRootLogin' 속성을 'yes'로 설정합니다.

PermitRootLogin yes

파일을 저장하고 종료합니다.

다음으로 SSH에 대한 PAM 규칙을 수정합니다.

sudo vim /etc/pam.d/sshd

그런 다음 다음 줄을 추가하십시오.

auth   required   pam_google_authenticator.so

마지막으로 변경 사항을 적용하려면 SSH 서비스를 다시 시작하세요.

sudo systemctl restart ssh

아래 예에서는 Putty 클라이언트에서 Ubuntu 시스템에 로그인합니다.

SSH 공개 키 인증의 경우

공개 키 인증을 사용하는 경우 위 단계를 반복하고 /etc/ssh/sshd_config 파일 하단에 표시된 줄을 추가하세요.

AuthenticationMethods publickey,keyboard-interactive

SSH 데몬에 대한 PAM 규칙을 다시 한 번 편집합니다.

sudo vim /etc/pam.d/sshd

그런 다음 다음 줄을 추가하십시오.

auth   required   pam_google_authenticator.so

앞서 본 것처럼 파일을 저장하고 SSH 서비스를 다시 시작하세요.

sudo systemctl restart ssh

Ubuntu에서 2단계 인증 비활성화

인증 장치나 비밀 키를 분실한 경우 당황하지 마세요. 2FA 인증 계층을 쉽게 비활성화하고 간단한 사용자 이름/비밀번호 로그인 방법으로 돌아갈 수 있습니다.

먼저 시스템을 다시 시작하고 첫 번째 GRUB 항목에서 'e'를 누르세요.

linux로 시작하고 조용한 splash $vt_handoff로 끝나는 줄을 스크롤하여 찾습니다. systemd.unit=rescue.target 줄을 추가하고 ctrl+x를 눌러 구조 모드로 들어갑니다.

셸을 얻은 후 루트 비밀번호를 입력하고 ENTER를 누르세요.

그런 다음 다음과 같이 홈 디렉토리에서 .google-authenticator 파일을 삭제하세요. 사용자 이름을 자신의 사용자 이름으로 바꾸십시오.


rm /home/username/.google_authenticator

그런 다음 /etc/pam.d/common-auth 파일을 편집합니다.


$ vim /etc/pam.d/common-auth

다음 줄에 주석을 달거나 삭제합니다.


auth required pam_google_authenticator.so

파일을 저장하고 시스템을 재부팅하십시오. 로그인 화면에서는 인증을 위해 사용자 이름과 비밀번호만 입력하면 됩니다.

이것으로 이 글을 마치겠습니다. 우리는 그것이 어떻게 진행되었는지 듣고 기뻐할 것입니다.