Как настроить Roundcube/Dovecot для *эффективной* двухфакторной аутентификации

Как настроить Roundcube/Dovecot для *эффективной* двухфакторной аутентификации

Есть несколько плагинов Roundcube, которые обеспечивают двухфакторную аутентификацию. Однако проблема, которую я сейчас вижу, заключается в том, что я все еще могу просто войти через IMAP/SMTP, без 2-FA (очевидно). 2-FA здесь (фактически) бесполезна.

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

Теперь я подумал, что могу автоматически сгенерировать пароль приложения для Roundcube для каждого пользователя, который отличается от того, который используется для входа в веб-интерфейс Roundcube. Результатом будет то, что пользователь все еще может иметь свой собственный пароль + 2-FA для входа в Roundcube, но тот же пароль не может быть использован для IMAP/SMTP напрямую. Однако я не могу найти способ настроить Roundcube на использование другого пароля IMAP, чем тот, который используется для входа в веб-интерфейс.

Roundcube и Dovecot работают на одном компьютере.

Я что-то упускаю? Разумно ли то, что я делаю? Кажется, это проблема, которую можно решить более элегантным способом, чем то, что я пытаюсь сделать, так что я что-то упускаю? Все, что я действительно хочу, это аутентификация 2-FA везде, где это возможно, и пароли, специфичные для приложений, везде в остальном.

Спасибо!

решение1

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

Вариант 1: использование allow_nets. Dovecot позволяет passdb возвращать различные дополнительные поля, включая «allow_nets» (http://wiki2.dovecot.org/PasswordDatabase/ExtraFields/AllowNets). При установке allow_nets на 127.0.0.1 для пароля, который будет использоваться Roundcube, любые попытки входа из других источников будут неудачными. Если Roundcube находится на другой машине, IP-адрес, очевидно, придется скорректировать. Проблемы с этим подходом заключаются в нестатичных IP-адресах и в том, что у пользователей есть другие способы входа, не использующие 2-FA, например, через прокси-сервер, работающий на той же машине, что и Roundcube.

Вариант 2: Использование CheckPassword для написания собственного скрипта аутентификации.Использование драйвера checkpassword (http://wiki2.dovecot.org/AuthDatabase/CheckPassword) для passdb позволяет написать пользовательский скрипт аутентификации. Вы можете проверить IP-адрес клиента или сделать что-то совершенно иное. Возможные проблемы здесь связаны с производительностью, и вам может потребоваться дополнительная настройка для поиска пользователей, поскольку checkpassword не поддерживает поиск пользователей. Кроме того, остается проблема проверки того, как пользователь на самом деле пытается войти в систему.

Связанный контент