そんな偉そうなことではないが、自社サーバはさくらのVPSにVirtualminを入れて、マルチドメイン環境をつくって運用しているが、そこに自動的に入ったPostfixやDovecotについては、入れたままの状態で使ってきたが、ここにきて、BACKSCATTERERやTRUNCATEなどに頻繁にリストに載るようになってしまい、なにかしらの対策を迫られるようになった。
さて、何をしたらよいか。まず、自社サーバは第三者中継はすべてできないようには設定済である。第三者中継のチェックはrbl.jpのチェッカーでできる。
Third Party Relay Check RBL.JP第三者中継チェック RBL.JP
果たして、「全てのテストが行われました, no relays accepted.」の結果が得られ、中継はされないことが確認できた。
私はBACKSCATTERというものをそもそも知らなかった。直訳すると、後方へのばらまき、という意味であるが、調べると、要するに、スパムを送りたいアドレスをエンベロープアドレスに偽装して、踏み台にしたいサーバに、宛先がないアドレスでメールを送りつけることで、リターンメールがばらまかれるという仕組みのようだ。結果として、自サーバから何者かが怪しいメールを大量に送りつけ、リターンメールが大量に発送される。
そこで、まずは、maillogを見るためのツールを探したところ、pflogsummというのがあった。
yum -y install postfix-pflogsumm
cat > pflogsumm_report ※/root内に生成する
--------------------------------------------------------------
#!/bin/bash
MAILLOG=`mktemp`
for log in `ls /var/log/maillog-*|sort`
do
cat $log >> $MAILLOG
done
cat /var/log/maillog >> $MAILLOG
REPORT=`mktemp`
pflogsumm --problems_first --verbose_msg_detail --mailq -d yesterday $MAILLOG > $REPORT
cat $REPORT | mail -s "`head -1 $REPORT` in `uname -n`" 自分のメールアドレス
rm -f $MAILLOG $REPORT
--------------------------------------------------------------
chmod 700 pflogsumm_report
./pflogsumm_report
メールが届いた!
怪しいサイトのホスト名やメールアドレスがオンパレードなので、gmailでは警告フラグが立っていたが、手動で外した。
とりあえず、毎日前日1日分の統計を取るため、cron.dailyに移動した。
mv pflogsumm_report /etc/cron.daily/
可能性としては、backscatter攻撃をされているか、このサーバに乗っているアカウントのどれかのパスワードが破られて、メールを送られてしまっているかだが、まずは、送信者を拒否できないか方法を探した。
これによると、smtpd_recipient_restrictionsの設定例が載っていた。
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination,
reject_rbl_client bl.spamcop.net,
reject_rbl_client sbl.spamhaus.org,
reject_rbl_client all.rbl.jp,
check_policy_service unix:private/policy-spf
まずはBLに乗っているホストからの接続全拒否がすぐできて効果がありそうだ。サーバに接続してきているいくつかのIPアドレスをMXToolboxで調べたところ、いずれも複数のリストに載っていた。
91.195.103.**
BACKSCATTERER
BLOCKLIST.DE
INTERSERVER
UCEPROTECTL1
UCEPROTECTL25.188.11.**
BLOCKLIST.DE
INTERSERVER
UCEPROTECTL2120.203.25.**
BACKSCATTERER
BARRACUDA
BLOCKLIST.DE
CBL
INTERSERVER
UCEPROTECTL1
など20個以上
それを踏まえて、以下のような設定とした。
/etc/postfix/main.cf
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_rbl_client bl.spamcop.net,
reject_rbl_client sbl.spamhaus.org,
reject_rbl_client all.rbl.jp,
reject_rbl_client list.dsbl.org,
reject_rbl_client cn-kr.blackholes.us,
reject_rbl_client brazil.blackholes.us,
reject_rbl_client russia.blackholes.us, *1
reject_rbl_client bl.blocklist.de,
reject_rbl_client rbl.interserver.net,
reject_rbl_client dnsbl-1.uceprotect.net,
reject_rbl_client dnsbl-2.uceprotect.net,
reject_rbl_client dnsbl-3.uceprotect.net,
reject_unknown_client,
check_policy_service unix:private/policy-spf
smtpd_sender_restrictions =
reject_unknown_sender_domain
Webminの画面で修正、その後Reload Configurationボタンを押してreload
上記の設定は、昨日の23時過ぎに行ったが、未明に届いた8/9分のレポートには、少なくない接続がブロックされていた。今日は24時間ブロックする設定で運用することになるので、明日どのくらいブロックされるかあらためて確認したい。
maillogを見ていて、以前に設置したシステムのリターンメールをプログラムで受け取る処理のプログラムがpermission deniedになっているのをみつけた。途中のディレクトリのパーミッションが落ちているのが原因だった。
もう1点、cn-kr.blackholes.usを使ってブロックされたメールの応答メッセージに「THIS RBL HAS LONG BEEN DEPRICATED---DELETE IT FROM YOUR CONFIG」とあった。*.blackholes.usは以下のサイトに例として乗っていたのをそのまま使ったのだが、古いのかもしれない古いので使ってはいけない。
Postfixのセキュリティ対策 ──暗号化通信とメールの不正中継の対策──
当面はpflogsummのログを確認していくこつになりそうだ。