루트 사용자에 대한 2단계 인증을 설정하기 위해 Google Authenticator를 사용합니다. 이 애플리케이션은 모든 플랫폼에서 사용할 수 있으며 시간에 따라 다릅니다. 따라서 Google 서비스에 대한 액세스가 불가능하더라도 가장 중요한 것은 시간이 동기화되면 모든 것이 올바르게 작동한다는 것입니다.
이 예에서는 표준 사용자가 평소와 같이 비밀번호를 사용하여 ssh에 로그인하는지 확인하지만 su - 명령을 사용하여 루트 사용자에게 권한을 승격하려고 하면 먼저 비밀번호가 필요하고 그 다음 Google Authenticator의 코드가 필요합니다. 애플리케이션.
동시에 이 사용자에 대해 2단계 인증을 강제로 사용하도록 하기 위해 루트 사용자로 ssh에 로그인하는 것을 금지합니다.
1. 필요한 패키지를 설치해 봅시다:
apt install libpam-google-authenticator
2. 첫 번째 설정을 해보자:
./google-authenticator
2.1 결과적으로, 사용할 수 있는 Google 애플리케이션의 대안은 물론 애플리케이션의 코드를 입력하라는 메시지가 표시됩니다 FreeOTP.
2.2 SSH 서비스를 구성해 보겠습니다:
nano /etc/ssh/sshd_config
PermitRootLogin no
UsePAM yes
ChallengeResponseAuthentication yes
설정을 적용하려면 서비스를 다시 시작하세요:
systemctl restart ssh
2.3 su- 명령에 대한 비밀번호를 입력한 후 코드 요청을 설정해 보겠습니다.
파일이 다음과 같이 보이도록 줄을 추가해 보겠습니다.
nano /etc/pam.d/su
...
auth sufficient pam_rootok.so
...
auth required pam_unix.so no_warn try_first_pass
auth required pam_google_authenticator.so
...
3. 완료, 작업을 확인할 수 있습니다. 일반 사용자로 로그인하고 su 명령을 사용하여 루트로 전환을 시도한 후 비밀번호를 입력하면 애플리케이션에서 코드를 입력하라는 메시지가 표시됩니다.
또한:
3.1 SSH에 연결하려고 할 때 코드를 표시하려면 파일에 다음 줄을 추가해야 합니다:
nano /etc/pam.d/sshd
...
@include common-auth
...
auth required pam_unix.so no_warn try_first_pass
auth required pam_google_authenticator.so
...
루트 사용자를 사용하는 경우 SSH 설정에서 로그인을 허용하고, 다른 사용자를 사용하는 경우 다음 명령을 실행하세요:
./google-authenticator
일반 사용자로 루트 사용자에 대해 설명한 것과 동일한 방식으로 구성합니다.