Рейтинг:1

Принудительная конфигурация 2FA при следующем входе в SSH для каждого пользователя

флаг cn
phk

Я нашел множество руководств о том, как включить 2FA (TOTP, RFC 6238), но есть ли способ заставить пользователей SSH настроить его при первом входе в систему? (Я использую сервер OpenSSH)

Думаю, я мог бы создать скрипт, который запускается каждый раз и проверяет, .google_authenticator для конкретного пользователя существует, а если нет, то запускается Google-аутентификатор пока не сделает, а потом редактирует /etc/pam.d/sshd (э-э-э), а в противном случае запускает оболочку/команду по умолчанию… но, возможно, есть много непредвиденных крайних случаев и возможностей взлома SSH-логина.

Итак, прежде чем я, возможно, заново изобрету колесо, и сделаю это бессистемно, существует ли уже существующее решение?

Я бы предположил, что это так, поскольку это норма для программного обеспечения, ориентированного на пользователя, например. На ум приходят Gitlab и Gsuite, где вы можете заставить пользователей настроить 2FA при следующем входе в систему.

Рейтинг:1
флаг in

Я не уверен, что кто-то уже написал сценарий общего назначения, потому что эти вещи иногда зависят от требований.

Что я могу предложить, так это использовать файлы env (.bashrc, .bash_profile и т. д.), чтобы изменить файл ssh/2FA и т. д.

Анатомия скрипта будет такой, как показано ниже:

если <проверить наличие файла 2fa>
    # выполнить это, если найдено
    # или продолжить
еще
    # настроить 2FA и выйти для следующего входа в систему.
флаг cm
Нельзя ли просто перезаписать сценарий или вырваться из него?
asktyagi avatar
флаг in
Никто не может сделать, если он обрабатывается правильно, просто для подсказки зафиксируйте сигнал выхода в скрипте, чтобы никто не мог его сломать. Также вышеперечисленное не может справиться с масштабированием, рекомендуется использовать инструмент IaaS.
phk avatar
флаг cn
phk
Хм… вы можете сделать `ssh [target] bash --noprofile --norc` (или аналогичный), если только не используется `ForceCommand` или `command=` внутри `authorized_keys`. Но тогда сама установка не предназначена для обеспечения безопасности. Кроме того, это не сломает `scp` или `sshfs`. Но, с другой стороны, я хотел бы также защитить те ssh-аккаунты, которые используются для неинтерактивных вещей… чем больше я об этом думаю, тем сложнее становится эта проблема. В любом случае, спасибо.

Ответить или комментировать

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