これまでの設定でメールサーバーが完成して、スパムメールの踏み台として他のMTAへメールを不正中継しないように設定ができました。しかし、自分のメールアドレス(サーバー)宛てにはスパムメールが届いてしまいます。
そこで、自サーバー宛のメールを受信する際に、スパムメールを送信してくるMTAのIPアドレスが登録されているデータベース(ブロックリスト)を参照し、メール送信者のMTAがブロックリストに登録されている場合はメールを受信しないように設定することで、スパムメールを受信しないようにします。
私もこの設定を行うまで、かなりの量のスパムメールが届いていましたが、スパムメールがほぼ来なくなります。具体的には、Spamhaus.org のリストを設定します。
Spamhaus.org とは
Spamhaus.org:https://www.spamhaus.org/
Spamhaus.org の利用制限:https://www.spamhaus.org/organization/dnsblusage/
この設定をすり抜けるものは、メールアドレス単位で拒否しますが、それはまた別の記事で紹介します。
スパムメール対策の仕組み
今回紹介するスパムメール対策の仕組みは、自分のMTA(Postfix)がメールを受信する際に送信者(送信MTA)のIPアドレスをDNSの逆引きリクエストで Spamhaus.org へ問合せ、Spamhaus.org から応答があれば受信しないように設定することでその送信者からのメールを拒否します。
Spamhaus.org が提供してくれるブロックリストには、いくつか種類がありますが通常は、zen.spamhaus.org を利用すれば OK です。それぞれのブロックリストには、以下の様なものが登録されており、zen.spamhaus.org を利用すると、すべてのブロックリストのチェックが1クエリで可能です。
sbl.spamhaus.org /css.spamhaus.org:完全なスパマーとして認識されているもの
xbl.spamhaus.org:第3者による不正、トロイ感染などの可能性があるもの
pbl.spamhaus.org:ISPの設定で動的的IPアドレスに分類されているもの
この設定を行うと、友人のメールサーバーからのメールを受信できなくなるなどの弊害が起こる可能性があります。固定IPで設定したサーバーでない場合、PBLに登録されている可能性があるためです。スパム判定をゆるくしたい場合は、zen.spamhaus.org を利用せず、sbl.spamhaus.org, css.spamhaus.org, xbl.spamhaus.org の3つを設定する(1回のスパムチェックで3クエリ使用します)などの方法もあります。また、zen.spamhaus.org を利用しつつ、応答コードで処理を分ける方法もあるようです(「Postfix に zen.spamhaus.org を設定する」の「おまけ」参照)。
Spamhaus.org のブロックリストに登録されているか確認する
例えば、チェックするIPアドレスが 11x.160.202.71 の場合は、そのIPアドレスを逆さまにして、.zen.spamhaus.org をつけて、nslookup や dig を使って調査可能です。応答がない場合は、ブロックリストに登録されていません。
127.0.0.x で応答がある場合は、ブロックリストに登録されたアドレスになります。
応答されたアドレスにより、以下の様な意味があります(Spamhaus.orgより)が、応答があれば、ブロックリストに登録されています。(自分のIPをチェックしてリストに入っているようであれば、理由として把握しておきましょう。)
Postfix に zen.spamhaus.org を設定する
これまで紹介した通り、zen.spamhaus.org を利用すれば、送信者がスパムメール送信者である可能性(ブロックリストに登録されているか)を確認することができます。
Postfix に zen.spamhaus.org を設定するには、/etc/postfix/main.cf の smtpd_recipient_restrictions に、reject_rbl_client を設定します。/etc/postfix/main.cf の smtpd_recipient_restrictions は以下の様になります。
最初に紹介した Postfix の設定記事で紹介した通り、この reject_rbl_client zen.spamhaus.org を設定することで、 smtpd_recipient_restrictions と smtpd_relay_restrictions の違いが出てきます。前回の記事は以下を参照してください。
おまけ
私は、設定していないので実際試せていませんが、以下の様な設定もできるようです。これにより、zen.spamhaus.org を利用しつつ、pbl のみを利用しないということもできるようです。(この場合、1クエリで処理されます。)