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が更新されました。
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
今度、チェックしてみます。