Отраслевые стандарты для использования Google-аутентификатора с пользователями Linux?

Хотелось бы спросить, особенно тех, кто работает в больших средах с большим количеством пользователей, существуют ли какие-либо стандартизированные или рекомендованные отраслью способы безопасного распространения кодов подтверждения для удаленных пользователей и / или принуждения пользователя к повторному запуску google-authenticator с самого начала время, когда они входят через ssh на хост Linux, который сконфигурирован с модулем libpam, требующим, чтобы пользователь вводил пароль unix плюс код проверки каждый раз, когда они входят через ssh? Предполагая, что системный администратор настраивает учетную запись, есть ли способ сделать это;

(а) не требовать google-authenticator при первом входе в систему и заставлять их запускать его, чтобы они могли безопасно получить свой проверочный код, или (b) системный администратор запускает его для них как часть создания учетной записи, и безопасно (и легко, учитывая, что может быть много пользователей) распространяет код плюс пароль Unix для пользователя?

Обратите внимание, что системный администратор может использовать команду "chage", чтобы заставить пользователя изменить свой пароль Unix при первом входе в систему.

Меня интересуют все практические решения этой проблемы, особенно те, которые успешно применяются в больших средах. Как вы получаете двухфакторные коды для новых пользователей? Отправить это через текстовое сообщение на свои мобильные телефоны? Написать это на листах бумаги и передать им? ....?

2 ответа

Мне не известны какие-либо общедоступные решения (с открытым исходным кодом или иным образом) для распространения ключей в локальных системах. Я сделал это двумя способами.

1) FreeIPA (Redhat IDm)

Если у вас есть возможность использовать FreeIPA для своей системы управления пользователями, вы можете добавить TOTP/Google Authentication для всех учетных записей, управлять тем, какие системы требуют 2FA, с помощью HBAC.

2) Внутреннее приложение написано разработчиками

В одном случае мы централизованно хранили секреты BASE32 в базе данных SQL (с шифрованием 2016 года) и распределяли эти ключи на серверах аутентификации шлюза (радиус). Каждый из этих серверов имеет агента, который извлекает ключи из конечной точки API и записывает их в определенную папку. Наше внутреннее приложение также используется для другой информации о сотрудниках, поэтому мы предоставляем их QR-коды. Мы не используем google-auth для генерации кода, просто сам модуль pam.

Мы также не писали одноразовые ключи использования, поскольку эти ключи фактически не были бы одноразовыми, и перераспределение этих файлов предотвратило бы вращение этих ключей.

Также примите во внимание локальные права доступа к файлам, пользователей сервиса и selinux, не запускайте pam от имени пользователя root.

Насколько я знаю, нет никакого отраслевого стандарта в отношении google 2fa.

Если у вас есть решение для управления конфигурацией, вы можете использовать его для развертывания Google 2fa для всех ваших пользователей.

У меня была такая же потребность, как и у вас, в моем случае я написал модуль Ansible, который устанавливает, настраивает и отображает аварийные ключи для пользователя, ожидая, что пользователь будет достаточно ответственным, чтобы записать их для себя.

Модуль также создает пользователя с именем "спасение", который всегда может получить доступ к машине.

С небольшим дополнением к модулю вы можете заставить модуль экспортировать аварийные ключи каждого пользователя на некоторый общий сетевой диск, которым вы будете управлять / резервировать.

Я не уверен, что это полный ответ для вас, но посмотрите на мой модуль.

Другие вопросы по тегам