추가 보안을 위해 다음을 요구할 수 있습니다. 시간 기반 인증 토큰 Linux PC에 로그인하기위한 비밀번호도 입력해야합니다. 이 솔루션은 Google Authenticator 및 기타 TOTP 앱을 사용합니다.
이 프로세스는 Ubuntu 14.04에서 표준으로 수행되었습니다. Unity 데스크톱 및 LightDM 로그인 관리자가 있지만 원칙은 대부분의 Linux 배포 및 데스크톱에서 동일합니다.
이전에 보여 드린 SSH를 통한 원격 액세스를 위해 Google Authenticator를 요구하는 방법 ,이 과정은 비슷합니다. Google Authenticator 앱이 필요하지 않지만 다음을 포함하여 TOTP 인증 체계를 구현하는 모든 호환 앱에서 작동합니다. Authy .
Google Authenticator PAM 설치
관련 : Google Authenticator 2 단계 인증을 사용하여 SSH를 보호하는 방법
SSH 액세스를 위해이를 설정할 때와 마찬가지로 먼저 적절한 PAM ( 'pluggable-authentication module') 소프트웨어를 설치해야합니다. PAM은 다양한 유형의 인증 방법을 Linux 시스템에 연결하여 요구할 수있는 시스템입니다.
Ubuntu에서 다음 명령은 Google Authenticator PAM을 설치합니다. 터미널 창을 열고 다음 명령을 입력 한 다음 Enter 키를 누르고 암호를 제공하십시오. 시스템은 Linux 배포판의 소프트웨어 저장소에서 PAM을 다운로드하여 설치합니다.
sudo apt-get 설치 libpam-google-authenticator
다른 Linux 배포판에서도 쉽게 설치할 수있는이 패키지가 있어야합니다. Linux 배포판의 소프트웨어 저장소를 열고 검색을 수행하십시오. 최악의 시나리오에서 다음을 찾을 수 있습니다. GitHub의 PAM 모듈 소스 코드 직접 컴파일하십시오.
이전에 지적했듯이이 솔루션은 Google 서버의 '집에 전화하기'에 의존하지 않습니다. 표준 TOTP 알고리즘을 구현하며 컴퓨터가 인터넷에 액세스 할 수없는 경우에도 사용할 수 있습니다.
인증 키 생성
이제 보안 인증 키를 만들어 휴대 전화의 Google Authenticator 앱 (또는 유사한 앱)에 입력해야합니다. 먼저 Linux 시스템에서 사용자 계정으로 로그인하십시오. 터미널 창을 열고 Google 인증 자 명령. 유형 와이 여기의 지시를 따릅니다. 이렇게하면 현재 사용자 계정의 디렉토리에 Google OTP 정보가 포함 된 특수 파일이 생성됩니다.
또한 2 단계 인증 코드를 스마트 폰의 Google OTP 또는 유사한 TOTP 앱으로 가져 오는 과정을 안내합니다. 시스템에서 스캔 할 수있는 QR 코드를 생성하거나 수동으로 입력 할 수 있습니다.
휴대 전화를 분실 한 경우 로그인에 사용할 수있는 긴급 스크래치 코드를 기록해 두세요.
컴퓨터를 사용하는 각 사용자 계정에 대해이 프로세스를 수행하십시오. 예를 들어 컴퓨터를 사용하는 유일한 사람이라면 일반 사용자 계정에서 한 번만 수행 할 수 있습니다. 내 컴퓨터를 사용하는 다른 사람이있는 경우 자신의 계정에 로그인하고 로그인 할 수 있도록 자신의 계정에 적합한 2 단계 코드를 생성하도록하는 것이 좋습니다.
인증 활성화
여기에 약간의 문제가 있습니다. SSH 로그인에 대해 2 단계를 활성화하는 방법을 설명 할 때 SSH 로그인에만 필요했습니다. 이렇게하면 인증 앱을 분실했거나 문제가 발생한 경우에도 로컬로 로그인 할 수 있습니다.
로컬 로그인에 대해 2 단계 인증을 활성화 할 예정이므로 여기에 잠재적 인 문제가 있습니다. 문제가 발생하면 로그인하지 못할 수 있습니다.이를 염두에두고 그래픽 로그인에만이 기능을 사용하도록 설정하는 방법을 안내해 드리겠습니다. 필요한 경우 탈출구를 제공합니다.
Ubuntu에서 그래픽 로그인을 위해 Google Authenticator 사용
그래픽 로그인에 대해서만 2 단계 인증을 활성화 할 수 있으며 텍스트 프롬프트에서 로그인 할 때 요구 사항을 건너 뛸 수 있습니다. 즉, 가상 터미널로 쉽게 전환하고 로그인 한 다음 변경 사항을 되돌릴 수 있으므로 문제가 발생해도 Gogole Authenciator가 필요하지 않습니다.
물론 이것은 인증 시스템에 구멍을 열어 주지만 시스템에 물리적으로 액세스 할 수있는 공격자는 어쨌든 이미이를 악용 할 수 있습니다. . 이것이 2 단계 인증이 SSH를 통한 원격 로그인에 특히 효과적인 이유입니다.
LightDM 로그인 관리자를 사용하는 Ubuntu에서이 작업을 수행하는 방법은 다음과 같습니다. 다음과 같은 명령을 사용하여 편집 할 LightDM 파일을 엽니 다.
sudo gedit /etc/pam.d/lightdm
(이 특정 단계는 Linux 배포 및 데스크탑이 LightDM 로그인 관리자를 사용하는 경우에만 작동합니다.)
파일 끝에 다음 줄을 추가하고 저장합니다.
인증 필요 pam_google_authenticator.so nullok
끝에있는 'nullok'비트는 사용자가 2 단계 인증을 설정하기 위해 google-authenticator 명령어를 실행하지 않은 경우에도 로그인 할 수 있도록 시스템에 지시합니다. 설정 한 경우 시간 기반 코드를 입력해야합니다. 그렇지 않으면 입력하지 않습니다. "nullok"을 제거하면 Google Authenticator 코드를 설정하지 않은 사용자 계정은 그래픽으로 로그인 할 수 없습니다.
다음에 사용자가 그래픽으로 로그인 할 때 비밀번호를 입력 한 다음 휴대 전화에 표시된 현재 인증 코드를 입력하라는 메시지가 표시됩니다. 인증 코드를 입력하지 않으면 로그인 할 수 없습니다.
대부분의 일반적인 Linux 데스크톱 세션 관리자는 PAM을 사용하므로 프로세스는 다른 Linux 배포 및 데스크톱의 경우 상당히 유사해야합니다. 적절한 PAM 모듈을 활성화하려면 유사한 파일을 사용하여 다른 파일을 편집해야 할 수 있습니다.
홈 디렉토리 암호화를 사용하는 경우
이전 버전의 Ubuntu는 '홈 폴더 암호화'옵션 비밀번호를 입력 할 때까지 전체 홈 디렉토리를 암호화했습니다. 특히 이것은 ecryptfs를 사용합니다. 하지만 PAM 소프트웨어는 기본적으로 홈 디렉토리에 저장된 Google Authenticator 파일에 의존하기 때문에 로그인하기 전에 시스템에서 암호화되지 않은 형식으로 사용할 수 있는지 확인하지 않는 한 암호화는 PAM이 파일을 읽는 것을 방해합니다. 읽어보기 더 이상 사용되지 않는 홈 디렉토리 암호화 옵션을 사용중인 경우이 문제를 방지하는 방법에 대한 자세한 내용은
최신 버전의 Ubuntu 제공 전체 디스크 암호화 대신 위의 옵션으로 잘 작동합니다. 특별한 일을 할 필요가 없습니다
도와주세요!
그래픽 로그인에이 기능을 활성화했기 때문에 문제가 발생하면 쉽게 비활성화 할 수 있습니다. 가상 터미널에 액세스하려면 Ctrl + Alt + F2와 같은 키 조합을 누르세요. 사용자 이름과 비밀번호로 로그인합니다. 그런 다음 sudo nano /etc/pam.d/lightdm과 같은 명령을 사용하여 터미널 텍스트 편집기에서 편집 할 파일을 열 수 있습니다. 사용하다 Nano 가이드 줄을 제거하고 파일을 저장하면 정상적으로 다시 로그인 할 수 있습니다.
다른 PAM 구성 파일에 'auth required pam_google_authenticator.so'줄을 추가하여 다른 유형의 로그인 (잠재적으로 모든 시스템 로그인 포함)에 Google OTP를 강제로 요구할 수도 있습니다. 이렇게하면 조심하세요. 그리고 설정 프로세스를 거치지 않은 사용자가 계속 로그인 할 수 있도록 "nullok"을 추가 할 수 있습니다.
이 PAM 모듈을 사용하고 설정하는 방법에 대한 추가 문서는 GitHub의 소프트웨어 README 파일 .