Postfix 3.4 [迷惑メール対策 SpamAssassin メール振り分け] CentOS7 (マルチドメイン)

SpamAssassinにて、user_prefsを入れ替えて、迷惑メールと判断されたものは、受信しないようにしたいと思います。

迷惑メール、判定ツール、user_prefs 入れ替え

松田陽一さん作のSpamAssassin設定ファイルに入れ替えます。

https://pastebin.com/QnwRxxBQ

からファイルをダウンロードします。
/etc/mail/spamassassin
に、「user_prefs」として保存します。

# cd /etc/mail/spamassassin
# mv local.cf local.cf.back
# mv user_prefs local.cf

# systemctl restart spamassassin

vi /etc/mail/spamassassin/v310.pre

# TextCat - language guesser
#
#loadplugin Mail::SpamAssassin::Plugin::TextCat

 ↓

# TextCat - language guesser
#
loadplugin Mail::SpamAssassin::Plugin::TextCat

↑ コメントを外して、有効にします。
config: failed to parse, now a plugin, skipping, in “/etc/mail/spamassassin/local.cf”: ok_languages ja en
というエラーがなくなります。(2019/05/26追加)
vi /etc/mail/spamassassin/local.cf

include private_prefs

の前に、

allow_user_rules 1
report_safe 0
rewrite_header Subject ***SPAM***

と入れます。

allow_user_rules
は、ユーザ毎にルールを設定できるようにする。(する場合「1」にする)

report_safe
は、「0」にすると、ヘッダ内に、「迷惑メールの判定レポート」が表示されます。
「1」にすると、メール本文に表示されます。

rewrite_header
は、迷惑メールと判定された場合、ヘッダ内を書き換えます。

rewrite_header Subject ***SPAM***
は、題名に「***SPAM***」と入れてくれます。

迷惑メールを振り分ける。「受信させない」ようにする。

# yum install procmail

Running transaction
  Installing : procmail-3.22-36.el7_4.1.x86_64                                                                                               1/1 
  Verifying  : procmail-3.22-36.el7_4.1.x86_64                                                                                               1/1 

Installed:
  procmail.x86_64 0:3.22-36.el7_4.1                                                                                                              

Complete!

↑振り分けツールである、「procmail」を入れます。
# vi /etc/procmailrc

SHELL=/bin/bash
PATH=/usr/bin:/bin
DROPPRIVS=yes
MAILDIR=/mail/$DOMAIN/$USER
DEFAULT=$MAILDIR/
LOGFILE=/mail/$DOMAIN/$USER/.procmail.log
VERBOSE=ON
 
:0fw: spamassassin.lock
*!^X-Spam-Status.*
| /usr/local/bin/spamc
 
:0
*^X-Spam-Status: YES
$MAILDIR/.Spam/

↑振り分けるルールを「procmailrc」というファイルに記述します。
procmailの「レシピ」と呼ばれています。
*!^X-Spam-Status.*
| /usr/local/bin/spamc

↑上記では、ヘッダ内に「X-Spam-Status」という行がなければ、「/usr/local/bin/spamc」というプログラムを通して、SpamAssassinで、迷惑メールかどうかが判定されます。
*^X-Spam-Status: YES
$MAILDIR/.Spam/

↑そして、「X-Spam-Status: YES」となっていれば、つまり、迷惑メールと判定されたのであれば、「.Spam」というフォルダに、振り分けられます。
この「.Spam」は、通常のメール受信操作では、受信されません。

Procmail用にPostfixを修正

# vi /etc/postfix/main.cf

local_transport = local
↓
local_transport = virtual

virtual_transport = virtual
を
virtual_transport = procmail
にする

 
# vi /etc/postfix/master.cf

policy unix -       n       n       -       0       spawn
  user=nobody argv=/usr/bin/python3.6 /usr/bin/policyd-spf /etc/python-policyd-spf/policyd-spf.conf
smtp      inet  n       -       n       -       -       smtpd
procmail    unix  -  n  n  -  -  pipe
  flags=R user=vuser argv=/usr/bin/procmail -t -m USER=${user} DOMAIN=${nexthop} /etc/procmailrc

# systemctl restart postfix

迷惑メールを受信する・・・

# head .Spam/new/xxxxxxxxxxxxxx.xxxxxx.xxxx

Return-Path: <(差出人)>
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13)
X-Spam-Flag: YES
X-Spam-Level: ***
X-Spam-Status: Yes, score=13.2 required=13.0 tests=CONTENT_TYPE_PRESENT,

と、スパムは、別フォルダに入りました。

タイトルとURLをコピーしました