Spamassassinは、スパムではないスパムとして何かにフラグを立てました。どうやってそれを伝えるのですか?


14

これは、spamassassinのトレーニングに関する一般的な質問です。spamassassinを介して受信メールをフィルタリングするメールサーバーを新たに設定しました。最近、フライトの予約にスパムのフラ​​グが付けられ(スコア5)、spamassassinにスパムではないことを伝えたいと思います。(おそらく、これを行うと、修正されたspamassassinヘッダーなしでメールが再送信されるでしょうか?)

私はあちこち検索してみましたが、spamassassinを使ってメッセージをスパムとしてフラグ付けする(偽陽性を修正するのではなく)、またはメールを書いている人のために-スパムとしてフラグ付けしない方法についてのみ探しています。

したがって、間違った呼び出しに関するspamassassinフィードバックを与えることに関して:

  1. メールクライアント内からこれを行う方法はありますか(例:Thunderbird)

  2. メールサーバーのコマンドライン経由でこれを行う方法はありますか?

プロセスを可能な限り流動的にしたいと思いますが、何でも仕事を成し遂げます。

電子メールに関するSpamAssassinからの詳細:

 0.0 FSL_HELO_NON_FQDN_1    No description available.
 0.6 HK_RANDOM_ENVFROM      Envelope sender username looks random
-0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at http://www.dnswl.org/, no trust [82.150.225.129 listed in list.dnswl.org]
-0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3) [82.150.225.129 listed in wl.mailspike.net]
 0.0 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 1.6 SUBJ_ALL_CAPS          Subject is all capitals
 1.1 MIME_HTML_ONLY         BODY: Message only has text/html MIME parts
 0.7 HTML_IMAGE_ONLY_20     BODY: HTML: images with 1600-2000 bytes of words
 0.0 HTML_MESSAGE           BODY: HTML included in message
-0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 0.0 UNPARSEABLE_RELAY      Informational: message has unparseable relay lines
 0.0 T_REMOTE_IMAGE         Message contains an external image

明らかに、主犯人は、すべて大文字の件名SUBJ_ALL_CAPSとMIME_HTML_ONLYです(代替テキストがないと思います)。

メールはフライト予約の確認用であり、件名は次のようになりました。

 Subject: JENNINGS/NICHOLAS KOSSOW MR 24 JAN MOF DPS

ヘッダー:

X-Envelope-From: <tdsfndprd@amadeus.com>
X-Envelope-To: <nick@xxx.xxx>
Received: from mail1.amadeus.net (unknown)
    by 147-49-15-51.rev.cloud.scaleway.com(Postfix 3.1.0/8.13.0) with SMTP id unknown
    Fri, 20 Jan 2017 07:55:10 +0000
    (envelope-from <tdsfndprd@amadeus.com>
Received: from obeap115 (nat-dns-mnp.amadeus.net [82.150.225.129])
    by mail1.amadeus.net (Postfix) with ESMTP id 3F7A9200042
    for <nick@xxx.xxx>; Fri, 20 Jan 2017 07:55:10 +0000 (GMT)
From: eticket@garuda-indonesia.com
TO: NICK@XXX.XXXX
Message-ID: <CTS/GA/C50D54421A07/1@tds.amadeus.com>
FND-Request-ID: <CTS/GA/C50D54421A07/1@tds.amadeus.com>
Job-ID: 1
Subject: JENNINGS/NICHOLAS KOSSOW MR 24 JAN MOF DPS
Date: Fri, 20 Jan 2017 07:55:09 +0000
Content-Type: multipart/mixed; 
    boundary="----=_Part_191904_1900935199.1484898909762"
MIME-Version: 1.0

最初のステップは、スパムとしてフラグ付けされた理由を尋ねることです。それなしでは、一般的な提案を行い、ベイジアンエンジンをハム用に調整する方法を示しますが、不発になったルールに具体的に対処することはできません。電子メールの本文の最初の数行とすべてのヘッダーを質問に追加してください。
MadHatter

@MadHatterは提案に感謝し、それに応じて質問を更新しました。
ニックジェニングス

ベイジアンスコアが何であるかは言わない。ベイジアンエンジンを使用していますか?
MadHatter

スコアは5.0でした..それは主題に挿入されます:***** SPAM 5.0 *****
ニックジェニングス

1
これはSAスコアの合計であり、寄与しているベイジアンスコアではありません。しかし、心配しないでください、あなたが書いたことの残りから、あなたはそれを訓練したことがないので、あなたのベイジアンエンジンは発射していないように見えます、そしてあなたはそれに対処するつもりです!
MadHatter

回答:


22

この場合に役立つ可能性のある具体的および一般的なアドバイスがあります。

明確な

ここでの根本的な問題は、小さな綿の靴下を祝福するガルーダ航空が、スパムの特徴の多くを含む確認メールを送信していることです。件名行は、彼らは非常に多くの画像と非常に小さなテキストの含まれているHTMLのみのメールをVERY SHOUTY送信され、エンベロープ送信者は(tdsfndprd@amadeus.com)かなり明確にマシンを構築ナンス、及びその(外部委託)確認システムのための電子メールプロバイダであります(amadeus.com)は役に立たないSPFレコードを持っています反対のすべてのアドバイスにもかかわらず、一部の人々は、送信システムの一部と終了をリストするレコードに価値があると誤解しています~all)。

このほとんどについてできることはあまりありません。あなたはこれらがあなたの中にラインを通じて取得することを確認したい場合は~/.spamassassin/user_prefs言うwhitelist_from *@amadeus.comあなたに介してこれらのメッセージを取得します。さらに進んで、トリガーされたルールの重みを改ざんすることは、おそらく悪い考えです。SpamAssassin(SA)ルールセットは、膨大な量のスパムをフィルタリングし、そのほとんどに適用される特性を計算することによって作成されます。これらのルールを無効にすることで、ガルーダの確認メール以外にも多くの受信トレイを開く可能性があります。

全般

これはまさに、ベイジアンエンジンがうまく処理できる状況です。他のルールをトリガしますが、トリガーにそれらのルールを行いますが、あなたがものを含む電子メールを通じて支援しながら、あなたが読みたくないものが含まれていない電子メールフィルタリングするように設計されていない読んでもらいたいし。

IIRC、トレーニングしていない場合、エンジンは何もしません。それを訓練する最も簡単な方法は、(say)spamとの2つのフォルダーを維持することですham。受信トレイspamに入れたメールのコピーを入れましたが、望んでいませんでした。hamあなたは、このようなこの確認メールとしてファウルSAの落ちたが、あなたはたかった電子メールのコピーを置きます。

それから毎晩(または)cronジョブがあります

sa-learn --spam --mbox mail/spam
sa-learn --ham  --mbox mail/ham

それに応じてパスを変更します。時間が経つにつれて、これはエンジンに読みたいことを教えてくれます。高いベイジアンスコアは電子メールのSAスコアに+4.0ポイントを加算でき、低いスコアは1.9を減算できるため、よく訓練されたエンジンはSA が読みたいものそうでないもの区別するのに本当に役立ちます -しかし、それを教える努力をする


1
それは理にかなっています。そのスパム/ハムメールボックスフローを試してみます。ありがとう!
ニックジェニングス

1
「彼らの小さな綿の靴下を祝福します」
アレックスReinking

@MadHatterがこれをフォローアップしています。Spamassassinが変更したSPAMメールをHamフォルダーにドラッグしてみたところ、sa-learn --ham ...コマンドを実行したときに、学習するメールが0件見つかりました:Learned tokens from 0 message(s) (0 message(s) examined)... .emlSpamAsssasinが元のメールを入れた添付ファイルをHamフォルダーに入れてみましたサーバー上で直接、しかしそれでも、処理するメッセージが0個あると言います...
Nick Jennings

report_safe 1設定に従って、添付ファイルとして元のメールを扱っていることを追加する必要があります。
ニックジェニングス

@NickJenningsの場合、おそらくMIME対応クライアントを使用して元の電子メールを削除し、 sa-learnます。痛みが大きすぎる場合は、オフにしreport_safeます。Bayesianフィルターの前提はSA全体とは別個であるため、誤ってスパムと識別されたもの以外にハム学習者を訓練することをお勧めします。それは私が最も読みたいものだからです。
マッドハッター

7

dovecotを使用しているようです。スムーズな統合を見つけるために数週間を費やしました。これにより、ユーザーはメールをコピーせずにサーバー側のスパムフィルターを簡単にトレーニングできます。

重要な部分は アンチスパム Dovecotプラグインです。スパム対策プラグインは、3つのフォルダーグループ間の移動操作でトリガーします:trashunsureおよびspam。具体的には何も(ただしから遷移するとき、spam)にはspam検出され、スパム学習アクションがトリガされてから移行するときspamには、unsure検出されたアクションを学習ハムがトリガされます。

さまざまなトレーニングバックエンドをサポートしています。単純なのはmailtrain、単にコマンドを実行し、メールを標準入力に入れるだけです。そのための構成は次のようになります。

plugin {
   antispam_backend = mailtrain
   antispam_mail_sendmail = /usr/local/bin/sa-learn-stdin.sh
   antispam_mail_spam = spam
   antispam_mail_notspam = ham
   antispam_mail_sendmail_args = -L
   antispam_spam = Junk;INBOX.Junk
   antispam_trash = Trash;INBOX.Trash
   antispam_allow_append_to_spam = no
}

とともに/usr/local/bin/sa-learn-stdin.sh

#!/bin/bash
/usr/bin/spamc "$@" >> /tmp/sa-learn-log
exit 0

設定では、「スパムとして学習するには、実行し/usr/local/bin/sa-learn-stdin.sh -L spam、ハムとして学習するには、実行/usr/local/bin/sa-learn-stdin.sh -L ham」と表示されます。引数はantispam_mail_spamantispam_mail_notspamおよびによって構成されますantispam_mail_sendmail_args

これはすでにかなりいいです。スパムとしてマークしたメールをスパムフォルダーに移動するようにクライアントを構成できる場合、これは既にクライアントとサーバー間のかなり自動化された統合です。同様に、配信時に(たとえばSieveを使用して)スパムフォルダーにスパムとして分類されたメールを保存するようにサーバーを構成すると、ユーザーがスパムフォルダーからメッセージを移動するとハムとして学習されます。


ThunderbirdとKMailとの統合を改善するため、antispamのパッチを作成しましたが、残念ながらアップストリームからのフィードバックはありませんでした。ご自身の責任で使用してください

アンチスパムに設定オプションを追加します。これはplugin、dovecot設定のセクションに簡単に追加できます。

   antispam_spam_flags = "Junk;$JUNK"

(引用符は$おかしなことをするのを防ぐために重要です。)

パッチにより、アンチスパムは 、メッセージがスパムフラグを取得するか、すべてのスパムフラグを失った場合学習アクショントリガーします。フラグはIMAP機能であり、サーバー側の情報のビットを保存するためにクライアントによって使用されます。結局のところ、ThunderbirdとKMailはこれらのフラグを使用して、メッセージのジャンク/スパムステータスを保存します。

Junkあなたはジャンクとしてメッセージをマークしたときにフラグがサンダーバードで設定されています。同様に、$JUNKフラグはKMailです。したがって、この構成では、KMailのThunderbirdでメールにJunk / NonJunkのフラグを立てることにより、サーバー側の学習をトリガーできます。

K9-Mailなどの他のクライアントは、スパムフォルダー内のジャンクを移動することがデフォルトであり、アンチスパムもトリガーされるため、引き続き正常に動作します。


IMAPSieveで同じ機能を実装できると思います。これは私のTODOにありますが、残念ながら現在のところ、十分に最近のdovecotを備えたテスト対応の環境はありません。


これはおもしろそうで、間違いなく調べます。
ニックジェニングス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.