Как настроить двухфакторную аутентификацию в Ubuntu для пользователей Ubuntu, использующих Google authenticator?

11

Как настроить двухфакторную аутентификацию в Ubuntu для пользователей Ubuntu, использующих Google authenticator (это также можно настроить для учетных записей не из Google)?

Hrish
источник

Ответы:

16

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


Используйте ниже шаги, чтобы настроить его.

  1. Установите ниже указанный пакет, чтобы установить Google authenticator, который мы будем использовать как дополнение к PAM-аутентификации:

    sudo apt-get install libpam-google-authenticator
    
  2. Теперь отредактируйте /etc/pam.d/sshdэтот файл и добавьте Google Authenticator, как указано ниже:

    *sudo vim /etc/pam.d/sshd
    

    введите внизу вверху этот файл-

    auth required pam_google_authenticator.so
    
  3. Здесь мы должны внести изменения, /etc/ssh/sshd_configчтобы ssh использовал Google Authenticator. Таким образом, мы гарантируем, что ssh использует двухфакторную аутентификацию.

    vim /etc/ssh/sshd_config
    

    В этом файле мы должны найти ChallengeResponseAuthenticationи раскомментировать и / или изменить его, чтобы он выглядел так, как показано ниже (короче, установите его в yes: P):

    ChallengeResponseAuthentication yes
    

    Дополнительная или двухфакторная аутентификация GUI, иначе пропустите это и перейдите к шагу 4. Чтобы включить его для входа в GUI, отредактируйте /etc/pam.d/common-auth:

    sudo vim /etc/pam.d/common-auth
    

    и теперь добавьте это auth required pam_google_authenticator.soнад строкой, auth [success=1 default=ignore] pam_unix.so nullok_secureзатем сохраните файл.

  4. Теперь перейдите к учетной записи, на которой вы хотите его настроить.
    ( Примечание. Я бы предложил создать в системе не менее двух учетных записей суперпользователей, кроме учетной записи root, и настроить ее как минимум для одной из них в первую очередь, но не для учетной записи root.)

    sudo su - testuser1
    
  5. Теперь мы будем использовать команду ниже для настройки двухфакторной аутентификации для этого testuser1:

    google-authenticator
    
  6. Выполнение этой команды задаст вам вопрос ниже. (рекомендуемый ответ - да)

    Хотите ли вы, чтобы токены аутентификации основывались на времени (да / нет)?

  7. После этого он покажет вам QR-код и коды аварийных царапин и некоторые другие детали. Выход должен выглядеть следующим образом:

    введите описание изображения здесь

  8. Теперь вам нужно использовать свой телефон Android / Apple / Blackberry для загрузки и установки приложения Google Authenticator из соответствующих рынков, например из магазина Google Play. который сгенерирует код для вас, чтобы войти.

    Ниже представлены скриншот приложения Icon и приложения, взятые из приложения Android phone.

    введите описание изображения здесь введите описание изображения здесь

  9. Запустите приложение на своем телефоне и отсканируйте QR-код, либо используйте секретный ключ и проверочный код, указанный под QR-кодом в системе, который вы также можете увидеть на первом скриншоте выше.

  10. После того, как все это будет сделано, очень важно записать и сохранить ваши аварийные скретч-коды в безопасном месте, так как это коды, которые могут помочь вам в случае, если вы каким-то образом заблокированы.

  11. На данный момент вы должны взглянуть на нижнюю часть экрана, где он задает вам вопрос ниже. (рекомендуемый ответ - да):

    Вы хотите, чтобы я обновил ваш файл "/home/testuser1/.google_authenticator" (да / нет)

  12. Снова он задаст вам еще один вопрос, и рекомендуемый ответ на следующий вопрос также Да:

    Вы хотите запретить многократное использование одного и того же токена аутентификации? Это ограничивает вас одним входом примерно каждые 30 секунд, но увеличивает ваши шансы заметить или даже предотвратить атаки «человек посередине» (да / нет)

  13. Следующий вопрос будет таким, как приведенный ниже, и рекомендуемый ответ для него - Нет:

    По умолчанию токены работают в течение 30 секунд, и для компенсации возможного перекоса времени между клиентом и сервером мы разрешаем дополнительный токен до и после текущего времени. Если у вас возникли проблемы с плохой синхронизацией времени, вы можете увеличить размер окна по умолчанию от 1: 30 минут до 4 минут. Вы хотите сделать это (да / нет) n

  14. И последний вопрос будет таким, как приведенный ниже, и рекомендуемый ответ для него - «Да»:

    Если компьютер, на который вы входите, не защищен от попыток входа в систему методом подбора, вы можете включить ограничение скорости для модуля аутентификации. По умолчанию это ограничивает злоумышленников не более 3 попыток входа в систему каждые 30 секунд. Вы хотите включить ограничение скорости (y / n) y

  15. Теперь переключитесь из этой учетной записи, чтобы вернуться к учетной записи root:

    exit
    
  16. Теперь перезапустите службу SSH

    service ssh restart
    

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

введите описание изображения здесь

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

Hrish
источник
Когда я его удаляю, возникает проблема каждый раз, когда я запускаю команду с sudo: sudo: Ошибка аутентификации PAM: модуль неизвестен
bagustris
@bagustris Вы должны отредактировать файл "/etc/pam.d/common-auth" и удалить эту запись "auth required pam_google_authenticator.so". После того, как вы удалите его.
Хриш
для редактирования /etc/pam.d/common-auth требуется sudo. Поскольку sudo больше не работает, мне нужна живая ОС (или в моем случае, поскольку я загружаюсь с Mac OS одновременно, я могу редактировать ее из OS X с установленным разрешением на запись).
Bagustris
1
@bagustris Вы можете сделать это, перейдя в режим восстановления.
Хриш
1
Было бы безопаснее не потерять доступ к машине, если на шаге 2 мы используем auth optionalвместо auth required. В противном случае вход в систему невозможен, если сеанс завершается сбоем и процесс не завершен.
Паскаль