제목은 거의 말합니다. 2 단계 인증, 일회용 암호, 하드 토큰 및 기타 향상된 보안 기능에 대해 더 많이 듣고 있습니다. 암호 만 사용하는 보안이 감소함에 따라 우분투의 보안을 향상시키는 방법을 알고 싶습니다. Unity와 함께 14.04 LTS를 사용하고 있습니다.
답변
Google에서 만든 Google OTP 라고하는 오픈 소스 PAM (Pluggable Authentication Module)을 사용할 수 있습니다 . 이 모듈은 표준 리포지토리와 GitHub에서 사용할 수 있으므로 소스에서 빌드 할 수 있습니다. 동일한 이름의 Android, iOS 또는 Blackberry App과 함께 암호와 함께 인증을위한 시간 기반의 시간에 민감한 코드를 생성합니다. PAM 모듈이기 때문에 거의 모든 곳 에서 떨어질 수 있습니다 . 시작하자!
설치
시작하려면 다음과 같이 PAM을 설치할 수 있습니다.
sudo apt-get install libpam-google-authenticator
단순한!
설정 :
설치가 완료되면 모바일 플랫폼에 따라 Android, iOS 또는 Blackberry 용 해당 모바일 응용 프로그램도 설치해야합니다. 각각은 서로없이 쓸모가 없습니다. 모바일 장치에 필요한 응용 프로그램이 있으면 터미널에서 다음을 실행하십시오.
google-authenticator
이것은 몇 가지 질문을함으로써 시작될 것입니다. 첫 번째 질문은 “예”라고 대답해야하는 유일한 질문이며, 코드를 시간 기반으로 할 것인지 묻습니다. 그 후, 각 질문을 읽고 자신에게 가장 적합한 선택을하십시오.
초기 설정을 완료하면 터미널에 매우 큰 QR 코드와 기타 정보가 표시됩니다. 장치를 페어링하는 데 QR 코드를 사용하지 않으려면 “새로운 비밀 키 :”라고 표시된 행이 필요합니다. 설정하기 전에는이 창을 닫지 마십시오! “스크래치 코드”는 모바일 장치를 분실 한 경우 로그인하는 데 사용되므로 중요합니다. 적어두고 안전한 곳에 보관하십시오.
이제 휴대 기기에서 Google OTP 애플리케이션을 열고 “계정 설정”을 선택하십시오. 생성 된 QR 코드를 스캔하거나 “제공된 키 사용”을 선택할 수 있습니다. QR 코드를 스캔하면 모든 것이 “your_user @ your_host”라는 계정으로 자동 저장됩니다. 그러나 “제공된 키 사용”을 선택하면 이름, 키 및 토큰 유형을 수동으로 입력해야합니다. 이름은 당신이 원하는 무엇이든 될 수 있습니다. 키는 이전에 생성 된 비밀 키입니다. 유형은 기본 시간 기반입니다. 설정하면 Google OTP 앱의 메인 창에 계정과 옆에 원형 타이머가 표시됩니다. 이 타이머는 30 초마다 고갈되고 새로운 코드가 생성됩니다.
가능하게!
여기 마법이 온다. PAM 모듈이기 때문에 다양한 장소에서 사용할 수 있습니다. sudo
요청, SSH 로그인 및 lightdm 로그인에 인증을 추가하는 과정을 안내 합니다. 그러나이 학습서를 읽은 후 동일한 기술을 기반으로 다른 곳에서 학습 할 수 있습니다.
SSH
추가 단계가 있기 때문에 먼저이 작업을 수행하고 있습니다. 가장 먼저해야 할 일은 SSH 구성 파일을 편집하는 것입니다.
gksudo gedit /etc/ssh/sshd_config
다음과 같은 줄을 검색하십시오.
ChallengeResponseAuthentication no
“아니오”를 “예”로 변경하십시오.
이제 ssh 용 PAM 모듈을 편집해야합니다.
gksudo gedit /etc/pam.d/sshd
이 파일의 맨 끝에 다음 줄을 추가하십시오.
auth required pam_google_authenticator.so nullok
“nullok”인수는 사용자가 2 단계 인증을 설정하지 않은 경우 인증 코드를 요청 하지 않도록 시스템에 지시 합니다. 편집 후 ssh 서비스를 다시 시작하십시오.
sudo service ssh restart
sudo
요청
다음에 대한 PAM 파일을 편집하십시오 sudo
.
gksudo gedit /etc/pam.d/sudo
맨 끝에 다음 줄을 추가하십시오.
auth required pam_google_authenticator.so nullok
이제 모든 sudo
요청에는 비밀번호와 함께 인증 코드가 필요합니다.
LightDM (GUI 로그인)
LightDM 용 PAM 파일을 편집하십시오.
gksudo gedit /etc/pam.d/lightdm
맨 끝에 다음 줄을 추가하십시오.
auth required pam_google_authenticator.so nullok
그게 다야! GUI를 통해 로그인 할 때마다 비밀번호 다음에 인증 코드를 요청합니다.
시스템 전체 및 TTY 로그인
위의 방법을 사용하더라도 CTRL+ ALT+ 로 TTY로 전환해도 확인 코드를 요청하지 않습니다 F#. 이 문제를 해결하려면 common-auth
PAM 파일을 편집 하십시오.
gksudo gedit /etc/pam.d/common-auth
다음 줄을 맨 끝에 추가하십시오.
auth required pam_google_authenticator.so nullok
참고 : 이 공통 인증 파일은 다른 모든 인증 유형 파일에 포함되므로 다른 파일에서 인증 필수 줄을 제거해야합니다. 그렇지 않으면 확인 코드를 두 번 요청하고 나중에 로그인 할 수 없습니다.
마무리
보시다시피이 인증을 추가하는 것은 매우 쉽습니다. LightDM 이외의 디스플레이 관리자를 사용하는 경우 위의 lightdm 행을 쉽게 변경할 수 있습니다. 모바일 장치와 시스템이이 비밀 키를 이미 공유 했으므로 항상 동기화되어 있어야합니다. 이 설정을 위해 Google 서버 또는 다른 인터넷 리소스와 상호 작용하지 않습니다. 두 장치가 완전히 오프라인 상태 인 경우에도 응용 프로그램에 표시되는 인증 코드는 정확합니다. 사용 설정 한 방법 중 하나를 통해 로그인해야 할 때마다 모바일 애플리케이션을 열고 최신 인증 코드를 확인하십시오.
재밌어요 !!
답변
FreeOTP 는 Google Play의 Google OTP Android 앱 (현재 코드가 오픈 소스가 아님)의 오픈 소스 대안입니다. FreeOTP는 F-Droid (및 Google Play ) 에서 사용할 수 있습니다 .