最近、私のサーバーが mail.log に既知のユーザーに対する不正な認証を多数報告していることに気付きました。これはブルート フォース攻撃ではありません。また、このような認証の原因はよくわかりません。このサーバーにアクセスするために、Gmail アプリ、IOS のメール、MacOSX のメール アプリ、ThunderBird、Outlook、Web メール サービスを使用しているユーザーがいます。このサーバーには自己署名証明書があり、メール スマート ホストとしても機能しています。このシステムは MacOSX 10.9.5 です。
すべてのプラットフォームの中で、このサーバーに接続しているときに奇妙な動作をするのは Outlook だけです。どこからともなく、ユーザーの資格情報を含む迷惑なログイン ポップアップが常に表示され、これはすべての Outlook ユーザーで発生します。ユーザーは Outlook を使用して送受信でき、ログイン ポップアップ以外はすべて正常に機能しているようです。
私の mail.log には、SAL DIGEST-MD5、SASL PLAIN、SASL CRAM-MD5 に関する問題があります。たとえば、いくつかのランダムなサンプルがあります。
Jan 19 11:43:43 remote.x.pt postfix/smtpd[53889]: error: validate response: authentication failed for user=lcg (method=DIGEST-MD5)
Jan 19 11:43:43 remote.x.pt postfix/smtpd[53889]: warning: unknown[192.168.1.72]: SASL DIGEST-MD5 authentication failed
Jan 18 17:10:46 remote.x.pt postfix/smtpd[5838]: error: verify password: authentication failed: [email protected]
Jan 18 17:10:46 remote.x.pt postfix/smtpd[5838]: warning: hq2.pacsis.pt[x]: SASL PLAIN authentication failed
Jan 16 15:13:06 remote.x.pt postfix/smtpd[17510]: error: validate response: authentication failed for user=teste3 (method=CRAM-MD5)
Jan 16 15:13:06 remote.x.pt postfix/smtpd[17510]: warning: remote.x.pt[192.168.1.1]: SASL CRAM-MD5 authentication failed
最初の試行は Outlook から、2 回目はメール Web サービスから、3 回目はメール アプリからだったと思います。
何が原因なのかはわかりませんが、いくつかの異なるソフトウェア クライアントからの認証が間違っているため、postfix または dovecot 構成に何か問題があると思われます。
ここで両方の設定を確認できます:
ポストフィックス:http://pastebin.com/EU1iLjAP
ダブコット:http://pastebin.com/N9MfuvkD
使用されているポート:
587 SMTP スタートル
993 IMAPSSL
更新1:
これが実際に起こっていることです。ここでは、最初に認証が失敗した後、次に認証が成功したことがわかります。
Jan 19 14:33:05 remote.x.pt postfix/smtpd[62409]: error: validate response: authentication failed for user=lcg (method=DIGEST-MD5)
Jan 19 14:33:05 remote.x.pt postfix/smtpd[62409]: warning: unknown[192.168.1.72]: SASL DIGEST-MD5 authentication failed
Jan 19 14:33:05 remote.x.pt postfix/smtpd[62409]: verify password: AUTH PLAIN: authentication succeeded for user=lcg
更新2:
私のサーバーは DIGEST-MD5 と CRAM-MD5 を許可していないようで、特定のユーザーに対しては PLAIN に切り替わります。ローカルホストでは少なくとも CRAM-MD5 は問題なく使用できます。
答え1
あなたが抱えている問題は、Postfix ではなく Dovecot の問題です。Dovecote
認証の仕組みを理解するには、次の内容を読んでください。
クライアントのパスワードがプレーンテキストでデータベースに保存されている場合は、cram-md5 と digest-md5 (auth_mechanisms = plain login cram-md5 digest-md5) を使用できることを理解する必要があります。ただし、データベース内のパスワードが暗号化されている場合、たとえば、Dovecote ドキュメントに記載されている暗号化スキームの 1 つを使用している場合は、次のようになります。
http://wiki2.dovecot.org/Authentication/PasswordSchemesパスワードがすでに cram-md5 ハッシュでデータベースに保存されていない限り、cram-md5 は使用できません。これは紛らわしいので、もっとよく理解できるように、私があなたのメール アカウントを持っていると仮定してログインします。
メール クライアント -----> パスワード ---> メール サーバーがデータベースをチェックし、次の 3 つのシナリオが考えられます。
1 番目のシナリオでは、データベースのパスワードはプレーン テキストで保存されます。
電子メール サーバー --(auth_mechanisms = plain login cram-md5 digest-md5) --> パスワード スキーム (なし) ------> データベース cram-md5(パスワード)/または/ digest-md5(パスワード)/または/プレーン パスワード: そのため、ログイン パスワードは、データベースのプレーン テキストで保存されたパスワードと一致します。2 番目のシナリオでは、データベースのパスワードは SHA512-CRYPT で保存されます:
EmailServer-- auth_mechanisms(プレーン ログイン)--→ Email-server—パスワードの確認--->default_pass_scheme = SHA512-CRYPT ----SHA512-CRYPT(パスワード) ---→データベース(すでに SHA512-CRYPT パスワード) – ログイン マッチ3 番目のシナリオでは、データベース パスワードは carm-md5 で暗号化されます。
電子メール サーバー ----> auth_mechanisms(プレーン ログイン cram-md5) --→ 電子メール サーバー --- パスワードの確認 --default_pass_scheme =cram-md5 --> cram-md5(パスワード) ----> データベース (パスワードは cram-md5 パスワードに既に保存されています) – ログイン マッチ
したがって、データベース パスワードを暗号化するかしないか、SSL/TLS を使用して auth_mechanisms="plain login" にするか、または、
SSL を使用しない場合は auth_mechanisms=cram-md5 にして、パスワードを cram-md5 として DB に保存します。DIGEST-MD5 と CRAM-MD5 を使用する場合は、パスワードを PLAIN_TEXT で保存する必要があります。
したがって、CRAM-MD5 のみを使用する場合、データベースのパスワードは CRAM-MD5 またはプレーン テキストにすることができます。DIGEST-MD5 と CRAM-MD5 を使用する場合は、データベースのパスワードはプレーン テキストのみで保存する必要があります。
次のリンクには、データベース内のパスワードを暗号化するのに役立つスクリプトがいくつか記載されています。 http://wiki2.dovecot.org/HowTo/ConvertPasswordSchemes
パスワードを DIGEST-MD5 としてデータベースに保存する場合は、このページを読む必要があります:http://wiki2.dovecot.org/認証/メカニズム/DigestMD5
また、チャットで言及したように、Dovecote で使用される auth_mechanisms 値は、main.cf の smtpd_pw_server_security_options=plain として postfix で使用できます。