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

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

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

Теперь я подумал, что могу автоматически сгенерировать пароль для конкретного приложения для 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 не поддерживает поиск пользователей. Кроме того, проблема проверки того, как пользователь на самом деле пытается войти в систему, остается.

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