В этой статье мы покажем, как настроить двухфакторную аутентификацию (2FA) для SSH входа на Linux сервер с помощью Google PAM (Pluggable Authentication Module) и мобильного приложения Microsoft Authenticator . 2FA позволяет добавить дополнительный слой безопасности при аутентификации на Linux хосте по SSH. Теперь для входа на сервер кроме имени и пароля пользователя (rsa ключа), вы должны будете ввести одноразовый цифровой пароль (Time-based One-time Password — TOTP), который генерируется в вашем смартфоне.
Установите на свой смартфон мобильное приложение Microsoft Authenticator (доступно как в Google Store, так и в App Store).
Теперь нужно установить и настроить пакет Google PAM на вашем Linux сервере:
sudo apt-get install libpam-google-authenticator
В RHEL/CentOS/Fedora: yum install google-authenticator
google-authenticator
Y -> Enter
Y -> Enter
Y -> Enter
Y -> Enter
Y -> Enter
$ 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 секунд
auth required pam_google_authenticator.so nullok
sudo mcedit /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
Теперь попробуйте подключится к вашему хосту Linux по SSH. Перед вводом пароля у вас будет запрошено ввести код верификации (verification code).
Откройте приложение Authenticator на смартфоне, найдите пользователя вашего сервера. Введите в консоль 6-символьный одноразовый пароль (One-time password code), который сгенерировал для вас Authenticator.
Обратите внимание, что этот одноразовый код ограничен по времени (по умолчанию 30 секунд). Если вы ввели правильный одноразовый код, появится предложение ввести пароль пользователя Linux.
При успешном входе в логе аутентификации появится строка:
cat /var/log/auth.log
Dec 21 09:01:22 srv-ubun01 sshd(pam_google_authenticator)[6242]: Accepted google_authenticator for sysops
Если указать неверный код, в логе будут ошибки:
Dec 21 09:02:38 srv-ubun01 sshd(pam_google_authenticator)[6436]: Invalid verification code for sysops_x000D_Dec 21 09:02:40 srv-ubun01 sshd[6436]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.14.1 user=sysops
Если вы хотите использовать 2FA вместе с SSH аутентификацией по ключам, добавьте следующие директивы в /etc/ssh/sshd_config:
PasswordAuthentication no_x000D_PubkeyAuthentication yes_x000D_AuthenticationMethods publickey,keyboard-interactive
Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…
В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…
Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…
Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…
Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…
В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…