10.5. SPAM 対策

通常の SMTP サーバーには、POP3 や IMAP4 と異なりユーザーの認証プロセスはありません。したがって、本来ならば、電子メールクライアントでインターネット上の SMTP サーバーを設定すれば、メールの送信は可能なはずです。しかし、通常は他人の SMTP サーバーを指定してメールを送信することはできません。これは、同じドメイン名を持つクライアントだけにメールの送信を許可し、第三者によるメールの中継を拒否する設定を行っているためです。第三者によるメールの中継を許可している設定の甘い SMTP サーバーは「オープンリレーサーバー」と呼ばれ SPAM メールの送信などで不正に利用される可能性があります。SPAM とは、大量の迷惑メールを無差別に個人、法人に送る行為を呼びますが、その多くは、他人の SMTP サーバーを不正に利用して配信されています。SPAM メールの被害にあった受信者側から見れば、メールを中継した SMTP サーバーが送信者となるため悪意の有無に関わらず濡れ衣を着せられることになります。また、第三者中継を許可している SMTP サーバーを調査しブラックリストに掲載する下記のようなウェブサイトも存在します。

ORDB(Open Relay Database)

http://www.ordb.org/

MAPS(Mail Abuse Prevention System)

http://www.mail-abuse.com/

さらに、このようなリストに登録された SMTP サーバから送信されたメールを受信しない設定にし ている SMTP サーバもあります。したがって、メールサーバの管理者は、第三者中継の設定に注意 を払わなければなりません。

10.5.1. access テーブルの使用

access テーブルを利用すると、Postfix が受け入れるメールや送信するメールを制限することができます。access テーブルで使用可能なパラメータには以下があります。

smtpd_client_restrictions

この SMTP サーバーに接続できるクライアントを制限します。

smtpd_helo_restrictions

SMTP の HELO や EHLO コマンドで許可するホスト名を制限します。

smtpd_sender_restrictions

SMTP の MAIL FROM コマンドでメールを送信できる送信者アドレスを制限します。

smtpd_recipient_restrictions

SMTP の RCPT TO コマンドでメールを受信できる受信者アドレスを制限します。

これらのパラメータの値に参照する access テーブルファイルを指定します。例えば、差出人の FROM アドレスで SPAM メールと判断し、メールの受信を拒否するのであれば、以下のように smtpd_sender_restrictions パラメータを /etc/postfix/main.cf に追記し、変更を反映するために Postfix を再起動します。

smtpd_sender_restrictions = hash:/etc/postfix/access

ティップ

/etc/postfix/access は、デフォルトで用意されている access テーブルファイルです。他のパラメータも指定するのであれば、それぞれ異なる access テーブルファイルを指定します。

access テーブルには拒否するメールのパターンを記述します。以下のような指定が可能です。

spam@example.com     REJECT
example.com          REJECT
spam@                REJECT
192.168.0.1          REJECT
192.168.0            REJECT
192.168              REJECT
192                  REJECT

このように、メールアドレス、IP アドレス、ドメイン名、ユーザー名を指定することができます。これに続きタブまたはスペースで区切り、REJECT と記述することで、マッチしたメールを拒否することができます。なお、ドメイン名を指定した場合は、そのサブドメインも拒否の対象となります。つまり、上記の例では hoge.example.com や hogehoge.example.com からのメールも拒否されます。

/etc/postfix/access の編集後は、以下のように postmap コマンドを実行し、データベースファイルである /etc/postfix/access.db を更新する必要があります。Postfix を再起動する必要はありません。

# postmap /etc/postfix/access

10.5.2. ORDB/MAPS の使用

ORDB や MAPS などのデータベースを参照して第三者中継を許可しているサイトからのメールを拒否するには、以下のように smtpd_client_restrictions パラメータを /etc/postfix/main.cf に追加します。

smtpd_client_restrictions = reject_rbl_client relays.mail-abuse.org
smtpd_client_restrictions = reject_rbl_client relays.ordb.org

注意

送信者の SMTP サーバーがデータベースに登録されている場合、本来ならば受信したいメールであってもメールは拒否されてしまうため、これらのサービスを利用する際には注意が必要です。