2 단계 인증을 사용하여 시스템을 추가로 보호하려면 어떻게해야합니까?


16

제목은 거의 말합니다. 2 단계 인증, 일회용 암호, 하드 토큰 및 기타 향상된 보안 기능에 대해 더 많이 듣고 있습니다. 암호 만 사용하는 보안이 감소함에 따라 우분투의 보안을 향상시키는 방법을 알고 싶습니다. Unity와 함께 14.04 LTS를 사용하고 있습니다.

답변:


30

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-authPAM 파일을 편집 하십시오.

gksudo gedit /etc/pam.d/common-auth

다음 줄을 맨 끝에 추가하십시오.

auth required pam_google_authenticator.so nullok

참고 : 이 공통 인증 파일은 다른 모든 인증 유형 파일에 포함되므로 다른 파일에서 인증 필수 줄을 제거해야합니다. 그렇지 않으면 확인 코드를 두 번 요청하고 나중에 로그인 할 수 없습니다.

마무리

보시다시피이 인증을 추가하는 것은 매우 쉽습니다. LightDM 이외의 디스플레이 관리자를 사용하는 경우 위의 lightdm 행을 쉽게 변경할 수 있습니다. 모바일 장치와 시스템이이 비밀 키를 이미 공유 했으므로 항상 동기화되어 있어야합니다. 이 설정을 위해 Google 서버 또는 다른 인터넷 리소스와 상호 작용하지 않습니다. 두 장치가 완전히 오프라인 상태 인 경우에도 응용 프로그램에 표시되는 인증 코드는 정확합니다. 사용 설정 한 방법 중 하나를 통해 로그인해야 할 때마다 모바일 애플리케이션을 열고 최신 인증 코드를 확인하십시오.

재밌어요 !!


나중에 메모에 대한 주석. 잘 작성되었습니다! +1 =)
Terrance

+1-이것은 정말 시원하고 잘 쓰여졌습니다.
Nathan Osman

1
그런 다음 휴대 전화에서 더 이상 전원이 공급되지 않고 종료하려고합니다. :) +1
Rinzwind 2016 년

그것은 스크래치 코드를위한 것입니다. @Rinzwind : D

TTY에서 2 단계 사용을위한 지침에 추가되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.