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