2013.05.26 13:32

google OTP로 ssh 접속 보안 강화

Attachment:

6.png [ 18.42 KiB | 1806 번 봄 ] 


안드로이드 및 구글 계정에 보시면 2단계인증이라는게 있습니다.
게임 인증처럼 구글계정에 로그인 할때 안드로이드의 google OTP 인증번호를 이용하여 일회용 암호를 한번더 입력하는 방법 입니다.

Attachment:
ScreenShot%5B1350206556%5D%5B943622%5D.png
ScreenShot%5B1350206556%5D%5B943622%5D.png [ 32.57 KiB | 1806 번 봄 ] 



중국의 ssh 무한대입 공격을 막을 수 있는 방법중의 하나로 이러한 google OTP를 ssh 접속에 이용 할 수 있습니다.

Attachment:
4.png
4.png [ 33.64 KiB | 1806 번 봄 ] 


일단 libpam-google-authentic 패키지를 설치합니다. synaptic 이나 아래와 같이 루트권한 터미널에서 

Code:
apt-get install libpam-google-authentic

으로 패키지를 설치합니다.
그리고 루트권한으로 gedit 이나 vim nano 같은 텍스트 편집기로 /etc/pam.d/sshd을 수정합니다.

Code:
# Standard Un*x authentication.
@include common-auth


이 부분위에

Code:
#google otp
auth required pam_google_authenticator.so


이부분을 삽입합니다.

두번째로 루트권한 편집기에서 /etc/ssh/sshd_config 를 수정합니다.
PasswordAuthentication이 입력된부분을 찾으셔서 (없으면 추가합니다.)

Code:
PasswordAuthentication no

으로 바꿉니다(즉 yes 를 no로)
위와 같은 방법으로 ChallengeResponseAuthentication 부분의 no를 yes로 수정합니다.

Code:
ChallengeResponseAuthentication yes


마지막으로 UsePAM 부분을 yes로 수정합니다.

Code:
UsePAM yes



끝으로 루트권한으로

Code:
/etc/init.d/sshd restart

을 실행하여 ssh 서버에 설정을 반영합니다.

이제 터미널 권한을 실제 ssh로 로그인할 계정으로 바꿈니다.
이 상태에서

Code:
google-authenticator

를 실행하면 다음과 같은 화면이 나옵니다.

Attachment:
3.png
3.png [ 29.01 KiB | 1806 번 봄 ] 


몇가지를 물어보는데 모두 y하시면됩니다(보안상 otp를 공유하지않을것인지 제한시간을 축소할 것 인지..)
이제 핸드폰을 듭니다.
구글 마켓에서 google OTP를 설치합니다.

Attachment:
ScreenShot%5B1350208686%5D%5B79608%5D.png
ScreenShot%5B1350208686%5D%5B79608%5D.png [ 126.73 KiB | 1806 번 봄 ] 


google OTP를 실행 하시고 메뉴키를 눌러 계정설정을 들어가시면 아래와 같이 두가지 선택지가 존재합니다.

Attachment:
ScreenShot%5B1350206561%5D%5B355456%5D.png
ScreenShot%5B1350206561%5D%5B355456%5D.png [ 23.91 KiB | 1806 번 봄 ] 


바코드 스캔을 눌러 위의 google-authenticator를 실행결과에서 qr코드를 입력하거나
제공된 키메뉴에서 secret key를 입력합니다.
그후 60초마다 아래와 같이 6자리숫자의 OTP가 생성됩니다.

Attachment:
ScreenShot%5B1350206556%5D%5B943622%5D.png
ScreenShot%5B1350206556%5D%5B943622%5D.png [ 32.57 KiB | 1806 번 봄 ] 



반드시 서버의 시간이 올바른시간이어야 OTP가 일치하게됩니다.

putty로 접속을 해보겠습니다.
보통접속과정과 동일하게 해주시면 되는데 하나 설정해주어야 할것이 있습니다(putty만 이런 옵션이있군요)

Attachment:
7.png
7.png [ 19.06 KiB | 1806 번 봄 ] 


Quote:
connection->SSH->Auth

화면에서 

Code:
attempt "Keyboard-Interactive" auth (SSH-2)

를 선택하여야 ssh 접속이 됩니다.
이제 접속하시면 ID 입력후

Quote:
Verification code:

입력창이 뜨게되는이 이 시점에서 핸드폰에 뜬 인증코드를 입력뒤 암호를 입력하시면됩니다.

ps. 그림크기 조정방법을 몰라서 그냥 올렸더니 조금 산만할 한거같네요..



출처 : http://www.ubuntu.or.kr/

저작자 표시 비영리 변경 금지
신고

Trackback 0 Comment 1
  1. 이장호 2017.06.09 12:20 신고 address edit & del reply

    안녕하세요! 이번에 서버 운영을 맡으면서 접근 계정에 대한 추가인증을 구글OTP로 적용하려고 해당 페이지를 방문하게 되었습니다.

    일단 yum으로 google-authenticator는 설치가 안되고 git 소스로 설치를 진행하면 libpam 디렉토리가 존재하지 않습니다.

    [google-authenticator] 디렉토리 내에 mobile 디렉토리와 LICENSE, README.md 파일만 존재하는데 혹시 이유를 알고 계신가요?