Image

База знаний → Настройка двух факторной авторизации в ssh для root на Debian 12

[Виртуальные сервера]
Дата публикации: 05.10.2023

Для настройки двух факторной авторизации для пользователя root мы будем использовать Google Authenticator. Данное приложение доступно для всех платформ и имеет временную зависимость. Таким образом даже в случае если доступ к сервисам google будет невозможен - главное чтобы было синхронизировано время, тогда все будет корректно работать.

В нашем примере мы сделаем так, чтобы обычный пользователь заходил в ssh используя пароль, как и обычно, а при попытке повысить привилегии до пользователя root используя команду su - , сначала требовалось ввести пароль и потом код из приложения Google Authenticator.

При этом запретим в ssh заходить от пользователя root, чтобы принудительно заставить использовать для данного пользователя двухфакторную авторизацию.

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. Готово, можно проверить работу, после логина под обычным пользователем и попыткой переключиться в root командой 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
...

В случае использования пользователя root, разрешить логин в настройках ssh, в случае другого пользователя запустить команду:

./google-authenticator

из-под обычного пользователя и настроить аналогично как мы описали это для пользователя root.





Нет комментариев