【linux】スパムメールをPostfixの本文でフィルタリング

Linux

前回、件名によるフィルタリングを行いましたが不十分です。
メール本文でもフィルタリングするように設定追加してみようと思います。

本文のフィルタリング設定

フィルタリング設定は、件名のフィルタリングとほぼ同じで、
1:メールボディーのチェックを有効にする
2:除外設定をする
となります。

メールボディーのチェックを有効にする

body_checks = regexp:/etc/postfix/body_checks

main.cfの中のbody_checksが有効になっているのか確認する。

sudo vi /etc/postfix/main.cf
初期値では以下の行が無い事やコメント化されている場合があるので、無ければ追加またはコメント化を外します。
body_checks = regexp:/etc/postfix/body_checks

除外設定をする

除外設定は、先ほどのbody_checksに記述しているファイルです。
sudo vi /etc/postfix/body_checks

記述方法は、
/^Subject:除外定義/ REJECT
注意点として、全角の場合はエンコードが必要です。
エンコードはNKFコマンドでも可能ですが、ツールを利用すると手間も間違いもありません。


メール本文にspamという文字列を含んだメールをREJECTする。
/^(|[^>].*)spam/ REJECT

上記例は全てREJECTにしていますが、テスト終了後はDISCARDでメールを破棄した方がいいでしょう。
また、日本語を含んだ本文やHTMLメールの排除については別の機会にしたいと思います。

まとめ

件名と本文のチェックで、スパムメールは激減します。
件名チェックの時と同じく注意する事は、必要なメールが削除される事です。
テストは十分に行ってから、本格運用は開始する事が重要です。

コメント