web-dev-qa-db-ja.com

zimbra8ポリシーで失敗したSMTPログインがクォータカウンターをインクリメント

特定の送信者(user @ domain)の送信メールの最大数を設定するポリシー付きポリシーをZimbraで設定しようとしています。 SMTPサーバーにログインしてテストメールを送信する簡単なスクリプトでテストしていました。ログイン情報を省略した場合、SMTP要求が拒否された(承認に失敗した)ことに気付きましたが、ポリシー付きクォータカウンターはまだ増加しています!

ログイン試行の失敗がポリシーに到達しないようにする方法はありますか?これがDOS攻撃として使用されるのではないかと心配しています。

1
Carl

前書き

Zimbraはメールとコラボレーションスーツです。 MTAとしてpostfixを使用します。オプションで、ポリシーを有効にして、クォータやスロットルなどの制限機能を提供できます。

すべての構成は、WebインターフェイスまたはCLIによって変更できます。構成ファイル/データベースへの直接編集は行わないでください。 Zimbraは、アップグレードまたは再起動時に上書きする可能性があります。

ポリシー付きの有効化

このページ によると、2つのコマンドラインのみを実行することでポリシーを有効にできます。

バックグラウンドで、zimbraはpostfix設定を変更します。ここでは、ポリシーが有効になる前後のpostconf -n出力。

smtpd_client_restrictions = reject_unauth_pipelining
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_end_of_data_restrictions =
smtpd_etrn_restrictions =
smtpd_helo_restrictions =
smtpd_recipient_restrictions = yreject_non_fqdn_recipient, permit_sasl_authenticated, permit_mynetworks, reject_unlisted_recipient, reject_invalid_helo_hostname,  reject_non_fqdn_sender, permit
smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_restriction_classes =
smtpd_sender_restrictions =

smtpd_client_restrictions = reject_unauth_pipelining
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_end_of_data_restrictions = check_policy_services 127.0.0.1:10031
smtpd_etrn_restrictions =
smtpd_helo_restrictions =
smtpd_recipient_restrictions = check_policy_services 127.0.0.1:10031, reject_non_fqdn_recipient, permit_sasl_authenticated, permit_mynetworks, reject_unlisted_recipient, reject_invalid_helo_hostname,  reject_non_fqdn_sender, permit
smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_restriction_classes =
smtpd_sender_restrictions = check_policy_services 127.0.0.1:10031

分析

postconf -nの出力を分析した後、zimbraで発生した動作を説明できます。 smtpd_sender_restrictionsの段階で、zimbraはすでにpolicydに連絡しています(check_policy_servicesによる)。その段階では、カウンターはすでにインクリメントされていました。 smtpd_relay_restrictionsステージで、postfixはエラーメッセージ「承認に失敗しました」を発行して電子メールを拒否します。

解決

上記の分析に基づいて、smtpd_sender_restrictionsのcheck_policy_servicesを削除することで、この動作を防ぐことができます。 Postfixは引き続きsmptd_recipient_restrictionsのcheck_policy_servicesを呼び出します。

免責事項:

  • これはzimbraバージョン8.0.7に適用されます。他のバージョンではこのバグが発生しない可能性があります。
  • 上記のように、構成ファイルへの直接編集は公式にはサポートされていません。おそらく、Zimbraが以前にポリシーを設定し、直接編集するとそれが破られる可能性があるという設計上の理由があります。安全のために、zimbraサポートに投稿してzimbra開発者と話し合うことができます。
1
masegaloeh