Postfix3.3 迷惑メール対策 SpamAssassin(スパムアサシン)設定その2

Postfix 3.4 [迷惑メール対策 SpamAssassin メール振り分け] CentOS7 (マルチドメイン)
↑こちらもご覧ください。記事が新しいです。

Postfix3.3 迷惑メール対策 SpamAssassin(スパムアサシン)[ユーザ毎の設定] (2018/11/01 追加)
Postfix3.3 迷惑メール対策 SpamAssassin(スパムアサシン)の続き。
細かな設定を。

SpamAssassin 定義ファイルの入れ替え

以前は、松田陽一さん作のSpamAssassin設定ファイルが
http://www.flcl.org/~yoh/user_prefs
にあったのだが、サーバーアクセスできないので、
以前、ダウンロードしたもの(user_prefs)をコピー

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

↑元々あった、local.cfを、user_perfsに置き換え

SpamAssassin user_pref が更新されました。(2019年2月8日 追記)

2019年2月1日、user_prefが更新されました。

https://pastebin.com/QnwRxxBQ

SpamAssassin 設定

# cd /etc/mail/spamassassin
# vi local.cf

#ok_languages ja en
↓
ok_languages ja en

allow_user_rules 1

↑ユーザ毎にルールを設定するなら上記を設定
report_safe 0

↑スパムと判断された場合、スパムレポートのメールになるのを防ぐ。ヘッダで判断する。
↓メールがこのようになってしまうので・・・


rewrite_header Subject ***SPAM***

↑スパムと判断された場合、タイトルを書き換える
↓下記のように「件名」に「***SPAM***」が付加されます。


whitelist_from *@example.jp
whitelist_from info@example.jp

blacklist_from *@example.com
blacklist_from info@example.com

↑ホワイトリスト/ブラックリストの設定。

ドメインすべて / メールアドレス毎の設定が可能。

迷惑メールの場合は、そもそも「受信しないように」する

procmailを入れます。

# yum install procmail
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                            | 2.4 kB  00:00:00
227 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package procmail.x86_64 0:3.22-36.amzn2.1.2 will be installed
--> Finished Dependency Resolution

(略)

Installed:
  procmail.x86_64 0:3.22-36.amzn2.1.2

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/

↑procmailの設定を書きます。

MAILDIR=/mail/$DOMAIN/$USER
は、通常の配信先
$USERは、「@」から前の部分になります。

:0fw: spamassassin.lock
*!^X-Spam-Status.*
| /usr/local/bin/spamc

↑ロックファイルを設定して、「Spam」が評価されていない場合(X-Spam-Status)のヘッダが「ない」場合、
メールの内容を「/usr/local/bin/spamc」に渡します。
SpamAssasinに評価されて、ヘッダに「X-Spam」で始まるものが入って、次の「レシピ」に行きます。(2018/11/01修正)
*^X-Spam-Status: YES
$MAILDIR/.Spam/

↑前の「spamassassin」で評価されたメールは、ここで、ヘッダをみて、迷惑メールと判定された場合は、「.Spam」という専用フォルダに移動します。
メールソフトでは、受信されません。(2018/11/01修正)
# vi /etc/postfix/main.cf

#mailbox_command = /some/where/procmail
を
mailbox_command = /usr/bin/procmail
に変更

virtual_transport = virtual
を
virtual_transport = procmail
にする

procmail_destination_recipient_limit = 1
を追加

 
# vi /etc/postfix/master.cf
---------------------------------------------
spamassassin unix - n n - - pipe
  flags=R user=spamd argv=/usr/local/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
---------------------------------------------
から
---------------------------------------------
spamassassin unix - n n - - pipe
  flags=R user=vuser argv=/usr/bin/procmail -t -m USER=${user} DOMAIN=${nexthop} /etc/procmailrc
---------------------------------------------
に変更

↑vuserは、virtualhostのMaildirに書き込めるユーザ名です。

実際に受信してみます。

# ls -al .Spam/new/
total 8
drwx------ 2 vuser vuser   77 Oct 27 XX:31 .
drwx------ 5 vuser vuser   39 Oct 27 XX:31 ..
-rw------- 1 vuser vuser 6713 Oct 27 XX:31 1540614693.19208.xxxxxx.internal

↑迷惑メールと判定されたメールは、「.Spam」以下に振り分けられます。
手元のメールソフトでは受信されません。
誤判定のために、「救い出す」仕組みを提供したほうがいいかと思います。
(今後、作成/設定予定)

SpamAssassin 雑感

SpamAssassinは、迷惑メールをある程度、判定をしてくれますが、判断を間違うこともあります。
お客さん(利用者)が理解をしてくれればいいのですが、
問い合わせが多いと、対応で疲弊をしてしまいます。

そのためにも、
・ホワイトリスト
・ブラックリスト
・判定スコア
などを、お客様(利用者)の方で、変更できるようにしたほうがいいかと思います。

SpamAssassin 振り分け、他の方法・・・

振り分け他の方法として、「content_filter」を用いる方法があるようで・・・https://wiki.apache.org/spamassassin/IntegratedSpamdInPostfix
今度、チェックしてみます。

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