Как защитить SSH с помощью двухфакторной аутентификации Google Authenticator
Хотите защитить свой SSH-сервер простой в использовании двухфакторной аутентификацией? Google предоставляет необходимое программное обеспечение для интеграции системы одноразового пароля (TOTP) Google Authenticator с вашим сервером SSH. Вам нужно будет ввести код с вашего телефона при подключении.
Google Authenticator не «звонит домой» в Google - вся работа происходит на вашем SSH-сервере и вашем телефоне. На самом деле, Google Authenticator является полностью открытым исходным кодом, так что вы можете даже самостоятельно изучить его исходный код..
Установите Google Authenticator
Для реализации многофакторной аутентификации с помощью Google Authenticator нам потребуется модуль PAM Google Authenticator с открытым исходным кодом. PAM означает «подключаемый модуль аутентификации» - это способ легко подключить различные формы аутентификации к системе Linux.
Репозитории программного обеспечения Ubuntu содержат простой в установке пакет для модуля PAM Google Authenticator. Если ваш дистрибутив Linux не содержит пакета для этого, вам придется скачать его со страницы загрузок Google Authenticator в Google Code и скомпилировать его самостоятельно..
Чтобы установить пакет в Ubuntu, выполните следующую команду:
sudo apt-get установить libpam-google-authenticator
(Это только установит модуль PAM в нашей системе - нам придется активировать его для входа по SSH вручную.)
Создайте ключ аутентификации
Войдите в систему как пользователь, с которым вы будете входить удаленно, и запустите Google-аутентификатор Команда для создания секретного ключа для этого пользователя.
Разрешите команде обновлять файл Google Authenticator, введя y. Затем вам будет предложено ответить на несколько вопросов, которые позволят вам ограничить использование одного и того же временного токена безопасности, увеличить временное окно, для которого можно использовать токены, и ограничить количество разрешенных попыток доступа, чтобы воспрепятствовать попыткам взлома методом перебора. Все эти варианты обменивают некоторую безопасность на простоту использования.
Google Authenticator предоставит вам секретный ключ и несколько «аварийных скретч-кодов». Запишите аварийные скрет-коды где-нибудь в безопасности - их можно использовать только один раз каждый, и они предназначены для использования в случае потери телефона.
Введите секретный ключ в приложении Google Authenticator на своем телефоне (официальные приложения доступны для Android, iOS и Blackberry). Вы также можете использовать функцию сканирования штрих-кода - перейдите по URL-адресу, расположенному в верхней части вывода команды, и вы можете отсканировать QR-код с помощью камеры вашего телефона..
Теперь у вас будет постоянно изменяющийся код подтверждения на вашем телефоне.
Если вы хотите войти в систему как несколько пользователей, выполните эту команду для каждого пользователя. У каждого пользователя будет свой секретный ключ и свои коды.
Активировать Google Authenticator
Далее вам потребуется Google Authenticator для входа в SSH. Для этого откройте /etc/pam.d/sshd файл в вашей системе (например, с sudo nano /etc/pam.d/sshd команда) и добавьте в файл следующую строку:
требуется авторизация pam_google_authenticator.so
Далее откройте / И т.д. / SSH / sshd_config файл, найдите ChallengeResponseAuthentication и измените его следующим образом:
ChallengeResponseAuthentication yes
(Если ChallengeResponseAuthentication строка еще не существует, добавьте вышеуказанную строку в файл.)
Наконец, перезапустите сервер SSH, чтобы изменения вступили в силу:
sudo service ssh restart
Вам будет предложено ввести пароль и код Google Authenticator при каждой попытке входа через SSH..