Я хотел бы усилить аутентификацию моих SSH-входов, добавив еще один фактор: устройство генерации паролей или приложение для генерации паролей на моем мобильном телефоне. Единственными очевидными параметрами в настройках по умолчанию являются фиксированный пароль и пара ключей. Как я могу это сделать?
(Если я использую пароль плюс генератор паролей, это обеспечивает двухфакторную аутентификацию (2FA): пароль - «что я знаю», и Код доступа «что у меня есть».)
Один способ сделать это с инструментом, обеспеченным Google, названным Google Authenticator.
libpam-google-authenticator установки
sudo apt-get install libpam-google-authenticator
Править /etc/pam.d/sshd
включать модуль:
sudoedit /etc/pam.d/sshd
и затем включайте эту строку наверху файла и сохраните:
auth required pam_google_authenticator.so
Отредактируйте свой файл конфигурации SSH для включения проблемы:
sudoedit /etc/ssh/sshd_config
и затем измените аутентификацию ответа от:
ChallengeResponseAuthentication no
кому:
ChallengeResponseAuthentication yes
и затем сохраните файл.
sudo restart ssh
перезапускать SSH
Выполненный google-authenticator
Вам будет нужен один из них для получения кода аутентификации на другом устройстве.
Обратите внимание, что объединение пароля с паролями единственного использования является двухфакторной аутентификацией: это комбинирует, “что Вы знаете” (пароль) с, “что Вы имеете” (устройство генератора пароля). С другой стороны, при объединении паролей единственного использования с парой ключей SSH это - все о, “что Вы имеете”. Когда два фактора аутентификации имеют тот же тип, у Вас нет двухфакторной аутентификации; это иногда называют “one-and-a-half-factor аутентификацией”.
Google Authenticator подходит для ваших персональных серверов, но вы можете обнаружить, что он плохо сочетается с вашей существующей инфраструктурой идентификации. Если вы хотите изучить другие варианты, подумайте об использовании RADIUS в качестве протокола аутентификации и плагина pam-radius. Все ориентированные на предприятие системы двухфакторной аутентификации поддерживают радиус. Мы написали документ о том, как добавить двухфакторную аутентификацию WiKID через pam-radius в Ubuntu .
Использование радиуса позволяет связать другие системы, помимо SSH, с тем же сервером аутентификации. Вы также можете направить запросы авторизации через freeradius на LDAP, а затем на сервер 2FA, чтобы отделить авторизацию от аутентификации. Вы можете сделать то же самое с AD, кстати.
Я призываю всех поставить следующую строку вверху , а не внизу в /etc/pam.d/sshd
, как описано выше (теперь исправлено):
auth required pam_google_authenticator.so
В противном случае ваша система останется открытым для атак методом перебора на ваш пароль, включающий первую часть двухфакторной аутентификации: ваш пароль.
Сначала вас попросят ввести код подтверждения, а затем пароль (независимо от того, был ли этот код правильным). Если один из них неправильный, вам нужно ввести оба снова. Вы можете настроить его наоборот, но это немного сложнее изменить, чтобы описать его в текущей конфигурации ubuntu (15.04) sshd по умолчанию.
Для получения подробной информации, почему это необходимо, проверьте эту проблему: