Spamassassin は動作しているが学習していない? ベイズ フィルタの精度が向上していない

Spamassassin は動作しているが学習していない? ベイズ フィルタの精度が向上していない

私は、正常に動作する spamassassin インストール (postfix、dovecot、amavis、clamav、debian 上の spamassassin) を備えたメール サーバーを所有しています。

すべてうまく機能しています。Spamassassin がスパムをフィルタリングし、次のヘッダーが表示されます:

X-Virus-Scanned: Debian amavisd-new at xxx.yyy.de
X-Spam-Flag: YES
X-Spam-Score: 8.025
X-Spam-Level: ********
X-Spam-Status: Yes, score=8.025 tagged_above=-9999 required=3
    tests=[BAYES_50=0.8, DKIM_INVALID=0.1, DKIM_SIGNED=0.1,
    HTML_IMAGE_ONLY_24=1.618, HTML_MESSAGE=0.001,
    RAZOR2_CF_RANGE_51_100=1.886, RAZOR2_CHECK=0.922,
    RCVD_IN_BL_SPAMCOP_NET=1.347, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
    URIBL_ABUSE_SURBL=1.25, URIBL_BLOCKED=0.001]
    autolearn=no autolearn_force=no

新しいスパムとハムが届いたら、Spamassassin を(現在は手動で)トレーニングしています。

Tue Dec 15 22:22:14 2020
Spam training for [email protected]
Learned tokens from 12 message(s) (159 message(s) examined)
Ham training for [email protected]
Learned tokens from 4 message(s) (49 message(s) examined)
Deleting spam for [email protected] older than 30 days
Syncing the SpamAssassin journal
bayes: synced databases from journal in 0 seconds: 2711 unique entries (2711 total entries)
Statistics for this run:
0.000          0          3          0  non-token data: bayes db version
0.000          0       5288          0  non-token data: nspam
0.000          0        855          0  non-token data: nham
0.000          0     124148          0  non-token data: ntokens
0.000          0 1602145027          0  non-token data: oldest atime
0.000          0 1608066788          0  non-token data: newest atime
0.000          0 1608067345          0  non-token data: last journal sync atime
0.000          0 1607672985          0  non-token data: last expiry atime
0.000          0    5529600          0  non-token data: last expire atime delta
0.000          0      50552          0  non-token data: last expire reduction count
Run finished Tue Dec 15 22:22:27 2020

すべてうまくいっているようです。しかし、最近、いつも同じように見えるスパムが受信トレイに届くことがあることに気付きました。同じ種類のスパムで、数週間のトレーニング後もまだ届きます。ベイジアン スコアは変わりません。

X-Virus-Scanned: Debian amavisd-new at xxx.yyy.de
X-Spam-Flag: NO
X-Spam-Score: 1.852
X-Spam-Level: *
X-Spam-Status: No, score=1.852 tagged_above=-9999 required=3
    tests=[BAYES_00=-1.9, DIGEST_MULTIPLE=0.293, DKIMWL_WL_MED=-0.001,
    DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249,
    HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, PYZOR_CHECK=1.392,
    RAZOR2_CF_RANGE_51_100=1.886, RAZOR2_CHECK=0.922, SPF_HELO_NONE=0.001,
    SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01]
    autolearn=no autolearn_force=no

問題は見当たらず、これまでチェックしたすべてのことが機能しているようです。最小のデフォルトの 200 個のスパム/ハムは明らかに合格しています。したがって、問題にはならないはずです。私は次のコマンドで Spamassassin をトレーニングしています:

/usr/bin/sa-learn --no-sync --spam /var/vmail/$domain/$user/Maildir/.Junk/{cur,new} >> /var/log/sa-learn.log 2>&1
/usr/bin/sa-learn --no-sync --ham /var/vmail/$domain/$user/Maildir/{cur} >> /var/log/sa-learn.log 2>&1
/usr/bin/sa-learn --sync >> /var/log/sa-learn.log 2>&1

何が問題なのでしょうか? どこを調べればよいのかわかりません。

どのような助けでも大歓迎です。

答え1

の結果スパマサシンベイズトレーニングは、一般的にいくつかのファイルで構成されるデータベースに保存されます実行しているユーザーのホームディレクトリに保存されます別のユーザーで呼び出すと、同じデータセットにアクセスしたり更新したりすることはありません。

(以前のコメントの拡張版)

特権の分離については、スパマサシンdebian-spamd通常、やなどの別のユーザーで実行されるamavisため、自動学習中にそのユーザーのデータベースが更新されます。データベースを手動で更新する場合は、正しいユーザーを指定する必要があります。そうしないと、トレーニング データが別の無関係なデータベースに保存されることになります。

どうやって見分けるの?トレーニングデータファイルのインスタンスが2つある場合(バックアップは別として)、スパマサシン2 人の異なるユーザー (おそらく 1 人はメール サーバーから、もう 1 人はシェルから) で実行します。

# find / -name bayes_toks
/var/lib/amavis/.spamassassin/bayes_toks
/root/.spamassassin/bayes_toks

両方のファイルには最新の変更タイムスタンプがある可能性があります。データベースが十分にシードされると、スパマサシン5月十分に識別されたメールを選択してオートトレインこれは、手動操作なしで受信したメールからトークンを学習することです (この動作は構成可能であり、通常はオンにする必要があります)。

直し方?同じメールを適切なデータベースに送ります -sa-learnメールサーバーから呼び出されるときに使用しているユーザー/ホームディレクトリで呼び出します(確認するこの場合、フォルダ名がユーザー名と一致しない可能性があります!):

sudo -H -u amavis sa-learn --no-sync --spam /var/vmail/$domain/$user/Maildir/.Junk/{cur,new} >> /var/log/sa-learn.log 2>&1
sudo -H -u amavis sa-learn --no-sync --ham /var/vmail/$domain/$user/Maildir/{cur} >> /var/log/sa-learn.log 2>&1
sudo -H -u amavis sa-learn --sync >> /var/log/sa-learn.log 2>&1

推奨しません合併内部ファイル形式が少しわかりにくいため、意図せずデータセットが分割される可能性があります(ただし、できる--backup使用してダンプされる破壊的にを使用して上書きされます--restoreが、同じスパム データでの再トレーニングははるかに簡単で、sa-learn同じメールが何度も送られても悪影響がないように設計されています。

関連情報