メールサーバーのスパムメール対策(Postfix で Spamhaus.orgを設定)

これまでの設定でメールサーバーが完成して、スパムメールの踏み台として他のMTAへメールを不正中継しないように設定ができました。しかし、自分のメールアドレス(サーバー)宛てにはスパムメールが届いてしまいます。

そこで、自サーバー宛のメールを受信する際に、スパムメールを送信してくるMTAのIPアドレスが登録されているデータベース(ブロックリスト)を参照し、メール送信者のMTAがブロックリストに登録されている場合はメールを受信しないように設定することで、スパムメールを受信しないようにします。

私もこの設定を行うまで、かなりの量のスパムメールが届いていましたが、スパムメールがほぼ来なくなります。具体的には、Spamhaus.org のリストを設定します。

Spamhaus.org とは

Spamhaus.org とは、スパムメール送信に荷担しているドメインやIPアドレスのリストをリアルタイムで作成し公開している組織で、現時点で20年の歴史のある組織です。詳しくは参考にURLを載せていますので確認してください。
無料のものは商用利用はできず、個人サーバー(リクエスト数等の制限あり)でのみ利用可能です。詳しくは、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 を設定する」の「おまけ」参照)。

zen.spamhaus.org を設定した場合、他のリストを設定するのは無意味です。Spamhaus.org のリソースを無駄に利用しますし、無料利用のクエリ数も無駄に消費するのでやめましょう。

Spamhaus.org のブロックリストに登録されているか確認する

例えば、チェックするIPアドレスが 11x.160.202.71 の場合は、そのIPアドレスを逆さまにして、.zen.spamhaus.org をつけて、nslookup や dig を使って調査可能です。応答がない場合は、ブロックリストに登録されていません。

127.0.0.x で応答がある場合は、ブロックリストに登録されたアドレスになります。

nslookup 71.202.160.11x.zen.spamhaus.org
dig +short 71.202.160.11x.zen.spamhaus.org

応答されたアドレスにより、以下の様な意味があります(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 は以下の様になります。

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_rbl_client zen.spamhaus.org

最初に紹介した Postfix の設定記事で紹介した通り、この reject_rbl_client zen.spamhaus.org を設定することで、 smtpd_recipient_restrictions  と smtpd_relay_restrictions の違いが出てきます。前回の記事は以下を参照してください。

本記事では CentOS 7 をインストールすると最初から入っている Postfix を利用してメールサーバー(SMTP サーバー)を構築する方法を紹介します。MUA (POP...

おまけ

私は、設定していないので実際試せていませんが、以下の様な設定もできるようです。これにより、zen.spamhaus.org を利用しつつ、pbl のみを利用しないということもできるようです。(この場合、1クエリで処理されます。)

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_rbl_client zen.spamhaus.org=127.0.0.[2..7]