web-dev-qa-db-ja.com

*効果的な* 2要素認証用にRoundcube / Dovecotを構成する方法

2要素認証を提供するRoundcubeプラグインがいくつかあります。ただし、現在私が目にしている問題は、2-FAがなくても(明らかに)IMAP/SMTP経由で簡単にログインできることです。 2-FAはここでは(事実上)役に立たない。

アプリケーション固有のパスワードを導入し、Googleが2-FAとそれをサポートしていないアプリケーションで行っているのと同様のことを行うことで、この問題を解決できると思いました。

これで、ユーザーごとにRoundcubeのアプリ固有のパスワードを自動的に生成できると思いました。これは、RoundcubeWebインターフェイスへのログインに使用されるパスワードとは異なります。その結果、ユーザーはRoundcubeにログインするために独自のパスワード+ 2-FAを持つことができますが、同じパスワードをIMAP/SMTPに直接使用することはできません。ただし、Webインターフェイスへのログインに使用するパスワードとは異なるIMAPパスワードを使用するようにRoundcubeを構成する方法が見つからないようです。

RoundcubeとDovecotの両方が同じマシンで実行されています。

ここで何かが足りませんか?私がしていることは賢明ですか?これは、私が試みているよりもエレガントな方法で解決できる問題のように思われるので、そこに何かが欠けていますか?私が本当に必要としているのは、可能な限り2-FA認証と、それ以外の場所でのアプリケーション固有のパスワードです。

ありがとうございました!

2
Jocbe

さらにいくつか試してみたところ、少なくともこの単純なケースでは、2つの合理的な解決策/回避策が見つかりました。

オプション1:allow_netsを使用します。Dovecotを使用すると、 'allow_nets'( http:// wiki2.dovecot.org/PasswordDatabase/ExtraFields/AllowNets )。 Roundcubeで使用されるパスワードのallow_netsを127.0.0.1に設定すると、他のソースからのログイン試行は失敗します。 Roundcubeが別のマシン上にある場合は、明らかにIPを調整する必要があります。このアプローチの問題は、非静的IPアドレスであり、ユーザーが他の2FA以外の方法でログインする場合です。 Roundcubeと同じマシンで実行されているプロキシ。

オプション2:CheckPasswordを使用してカスタム認証スクリプトを作成します。checkpasswordドライバーを使用します( http://wiki2.dovecot.org/AuthDatabase passdbの/ CheckPassword )を使用すると、カスタム認証スクリプトを作成できます。そこでクライアントIPを確認するか、まったく別のことを行うことができます。ここで考えられる問題はパフォーマンスであり、checkpasswordはユーザールックアップをサポートしていないため、ユーザールックアップ用に追加の構成が必要になる場合があります。また、ユーザーが実際にどのようにログインしようとしているのかを確認するという問題も残っています。

1
Jocbe