Image

지식 기반 → Centos 7에서 Google Authenticator를 사용하여 SSH에서 2단계 인증 설정

[가상 서버]
출판 날짜: 29.11.2022

SSH 서비스는 가장 많은 비밀번호 추측 공격을 설명합니다. 방금 서버를 시작했으며 몇 시간 후에 로그에서 확인할 수 있습니다. 알 수 없는 IP 주소로부터의 연결 시도를 확인하세요. 시도 횟수를 줄이려면 즉시 sshd 설정에서 포트 번호를 변경하는 것이 좋습니다. 물론 문자, 기호, 숫자를 사용하고 대소문자를 구분하여 복잡한 비밀번호를 지정해야 합니다. Linux 서버의 경우 원칙적으로 2개의 비밀번호(일반 사용자용 비밀번호 1개, 루트용 비밀번호 2개)를 기억해야 합니다. 여러 대의 서버가 있는 경우 일반적으로 세션 설정(호스트, 로그인 및 비밀번호)을 저장하는 다양한 응용 프로그램을 사용합니다. 이는 공격자가 워크스테이션에 액세스할 때까지 매우 정상적인 현상입니다. 어쨌든 감염된 사이트, 소프트웨어 등이 있습니다. 이 데이터가 안전하고 본인만 액세스할 수 있는지 완전히 확신할 수는 없습니다. 이 경우 해결책이 있습니다.

2단계 인증 - 시간과 고유 키에 따라 숫자 형식으로 질문과 질문 답변을 생성하는 애플리케이션이 휴대폰의 로그인 및 비밀번호에 추가됩니다. 로그인과 비밀번호를 입력하면 Google Authenticator 애플리케이션에서 액세스할 수 있는 인증 코드를 입력하라는 메시지가 표시됩니다.

필요한 패키지를 설치해보자

yum install pam pam-devel google-authenticator 

모바일 애플리케이션을 설치해보자

 

설정

기본적으로 sshd 설정에서 사용자 로그인을 비활성화하는 것이 더 좋으므로 방금 새 서버 설정을 시작한 경우 사용자를 생성하십시오. 비밀번호를 입력하고 다음 명령으로 로그인하세요:

adduser username
passwd username
su username


2단계 인증을 설정하려는 사용자로 명령을 실행하세요:

google-authenticator

./google_authenticator 파일을 업데이트할지 묻는 첫 번째 메시지에서 "y"를 클릭하세요. 다중 사용을 비활성화하라는 메시지가 표시되면 "y"를 다시 눌러 다른 사용자가 코드를 사용하지 못하게 하세요. 나머지 옵션에 대해서는 모두 이 소프트웨어의 효율성을 향상시키므로 "y"를 누르십시오.

비밀 키와 긴급 복구 코드를 종이에 복사했는지 확인하세요. 누군가가 이 정보를 발견하더라도 로그인하려면 호스트, 로그인 및 비밀번호를 알아야 하기 때문에 이 정보를 오프라인으로 유지하십시오.

이제 모든 설정을 SSH 서비스에 적용하도록 PAM을 구성하겠습니다. 이러한 작업은 이미 루트 사용자로 수행되어야 합니다

vi /etc/pam.d/sshd

파일의 맨 처음 부분에 줄을 추가하여 다음과 같이 만듭니다:

#%PAM-1.0
auth required pam_unix.so no_warn try_first_pass 
auth required pam_google_authenticator.so

파일에 있던 나머지 줄은 그대로 두고 변경 없이 아래로 이동합니다. 파일을 저장하고 SSH 서비스 설정으로 넘어 갑시다.

vi /etc/ssh/sshd_config

ChallengeResponseAuthentication no" 매개변수를 찾아 "no"를 "yes"로 변경합니다. 변경 사항을 저장하고 서비스를 다시 시작합니다.

service sshd restart

이제 모바일 장치에 애플리케이션을 설정하세요. "수동으로 키 입력" 옵션을 찾아 클릭하세요. 앞서 적어둔 비밀키를 입력하고 저장하세요. 이제 비밀번호를 입력한 후 인증 코드 필드에 입력해야 하는 코드가 나타납니다.

수정:

  • 입력 순서 변경:

우리는 로그인 순서(비밀번호, 인증 코드)를 구체적으로 설정했습니다. 먼저 애플리케이션의 코드를 입력한 다음 비밀번호를 입력하려면 파일이 다음과 같이 보이도록 첫 번째 줄을 제거하면 됩니다:

#%PAM-1.0
auth required pam_google_authenticator.so
  • 루트로 로그인 시 이중 인증

예를 들어 로그인과 비밀번호를 사용하여 일반 사용자로 서버에 로그인하고 su 명령을 입력할 때 루트 비밀번호와 애플리케이션의 코드를 입력합니다. 이전과 마찬가지로 ./google_authenticator 애플리케이션을 루트로 실행합니다. 새 코드로 모바일 애플리케이션을 설정하고 파일에 추가합니다:

vi /etc/pam.d/su

줄의 맨 처음으로:

#%PAM-1.0
auth required pam_unix.so no_warn try_first_pass 
auth required pam_google_authenticator.so


즉, 서비스를 다시 시작할 필요가 없습니다. 이제 루트로 로그인하려고 하면 명령을 실행하려면 애플리케이션의 확인 코드가 필요합니다.


추신 오류를 방지하려면 다른 SSH 세션을 체크인하는 것이 좋습니다. 다시 돌아가서 수정할 기회가 있을 것입니다.





No Comments Yet