При применении двухфакторной аутентификации, кроме традиционного логина/пароля
или ключа требуется ввести код подтверждения, получаемый с устройства, заведомо
принадлежащего владельцу аккаунта. Наиболее простым способом является
использование открытого проекта Google Authenticator, который предоставляет
мобильное приложение для генерации одноразовых паролей (TOTP) и PAM-модуль для
установки на стороне сервера.
На сервере устанавливаем PAM-модуль и утилиту настройки, которые во многих
дистрибутивах содержится в пакете google-authenticator:
sudo yum install google-authenticator
Устанавливаем на мобильный телефон приложение Google Authenticator, которое
доступно для Android, iOS, Firefox OS и других платформ.
На сервере под учётной записью пользователя, для которого хотим включить
двухфакторную аутентификацию, запускаем команду:
google-authenticator
которая отобразит картинку с QRcode, которую необходимо снять через камеру
телефона из мобильного приложения Google Authenticator, а также покажет коды
экстренного восстановления, которые позволят восстановить доступ в случае
потери смартфона.
Для включения двухфакторной аутентификации в SSH на сервере активируем
PAM-модуль, добавив в /etc/pam.d/sshd строку:
auth required pam_google_authenticator.so
В конфигурации OpenSSH /etc/ssh/sshd_config активируем опцию ChallengeResponseAuthentication:
ChallengeResponseAuthentication yes
Не забываем перезапустить sshd:
sudo service sshd restart
Теперь при попытке входа по SSH потребуется ввести не только пароль, но и
действующий несколько секунд одноразовый код, который следует получить из
мобильного приложения.
Verification code: ********
Password: ********
Кроме SSH, на рабочей станции можно добавить поддержку двухфакторной
аутентификации в экранный менеджер GDM, для этого добавим в файл
/etc/pam.d/gdm-password строку:
auth required pam_google_authenticator.so
При следующем входе, кроме пароля GDM запросит одноразовый код подтверждения.
|