メールサーバにrspamd(スパムフィルター)を入れてみた

この記事は約6分で読めます。

こんにちは

毎日到着する、SPAMメールに辟易してます。
メインはGmailを使っていますが、自サーバの方は一時はGmailを独自ドメインが無料の時期は使っていましたが、有料化されたので独自サーバに戻っています。

Gmailの方はGoogleさんが頑張ってくれていますので、問題ないのですが問題は自サーバの方なんですよね。

一時は、ブラックリストを使って除外していましたが、OCNを使っている企業からのメールが全滅したり、ProbikeKitからのメールが全滅したりしていたので、全部はずしちゃいました。(^_^;

現在は、ドメインのチェックやSPFや、DKIM等の正当性チェックのみしています。
結構弾けていますが、それでも少なくないSPAMメールが到着します。

PCはメールソフトのSPAMチェックで割りと弾けていますが、スマホだと難しいんですよね。

SPAMメールの数が多いのですが、分離でいているのでそれでも共用範囲かな?ぐらいに思ってました。

独自ドメインのメールですが、受信時に通知をリアルタイムに近い形で取得しようとすると、独自ドメイン(Dovecot)ですが、スマホで、どうしてもうまく処理できなかったので、メールを全部Gmailに転送しています。スマホはGmailを見ています。送信はPCで独自ドメインのメールサーバを使ってやってます。

で、ある日気づきました。
メールの送信キューが結構溜まってます。

なんで?と見ていくと、明らかなスパムメールをGmailに転送すると一部が拒否されていて、再送→拒否のループに入ってました。放置すれば数日で諦めるんですが、割りとGmail側に迷惑かなと思います。
また、gmail側からの一部(サーバ関係)の受信メールをgmailに転送(戻す)と拒否されている気がします。

なんか対策しようかなと思います。

前後しますが、独自ドメインの方のメールがレンタルサーバ(VPS)のPostfixというMTAを使っています。

Googleからの一部のメールをGmailへの転送から除外します。
悩んだ結果、procmailというツールを使って、パターンにマッチするのは独自ドメインのメールサーバには保存して、Gmailには転送しない様にしました。あと、大量に受信しているサーバ管理系のメールも除外しました。

SPAMメールはどうしよう!?

以前使っていて、サーバの引越し時にインストールしなかった、SpamAssasinを使うか?と思いましたが、結構面倒だった覚えしかありません。特に導入直後。。

他に無いのかな?と探した所、rspamdというのを見つけました。
管理画面が有って分かりやすいそうと言うか、楽そうです。精度も悪く無さそうです。

って事で早速インストール。

3日程稼働させてみました。
SpamAssasinの時は、最初は学習させたりレベルぎめするのに四苦八苦しましたが。

インストールに参考にしたページで、ほぼデフォルトインストールの状態です。

3日稼働させて、231通のメールを受信してチェックしてありました。
何もしなかったのが、74%で、「add header」と「gleylist」は注意?でSPAM判定してないのの合計で、受信したのメールのうち、81%がメールボックスに着弾させ、「reject」の19%(45通)は捨てられました。
画面に出ているLeanedの634通は、稼働開始前にメールボックス内のSPAMメール(メーラーでSPAM判定したメールと、正常の許可したいメール)をサーバ側のメールボックスから学習させた数です。
判定ささせたメールより少ないのは、同じ内容だとスキップするのかな?もっと打ち込んだはずです。(^_^;

メールサーバにrspamd(スパムフィルター)を入れてみた

画面を端から見ていこうと思います。

「Throughput」とかありますが、個人利用なのでメールの数が少ないので、どうでも良かったりします。
過去には、家族も使ってましたが、gmailに移行したので私だけなんですよね(^_^;

メールサーバにrspamd(スパムフィルター)を入れてみた

「Configuration」はこんな感じで、設定の変更等ができます。
Actionはメールのスコア数で、どうするかを設定する(と思う)、15を超えてたらreject(破棄)されます。詳細は次のページです。

メールサーバにrspamd(スパムフィルター)を入れてみた

「Symbols」は、こんな感じでルール毎のスコアを設定している様です。
チェックする内容毎で、ヒットした場合にスコアが何点なのかを記載します。
1つ前の画面で設定したスコアの元になります。正しいと思うルールの場合には、マイナス値、SPAMと思われるルールには、プラスの値を設定します。
全部をチェックして、合計したスコアが前の画面のrejectより大きければ、rejectされます。
それより小さい値の場合には、各設定値(しきい値)で処理されます。

メールサーバにrspamd(スパムフィルター)を入れてみた

「Scan/Lean」画面はこんな感じで、Scanにメールを入れて、処理するとどう言う風にスコアが着くかが確認できます。
Learnは使ってません(学習はメールサーバのコマンドで行った)が、恐らくメールをアップロードして画面から学習させるのかなと思います。

メールサーバにrspamd(スパムフィルター)を入れてみた

Scanですが、来ているアマゾン系のフィッシング詐欺メールを入れてみます。
辞書的には、HAM(正常判定)でスコアが-2.125279になっていますが、それ以外のブラックリストへの送信元の登録などでスコアが加算され、結果19.77ポイントになり、設定したrejectのしきい値15を超えているので、rejectされます。

気になるのは、DMARK,SPFのえらーが1.5と低いです。もっと高くても良さそうな?
reject判定できないメールが出たら検討してみたいです。

メールサーバにrspamd(スパムフィルター)を入れてみた


「Test selectors」ですが、使い方が良く分からなかったです。(^_^;
Message sourceにメールのソースを入れて、Selectorsに左側にあるセレクター名を入れると、抽出した結果が表示されました。指定したセレクターで何が抽出されるかを確認する画面?
ルールの設定をするのに必要な機能っぽいです。必要になったら調べよう(^_^;

メールサーバにrspamd(スパムフィルター)を入れてみた

「History」はチェックしたメールの一覧が表示されます。

メールサーバにrspamd(スパムフィルター)を入れてみた

メッセージをクリックすると、判定根拠が出ます。
誤判定があったら、これを見て調整かな?

メールサーバにrspamd(スパムフィルター)を入れてみた

3日分のメールを確認しましたが、rejectされたメールの中では誤判定0でした。
グレーなのと、判定しない(保留?)が6%ありますが、rejectされなかったら十分です。

かなり使えそうなSPAM判定ツールっぽいです。

3日経過して、SPAMなのに受信したメールは4通で、add_headerに1つ、greylistに3つの4つうでした。全部同じメールですので、取残しは1種類でした。

メールサーバにrspamd(スパムフィルター)を入れてみた

メールソフトを見たら、他のメールに無いスコアが表示されてました。
スコアは10.70みたいです。

メールサーバにrspamd(スパムフィルター)を入れてみた

どうするか判定する前に、対象メールをScanしてみた所、ブラックリストに登録されたみたいで、スコアが21.73に上がってました。(^_^;

メールサーバにrspamd(スパムフィルター)を入れてみた

これでも良かったのですが、ドメイン固定で来てるみたいなので、ドメインをブラックリストに追加してみました。ブラックリストドメインは+20ポイントにしました。結果41.73ポイントとなりました。
余裕で、reject対象ですね。

メールサーバにrspamd(スパムフィルター)を入れてみた

良さそうなので、このまま使って行こうと思います。

コメント