Dovecot

如何為有效 2 因素身份驗證配置 Roundcube/Dovecot

  • October 3, 2015

有幾個 Roundcube 外掛提供兩因素身份驗證。但是,我現在看到的問題是我仍然可以通過 IMAP/SMTP 簡單地登錄,而無需 2-FA(顯然)。2-FA 在這裡(實際上)沒用。

我想我可以通過引入特定於應用程序的密碼並做一些類似的事情來解決這個問題,就像Google對他們的 2-FA 和不支持它的應用程序所做的那樣。

現在我想我可以為每個使用者自動為 Roundcube 生成一個特定於應用程序的密碼,這與用於登錄 Roundcube Web 界面的密碼不同。結果將是使用者仍然可以擁有自己的密碼 + 2-FA 來登錄 Roundcube,但相同的密碼不能直接用於 IMAP/SMTP。但是,我似乎找不到一種方法來配置 Roundcube 以使用與用於登錄 Web 界面的 IMAP 密碼不同的 IMAP 密碼。

Roundcube 和 Dovecot 都在同一台機器上執行。

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

謝謝!

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

選項 1:使用 allow_nets。 Dovecot 允許 passdb 返回各種額外的欄位,包括“allow_nets”(http://wiki2.dovecot.org/PasswordDatabase/ExtraFields/AllowNets)。通過為 Roundcube 使用的密碼設置 allow_nets 為 127.0.0.1,任何來自其他來源的登錄嘗試都將失敗。如果 Roundcube 在另一台機器上,顯然需要調整 IP。這種方法的問題是非靜態 IP 地址,如果使用者有其他非 2-FA 方式通過例如與 Roundcube 在同一台機器上執行的代理登錄。

**選項 2:使用 CheckPassword 編寫自定義身份驗證腳本。**使用 passdb 的 checkpassword 驅動程序 ( http://wiki2.dovecot.org/AuthDatabase/CheckPassword ) 允許編寫自定義身份驗證腳本。您可以在那裡檢查客戶端 IP 或做一些完全不同的事情。這裡可能的問題是性能,您可能需要一些額外的使用者查找配置,因為 checkpassword 不支持使用者查找。此外,驗證使用者實際如何嘗試登錄的問題仍然存在。

引用自:https://serverfault.com/questions/726348