Хотите защитить свой 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-authenticator , чтобы создать секретный ключ для этого пользователя.
Разрешите команде обновлять файл 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
Затем откройте файл /etc/ssh/sshd_config , найдите строку ChallengeResponseAuthentication и измените ее следующим образом:
ChallengeResponseAuthentication yes
(Если строка ChallengeResponseAuthentication еще не существует, добавьте приведенную выше строку в файл.)
Наконец, перезапустите сервер SSH, чтобы изменения вступили в силу:
sudo service ssh restart
Вам будет предложено ввести пароль и код Google Authenticator при каждой попытке входа через SSH.