Postfixでネットワークアドレスで拒否
最近フィリピンのIPアドレスからの迷惑メールがやたらと多い。
平日に10通、週末になると1日で30通近くくる。
セフレ仕分けSNSだの、丸見えアド掲示板だの、40型液晶テレビが800円だの。
ヘッダーを見ると全てフィリピンの数個のIPアドレスから。
メールサーバはPostfixでS25R+tarpitting+greylistingしてるが、
これすらスリ抜けてくる。
まぁクライアント側のメールソフトで全部迷惑メールフォルダに直行なので、最初は放っておいたんだけど、
段々腹がたってきたので、どうせフィリピンから仕事のメールが来ることは絶対にないので
フィリピン国内のIPアドレスを全て拒否することにした。
Postfixなので、単純にmain.cfに設定を書けばいい、と思ってたけどここで思いのほかハマる。
main.cfに以下を追加。
smtpd_client_restrictions = permit_mynetworks check_client_access cidr:/etc/postfix/reject_ip
最初、cidrという記述方法が分かっていなかった。
reject_ipは以下のように記述
180.xxx.0.0/15 REJECT 180.xxy.0.0/14 REJECT 180.xxz.0.0/16 REJECT
hashでIPアドレス一個づつ書いてると鬼のようなリストになるので、ネットワークアドレスで
拒否できるのは有り難い。
実際の各国別IPのリストはakionweb様より拝借。
で、このリストをpostmapするのか、と思っていたらどうやらしなくてもいいらしい。
このままでpostfixをreload。
で、テストしようと試しに自分のISPのネットワークアドレスを上記のreject_ipの拒否リストに入れて、
telnet xxx.xxx.xxx.xxx 25 する。
Escape character is '^]'. 220 mail.hogehoge.net ESMTP Postfix EHLO localhost 250-mail.hogehoge.net 250-PIPELINING 250-SIZE 1048576 250-ETRN 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN MAIL FROM: hoge@hogehoge.com 250 2.1.0 Ok
となり接続できてしまう。
あれれ???と何回も設定ファイルやネットワークアドレスを確認するも、同じ。
なんでだろー??と思って1時間悩む。が、特に間違えてないっぽい。
まさか・・・と思い、RCPT TOまで入れてみる
RCPT TO: hogeuser@hogehoge.com 554 5.7.1 <111x222x333x444.ap.hoge.ne.jp[111.222.333.444]>: Client host rejected: Access denied
orz
qmailのtcpserverようにSMTP接続時点で拒否るのではなく、RCPT TO までいれた後で判定されるらしい。
RCPT TOコマンドまで発行されるのはいただけないが、まぁちゃんと拒否ってくれるのでよしとする。
なんと無駄な時間・・・・。