Включаем двухфакторную аутентификацию (2FA) для SSH входа в Linux
Добавлено: 17 май 2024, 14:17
Включаем двухфакторную аутентификацию (2FA) для SSH входа в Linux
https://winitpro.ru/index.php/2021/12/21/2fa-dlya-ssh-v-linux/
apt-get install libpam-google-authenticator
Можно задать сразу задать все настройки $ google-authenticator -t -f -d -w 3 -e 5 -r 3 -R 30
-t – включить вход по одноразовому паролю
-f – сохранить конфигурацию в файле ~/.google_authenticator
-d – запретить использовать предыдущие пароли
-w 3 – разрешить использовать один предудущий и один следующий токен (если время не синхронизировано)
-e 5 – сгенерировать 5 аварийных кодов
-r 3 -R 30 – разрешить не более 3 логинов каждые 30 секунд
Теперь нужно добавить следующую строку в файл /etc/pam.d/sshd:
Опция nullok позволяет пользователю, для которого не настроена двухфакторная аутентификация, входить с помощью только имени и пароля. После настройки и тестирования 2FA рекомендует убрать этот параметр, чтобы требовать обязательное использование двухфакторной аутентификации.
Теперь внесите изменения в файл /etc/ssh/sshd_config: sudo mcedit /etc/ssh/sshd_config
Измените значение в строке ChallengeResponseAuthentication на Yes:
ChallengeResponseAuthentication yes
Сохраните изменения в файле sshd_config и перезапустите sshd: service ssh restartsshd - включить двухфакторную аутентфикацию
Теперь попробуйте подключится к вашему хосту Linux по SSH. Перед вводом пароля у вас будет запрошено ввести код верификации (verification code).
Откройте приложение Authenticator на смартфоне, найдите пользователя вашего сервера. Введите в консоль 6-символьный одноразовый пароль (One-time password code), который сгенерировал для вас Authenticator.
При успешном входе в логе аутентификации появится строка:
cat /var/log/auth.log
Dec 21 09:01:22 srv-ubun01 sshd(pam_google_authenticator)[6242]: Accepted google_authenticator for sysops
Если вы хотите использовать 2FA вместе с SSH аутентификацией по ключам, добавьте следующие директивы в /etc/ssh/sshd_config:
https://winitpro.ru/index.php/2021/12/21/2fa-dlya-ssh-v-linux/
apt-get install libpam-google-authenticator
Можно задать сразу задать все настройки $ google-authenticator -t -f -d -w 3 -e 5 -r 3 -R 30
-t – включить вход по одноразовому паролю
-f – сохранить конфигурацию в файле ~/.google_authenticator
-d – запретить использовать предыдущие пароли
-w 3 – разрешить использовать один предудущий и один следующий токен (если время не синхронизировано)
-e 5 – сгенерировать 5 аварийных кодов
-r 3 -R 30 – разрешить не более 3 логинов каждые 30 секунд
Теперь нужно добавить следующую строку в файл /etc/pam.d/sshd:
Код: Выделить всё
auth required pam_google_authenticator.so nullok
Теперь внесите изменения в файл /etc/ssh/sshd_config: sudo mcedit /etc/ssh/sshd_config
Измените значение в строке ChallengeResponseAuthentication на Yes:
ChallengeResponseAuthentication yes
Сохраните изменения в файле sshd_config и перезапустите sshd: service ssh restartsshd - включить двухфакторную аутентфикацию
Теперь попробуйте подключится к вашему хосту Linux по SSH. Перед вводом пароля у вас будет запрошено ввести код верификации (verification code).
Откройте приложение Authenticator на смартфоне, найдите пользователя вашего сервера. Введите в консоль 6-символьный одноразовый пароль (One-time password code), который сгенерировал для вас Authenticator.
При успешном входе в логе аутентификации появится строка:
cat /var/log/auth.log
Dec 21 09:01:22 srv-ubun01 sshd(pam_google_authenticator)[6242]: Accepted google_authenticator for sysops
Если вы хотите использовать 2FA вместе с SSH аутентификацией по ключам, добавьте следующие директивы в /etc/ssh/sshd_config:
Код: Выделить всё
PasswordAuthentication no
PubkeyAuthentication yes
AuthenticationMethods publickey,keyboard-interactive