最近はメーラーも賢くなってきて、迷惑メールの振り分けはある程度自動的にやってくれるのですが、メールサーバ側での対策を見直そうと最新情報を調べ直しました。以前もpostfixの「header_checks」を使って簡易的に迷惑メールを排除していたのですが、特定IPアドレスからのsmtp関連への攻撃が多いのと、スパム対策の見直しで「smtpd_client_restrictions」の再設定を行い、迷惑メールをしっかり駆除したいと思います。
やりたい事
- RBLを利用して迷惑メール対策を強化する
- 特定IPアドレスからの攻撃があるのでIPアドレス指定でブロックする
RBL(Realtime Blackhole List)の設定
RBLは「迷惑メールの配信元をまとめたリスト」、つまりブラックリストの事で、このリストを管理しているサービスが幾つかありますので、それを参照してメールサーバ側で排除したいと思います。今回利用するRBLは「all.rbl.jp(元々設定済み)」「bl.spamcop.net」「zen.spamhaus.org」の3つです。設定は簡単で、main.cfの「smtpd_client_restrictions」にパラメータを記述するだけです。
smtpd_client_restrictions = permit_mynetworks, reject_rbl_client all.rbl.jp, reject_rbl_client bl.spamcop.net, reject_rbl_client zen.spamhaus.org, permit
「permit_mynetworks」はその名の通り、「mynetworks」のネットワークを許可します。
「reject_rbl_client」でRBLサービスのドメインを設定する事でRBLをチェック、リストに該当すれば排除します。
最後に「permit」として、それ以外は許可するという設定例です。
この設定によりチンケな迷惑メールは大方排除できるのですが、稀に正常な送信元がブラックリストに登録されている事があり、メールが届かないといったトラブルが発生しますので、その場合は一旦該当サービスを外して、リストから該当IPアドレスを削除する申請を行う必要があります。実体験として今まで2件ほどありました。
個別のブラックリストの設定
「smtpd_client_restrictions」の「check_client_access」というパラメータで、個別にドメインやIPアドレスを指定して許可したり排除したりできます。今回は攻撃回数が多いIPアドレスを排除するのですが、IPアドレスはコロコロ変わるものの、ご丁寧に「91.200.12.」の範囲になっていたので「91.200.12」という指定で設定します。また設定は「reject_client」というファイルを作り、postmapでdbファイルを作成するやり方で設定しました。
※「check_client_access」パラメータを上記RBL関連の設定とまとめて記述しています。
91.200.12 REJECT
smtpd_client_restrictions = permit_mynetworks, reject_rbl_client all.rbl.jp, reject_rbl_client bl.spamcop.net, reject_rbl_client zen.spamhaus.org, check_client_access hash:/etc/postfix/reject_client, permit
記述が完了すれば以下のコマンドで「reject_client.db」を作成してpostfixを再起動すれば完了です。
# postmap /etc/postfix/reject_client # postfix reload
Photo credit: Lorie Shaull on Visualhunt.com / CC BY-SA