Как я могу использовать генератор паролей для аутентификации для удаленных логинов?

54

Я хотел бы усилить аутентификацию своих логинов SSH, добавив еще один фактор: устройство генератора паролей или приложение генерации кода на моем мобильном телефоне. Единственными очевидными параметрами в настройке по умолчанию являются фиксированный пароль и пара ключей. Как я могу это сделать?

(Если я использую пароль и генератор кода паролей, это обеспечивает двухфакторную аутентификацию (2FA): пароль «то, что я знаю», а пароль - «то, что у меня есть».)

    
задан Jorge Castro 05.07.2012 в 00:00
источник

3 ответа

49

Один из способов сделать это - это инструмент, предоставленный Google под названием Google Authenticator .

  1. Установите libpam-google-authenticator

    • или просто sudo apt-get install libpam-google-authenticator
  2. Измените /etc/pam.d/sshd , чтобы включить модуль:

    • sudoedit /etc/pam.d/sshd
    • , а затем включите эту строку в верхнюю часть файла и сохраните:

      auth required pam_google_authenticator.so
      
  3. Измените конфигурационный файл SSH, чтобы включить вызов:

    • sudoedit /etc/ssh/sshd_config , а затем измените аутентификацию ответа:

      ChallengeResponseAuthentication no 
      

      к

      ChallengeResponseAuthentication yes
      

      , а затем сохраните файл.

  4. sudo restart ssh для перезапуска SSH

  5. Выполнить google-authenticator

    • Это даст вам секретный ключ, код подтверждения и коды аварийной царапины. Он также спросит вас о некоторых вопросах ограничения ставок.

Мобильные приложения:

Вам понадобится один из них, чтобы получить код аутентификации на другом устройстве.

Связанные и полезные:

  • Большая часть этого ответа получена из этого блога Жан-Франсуа Теро, но обновленный.
  • Вики-страница Google Authenticator
  • Ссылка
  • Ссылка
  • Я понимаю, что если вы используете безлинные логины через SSH-ключи, которые вы можете делать только один или другой, см. этот вопрос: Как настроить пароль без SSH?
  • И если вы используете Puppet, здесь есть кукольный модуль: Ссылка
  • См. ответ Maarten и ссылку на вопрос github о том, почему вам нужно добавить строку .so в верхней части вашей конфигурации pam: Ссылка

Обратите внимание, что объединение пароля с одноразовыми паролями - двухфакторная аутентификация: он объединяет "то, что вы знаете" (пароль) с "тем, что у вас есть" (устройство генератора паролей). С другой стороны, если вы комбинируете одноразовые пароли с парой ключей SSH, все дело в том, "что у вас есть". Если два фактора аутентификации одного типа, у вас нет двухфакторной аутентификации; это иногда называют "однофакторной аутентификацией".

    
ответ дан Jorge Castro 05.07.2012 в 00:00
источник
12

Google Authenticator отлично подходит для ваших персональных серверов, но вы можете обнаружить, что он не хорошо связан с существующей инфраструктурой идентификации. Если вы хотите изучить другие варианты, подумайте об использовании RADIUS в качестве протокола проверки подлинности и плагина pam-radius. Радиус поддержки всех двухфакторных систем аутентификации предприятия. Мы написали документ о том, как добавить Двухфакторная аутентификация WiKID через pam-radius до Ubuntu .

Использование радиуса позволяет вам связывать другие системы, кроме SSH, с тем же сервером аутентификации. Вы также можете перенаправлять запросы авторизации через freeradius на LDAP, а затем на ваш сервер 2FA для разделения авторизации от аутентификации. Вы можете сделать то же самое с AD btw.     

ответ дан nowen 05.07.2012 в 15:47
1

Я призываю всех поместить следующую строку в верхнюю часть , а не внизу /etc/pam.d/sshd , как описано выше ранее (теперь исправлено):

auth required pam_google_authenticator.so

В противном случае ваша система останется открытой для атаки грубой силы на вашем пароле, включая первую часть двухфакторной аутентификации: ваш пароль.

Сначала вам будет задан ваш код подтверждения, а затем ваш пароль (независимо от того, был ли код верным). Если кто-то ошибается, вам нужно ввести оба раза. Вы можете настроить его по-другому, но это немного сложнее изменить для описания текущей конфигурации ubuntu (15.04) sshd по умолчанию.

Подробнее о том, почему это необходимо, проверьте эту проблему:

Ссылка

    
ответ дан Maarten 02.09.2015 в 10:56