如何配置 Roundcube/Dovecot 以獲得*有效的* 2 因素身份驗證

如何配置 Roundcube/Dovecot 以獲得*有效的* 2 因素身份驗證

有多個 Roundcube 插件提供雙重認證。然而,我現在看到的問題是,我仍然可以簡單地透過 IMAP/SMTP 登錄,而不需要 2-FA(顯然)。 2-FA 在這裡(實際上)沒用。

我認為我可以透過引入應用程式專用密碼並執行類似於 Google 對其 2-FA 和不支援它的應用程式所做的操作來解決此問題。

現在我想我可以為每個用戶自動生成 Roundcube 應用程式專用的密碼,該密碼與用於登入 Roundcube Web 介面的密碼不同。結果是使用者仍然可以使用自己的密碼 + 2-FA 來登入 Roundcube,但相同的密碼不能直接用於 IMAP/SMTP。但是,我似乎找不到一種方法來設定 Roundcube 使用與登入 Web 介面不同的 IMAP 密碼。

Roundcube 和 Dovecot 都在同一台機器上運作。

我在這裡錯過了什麼嗎?我所做的事情明智嗎?這似乎是一個可以用比我嘗試的更優雅的方式解決的問題,那麼我是否遺漏了一些東西?我真正想要的是盡可能使用 2-FA 身份驗證,並在其他地方使用特定於應用程式的密碼。

謝謝你!

答案1

經過更多嘗試後,我發現了兩個合理的解決方案/解決方法,至少對於這個簡單的情況。

選項 1:使用allow_nets。 Dovecot 允許 passdb 傳回各種額外字段,包括「allow_nets」(http://wiki2.dovecot.org/PasswordDatabase/ExtraFields/AllowNets)。將 Roundcube 使用的密碼的 allowed_nets 設定為 127.0.0.1,來自其他來源的任何登入嘗試都會失敗。如果 Roundcube 在不同的機器上,顯然需要調整 IP。這種方法的問題是非靜態 IP 位址,以及使用者是否有其他非 2-FA 方式透過(例如與 Roundcube 在同一台電腦上執行的代理)登入。

選項 2:使用 CheckPassword 編寫自訂身份驗證腳本。使用檢查密碼驅動程式(http://wiki2.dovecot.org/AuthDatabase/CheckPassword)passdb 允許編寫自訂身份驗證腳本。您可以在那裡檢查客戶端 IP 或執行完全不同的操作。這裡可能的問題是效能,您可能需要一些額外的配置來進行使用者查找,因為 checkpassword 不支援使用者查找。此外,驗證用戶實際上如何嘗試登入的問題仍然存在。

相關內容