ZimbraでSpamAssassinのカスタムルールを安全に設定する方法

どのZimbra SpamAssassinファイルを編集すればよいですか?

Zimbra Collaboration Suite 8.5以降では、Zimbraのドキュメントによると、ローカルのSpamAssassinカスタマイズは に配置されます/opt/zimbra/data/spamassassin/localrules。拡張子を持つルールファイルは.cfそこに配置できます。Zimbraの例では、カスタムルール用に別のファイルを使用しています。以前のZimbraリリースでは異なる場所が使用されていたため、編集する前にサーバー上のバージョンとディレクトリを確認してください。現在のパッケージレイアウトは、リリースや展開によっても異なる場合があります。

このガイドでは、サイト全体に適用される、変更可能な小さなルールを追加し、その構文をチェックし、メールスキャンサービスを再起動し、配信されたメッセージを検証します。Zimbra MTAを管理していることを前提としています。複数のMTAサーバーを運用している場合は、受信メールをスキャンする各サーバーにこのファイルを適用し、SpamAssassinを再起動してください。

ZimbraのカスタムSpamAssassinルールガイドには、localrulesのパスとzmamavisdctl restartコマンドが記載されています。このスパム対策ガイドでは、旧バージョンのZCS 8とZCS 8.5以降の設定を区別しています。

カスタムルールは何を変更するのですか?

SpamAssassinルールは、メッセージの特徴を検出し、シンボルルール名を割り当て、スコアを算出します。SpamAssassinはそのスコアを他のテスト結果と組み合わせます。その後、Zimbraは設定済みのスパム処理しきい値を適用します。ルール自体が、メッセージが迷惑メールフォルダに振り分けられる、または拒否されることを保証するものではありません。メッセージのスコアの残りの部分とサーバーの設定が重要になります。

スコアを選択する際には、その区別が重要になります。まずは控えめな値から始め、誤検出を検証し、テストで信号の信頼性が確認された場合にのみ値を上げてください。必要なスパムスコアと破棄しきい値を確認せずに、例から高いスコアをそのままコピーすることは避けてください。

編集作業を行う前に、何を確認すべきでしょうか?

  • リリースとパス: Zimbraのバージョンと、パス/opt/zimbra/data/spamassassin/localrulesが存在するかどうかを確認してください。このガイドに記載されているパスは、ZimbraのドキュメントによるとZCS 8.5以降に適用されます。それ以前のリリースには適用されないことをご了承ください。
  • どのホストがメールをスキャンしているか: Amavis/SpamAssassinを実行しているすべてのMTAを特定してください。あるサーバーにインストールされたルールは、別の独立したMTAには自動的に反映されません。
  • ルールの意図:具体的で繰り返し可能なメッセージシグナルを選択してください。「無料」や「オファー」といった漠然とした単語に、追加の証拠なしに一致するルールは避けてください。
  • ロールバック:変更を加える前に、既存のファイルを記録してください。新しいルールには、分かりやすいファイル名を使用し、既存の.cfファイルを誤って上書きしないようにしてください。

これらはサーバーレベルのカスタマイズであり、メールボックスフィルタではありません。設定されたスキャナを通過するすべてのユーザーが影響を受ける可能性があります。

簡単なルールを書くにはどうすればいいですか?

headerSpamAssassin は、、、、などのルールタイプをサポートしています。ヘッダールールはbody、特徴的な件名またはヘッダー値がシグナルとなる場合に便利です。ボディルールはテキストメッセージの内容を検索します。SpamAssassin のドキュメントによると、通常のボディルールはデコードされたテキストに対して動作し、デフォルトでは件名をボディの一部として扱います。条件がリンクに関するものである場合は、URI ルールを使用してください。urimeta

以下は、テストメッセージの件名に固有のフレーズが含まれている場合にわずかなスコアを加算する、意図的に限定された例です。このフレーズは、ご自身のメールで検証済みのシグナルに置き換えてください。この例は一般的なスパム署名ではありません。

header LOCAL_SUBJECT_REVIEW Subject =~ /\bExample Vendor Alert\b/i
score LOCAL_SUBJECT_REVIEW 2.0
describe LOCAL_SUBJECT_REVIEW Subject contains the review phrase

シンボル名は一意である必要があり、文字、数字、アンダースコアを使用してください。このheader行は一致条件を定義し、score一致した場合に加算されるポイントを制御し、describeSpamAssassinのレポートに説明を記載します。説明は簡潔にし、他の管理者にもテストの目的が明確にわかるようにしてください。

SpamAssassinの設定リファレンスには、ヘッダーと本文のルール構文、スコアリングの動作、正規表現の詳細が記載されています。インストールされているZimbra SpamAssassinのバージョンは、最新のApacheドキュメントと異なる場合があるため、ローカル環境でサポートが確認できるまでは、新しいルール機能に依存しないようにしてください。

Zimbra 8.5以降にルールをインストールするにはどうすればよいですか?

  1. Zimbraサービスアカウントに切り替え可能な管理者アカウントを使用してMTAに接続してください。
  2. インストールディレクトリとローカルルールディレクトリを確認してください。例:
    su - zimbra
    ls -ld /opt/zimbra/data/spamassassin/localrules
  3. 既に存在しないファイル名を選択してください。たとえば、 などですlocal_subject_review.cf。まず確認してください。
    ls -l /opt/zimbra/data/spamassassin/localrules/local_subject_review.cf
    既に存在する場合は、それを調べて、上書きせずに別の名前を選択してください。
  4. お使いのエディタでユーザーとして新しいファイルを作成しzimbra、上記の3行のルールを追加してください。
    vi /opt/zimbra/data/spamassassin/localrules/local_subject_review.cf
  5. ファイルを保存し、所有者と内容を確認してください。
    ls -l /opt/zimbra/data/spamassassin/localrules/local_subject_review.cf
    cat /opt/zimbra/data/spamassassin/localrules/local_subject_review.cf

ディレクトリが存在しない場合は、処理を停止し、Zimbraのリリースバージョンとドキュメントに記載されている構成レイアウトを確認してください。推測に基づいて類似の名前のディレクトリを作成しないでください。SpamAssassinが必ずしもそれを読み込むとは限りません。

どのように検証して再読み込みすればよいですか?

再読み込みする前に、SpamAssassin の構文チェックを実行してください。Apache のコマンドラインドキュメントでは、--lintルールセットと構成の構文チェックとして説明されています。Zimbra ユーザーとして、spamassassin --lintZimbra 環境で実行可能ファイルが存在する場合は、そのコマンドを実行してください。コマンドが見つからない場合、または Zimbra の構成が読み込まれない場合は、バンドルされている実行可能ファイルを見つけて、無関係なシステムインストールに対してテストするのではなく、リリースに適した構成パスを使用してください。クリーンな lint 結果は構文チェックであり、パターンが意図したメッセージと一致することを証明するものではありません。

SpamAssassinのコマンドリファレンスにlintオプションの説明があります。検証が成功したら、zimbra変更されたルールをスキャナーに読み込むために、ユーザーとしてAmavisを再起動してください。

zmamavisdctl restart

Zimbraのカスタムルールの例では、このサービスコマンドを使用しています。複数のMTAをインストールしている場合は、該当するすべてのスキャナでファイルのデプロイとサービスの再起動を繰り返してください。お使いのリリースで異なるサービスコマンドを使用している場合は、そのリリースのZimbraドキュメントを参照してください。

そのルールが機能しているかどうかは、どうすればわかりますか?

ユーザーが使用するのと同じ受信ルートを通して、制御されたテストメッセージを送信します。1 つのメッセージにはルールで指定した件名フレーズをそのまま使用し、次に同様のメッセージを件名フレーズなしで送信します。配信されたメッセージの元のヘッダー、特に とスコア貢献度を調べますX-Spam-Status。2LOCAL_SUBJECT_REVIEWつのメッセージを比較し、Zimbra がそれぞれのメッセージをどこに配信したかを確認します。

ルールが意図したテストにのみ適用され、合計スコアが期待どおりの処理結果をもたらす場合、この結果は役立ちます。テスト名が表示されない場合は、メッセージがこのMTAを通過したこと、ファイル名がで終わっていること.cf、ファイルが正しいlocalrulesディレクトリにあること、スキャナが正常に再起動されたこと、サンプルが正規表現に実際に一致していることを確認してください。メールクライアントは通常の表示で診断ヘッダーを非表示にしている可能性があるため、メッセージソースまたは完全なヘッダーを開いてください。

ルールが誤検出を引き起こしたり、一致しなかったりした場合はどうなるでしょうか?

  • 正当なメッセージが多数一致しすぎている場合:スコアを下げるか、正規表現の範囲を狭めてください。スコアを上げる前に、必要なメールと不要なメールの両方の例でテストしてください。
  • 一致するメッセージが見つかりません。正確なヘッダー名、大文字小文字を区別しない正規表現、エスケープ処理、ファイル拡張子、パス、およびサービス再起動を確認してください。URL の場合は、uri本文ルールを前提とするのではなく、ルールを評価することが最適なテスト方法です。
  • Lintでエラーが報告されました。指定された行を修正し、再起動する前にLintを再実行してください。不正なカスタムルールは、設定の問題を引き起こしたり、想定されるテストの読み込みを妨げたりする可能性があります。
  • ルールは表示されるものの、メールが受信トレイに残る場合:追加されたポイントによって合計スコアが設定したスパムしきい値を超えない限り、これは正常な動作です。合計X-Spam-Statusスコアとローカル処理しきい値を確認してください。

ロールバックするには、追加したカスタムファイルのみを削除し、Amavisを再起動してください。既存のファイルを変更した場合は、保存済みのコピーを復元し、再読み込みする前に設定を検証してください。ルールの目的、スコア、テストメッセージ、ロールバックファイル名などの変更履歴を簡潔に記録しておくと、将来の管理者が再評価する際に役立ちます。

バージョンと動作の制限

Zimbraが公開しているパスに関するガイダンスは、ZCS 8.5以降を対象としており、それ以前のバージョンについては異なる構成で説明されています。バンドルされているSpamAssassinの正確なバージョンとしきい値は、インストール環境によって異なります。有効なルールであっても、メッセージ形式、リレー、メールフローパスによって動作が異なる場合があります。インストール済みのリリースのドキュメントを確認し、制御されたルートでテストを行い、ルールテキストだけでなく、メッセージヘッダーと実際の誤検知サンプルに基づいて結果を判断してください。

コメントを残す

ownCloudサーバーで公開リンクの有効期限を制限する方法

ownCloudサーバーで公開リンクの有効期限を制限する方法

ownCloud Serverの公開リンクに最大有効期限を設定し、それがどの共有に影響を与えるかを把握し、古いリンクを見落とさずにポリシーを検証してください。

Zimbra GALの自動同期を設定して動作を確認する方法

Zimbra GALの自動同期を設定して動作を確認する方法

Zimbra GALの自動同期の設定、ポーリング間隔の設定、テスト同期の強制実行、タイムスタンプの検証、および古い内部または外部LDAP連絡先のトラブルシューティングを行います。

ownCloud Infinite ScaleでLDAP認証を設定する方法

ownCloud Infinite ScaleでLDAP認証を設定する方法

ownCloud Infinite Scale向けにLDAPを利用したサインインを設定し、ユーザーとグループをマッピングし、組み込みまたは外部のOIDCを選択し、認証情報を保護し、認証を安全に検証します。

ownCloud 10 ClassicからownCloud Infinite Scaleへの移行方法

ownCloud 10 ClassicからownCloud Infinite Scaleへの移行方法

サポートされているmigrate-to-ocisアプリを使用して、ownCloud Classic 10からInfinite Scaleへの移行を計画しましょう。移行される項目、移行されない項目、LDAPの前提条件、コマンド、および切り替え時のチェック事項について学びます。

ZimbraでSpamAssassinのカスタムルールを安全に設定する方法

ZimbraでSpamAssassinのカスタムルールを安全に設定する方法

ZimbraがカスタムSpamAssassinルールを読み込む場所、.cfルールの作成と検証方法、Amavisの再起動方法、メッセージヘッダーのテスト方法、および安全なロールバック方法について学びましょう。

Zimbra CEで個々のメールボックスをバックアップおよび復元する方法

Zimbra CEで個々のメールボックスをバックアップおよび復元する方法

zmmailboxを使用して、個々のZimbra CEメールボックスのバックアップと復元を行います。メタデータを含むZIPアーカイブをエクスポートし、検証後、ステージングアカウントで安全に復元テストを実施します。

ownCloud oCISでユーザーのストレージクォータを設定する方法

ownCloud oCISでユーザーのストレージクォータを設定する方法

ownCloud Infinite Scaleユーザーの個人スペースのクォータを設定する方法、プロジェクトスペースやグローバル制限と区別する方法、そして役割ごとに新規ユーザーにデフォルト値を割り当てる方法を学びましょう。

BigBlueButton FreeSWITCH SIP登録タイムアウトの修正:実践的な診断ガイド

BigBlueButton FreeSWITCH SIP登録タイムアウトの修正:実践的な診断ガイド

BigBlueButton FreeSWITCHのSIP登録タイムアウトを診断するには、サービスの状態、SIPおよびESLリスナー、NATアドレス、ファイアウォールルール、ログを確認します。

ownCloudモバイルアプリの「接続拒否」エラーを修正する方法

ownCloudモバイルアプリの「接続拒否」エラーを修正する方法

ownCloudモバイルアプリの接続拒否エラーを修正するには、サーバーURL、HTTPSポート、Webサーバー、ファイアウォール、プロキシ、TLS、および信頼済みドメインを確認してください。

自己ホスト型Matrixサーバーでのユーザー登録を制限する方法

自己ホスト型Matrixサーバーでのユーザー登録を制限する方法

Synapse 上で新しい Matrix アカウントを制御する方法を、公開登録の無効化から使用制限付きトークンの発行まで、設定例とチェック項目を含めて比較します。