Двухфакторная аутентификация в Linux для SSH и терминала

При входе в систему необходимо ввести пароль, пин-код или ключ. Этот метод может обеспечить только базовый уровень защиты Linux. Более безопасный способ авторизации в Linux — использовать двухэтапную авторизацию (MFA). Как настроить двухфакторную аутентификацию в Linux для авторизации по SSH, использования консоли и выполнения команд sudo, и пойдет речь.

Двухэтапную авторизацию в Linux для авторизации по SSH, использования консоли и выполнения команд Sudo, можно настроить без всяких аппаратных токенов, GSM-модемов для отправки SMS и других устройств. Настроить двухэтапную аутентификация в Linux можно с использованием Google Authenticator. Решение предусматривает Ubuntu 18, но будет работать и на Debian 10.

Установите приложение Google Authenticator на свой смартфон.

1.jpg

Установите модуль PAM Google Authenticator на компьютер в Linux:

sudo apt install libpam-google-authenticator

2.jpg

Запустите команду и введите y:

google-authenticator

Добавьте аккаунт в свой гугл-аутентификатор (в свой смартфон):

3.jpg

Сохраните созданные коды. Это поможет восстановить доступ, в случае потери телефона.

В конец файла /etc/pam.d/sshd добавьте строку:

auth required pam_google_authenticator.so nullok

Если хотите заставить каждого пользователя использовать двухэтапную авторизацию в этой системе, тогда удалите nullok.

4.jpg

Настройте /etc/ssh/sshd_config и убедитесь, что эта строка имеет значение yes:

ChallengeResponseAuthentication yes

5.jpg

Перезапустите службы sshd:

sudo service sshd restart

Если все сделали правильно, тогда будет предложено ввести пароль и код подтверждения.

6.jpg

Добавьте строку /etc/pam.d/common-session в конец файла с помощью скрипта:

auth required pam_google_authenticator.so nullok

Как я уже говорил ранее, если вы хотите заставить каждого пользователя использовать двухэтапную авторизацию в этой системе, тогда удалите nullok.

7.jpg

Сохраните файл конфигурации.

Попробуйте выйти из консоли и снова войти в систему. Если все сделали правильно, появится запрос ввести пароль и код подтверждения Google Authenticator.

8.jpg

Добавьте строку /etc/pam.d/common-auth в конец файла:

auth required pam_google_authenticator.so nullok

Теперь при попытке выполнить команду sudo, будет предложено ввести пароль и проверочный код.

9.jpg

Защитите файл .google_authenticator. Файл содержит ваш основной код подтверждения, который позволит обойти аутентификатор Google.

10.jpg

11.jpg