postfixスパム対策99%阻止 - Linux
逆引きできないクライアント、逆引き名からメールサーバでないと推定されるクライアントを応答コード「450」で拒否し、規則的に再試行する正当なメールサーバをホワイトリストで救済するという仕組みをもったS25R(Selective SMTP Rejection:選択的SMTP拒絶)方式と言うのを導入いたしました。
このスパム対策はかなりすばらしい方法で、ほとんどスパムメールが届くことは無くなりました。
考案された方の論文ページは以下ですので是非ご覧下さい。
■かなり要約した説明
SPAMメールを送信するメールサーバは「逆引き出来ない」「逆引きホスト名がメールサーバと思えないホスト名」の特徴があり配信を専門としている場合がほとんどで、その特徴に一致するか調べ、以下のような手順でSPAMメールの阻止を行います。
- SPAMメールの特徴に一致するか調べる
SPAMメールの特徴と一致した場合は「後で再送して下さい」というメッセージを送信元メールサーバに一時的なエラーとして返信します。 - 再送を待つ
正規のメールサーバである場合には、その指示に従い後で送信元メールサーバが再送するはずですので、再送を待ちます。 - 再送があった場合
本来メールサーバが持っているべき「再送機能」を有しているので「怪しくない」と判断し、次回以降は再送要求することなく即座に受信します。 - 再送がない場合
本来メールサーバが持っているべき「再送機能」を有していないので「怪しい」判断し、というメッセージを送信元メールサーバに一時的なエラーとして返信します。
結果、メールが受信されない…つまりスパムメールは届きません。
■postfixへの導入方法
まず、ホワイトリストを入手します。
下記サイト参照しダウンロード用ホワイトリストファイルをサーバにダウンロードします。
# cd /etc/postfix
# wget http://gabacho.reto.jp/anti-spam/white-list.txt
/etc/postfix/main.cf に以下を追加します。
#vi /etc/postfix/main.cf
smtpd_client_restrictions = permit_mynetworks, check_client_access regexp:/etc/postfix/white_list, check_client_access regexp:/etc/postfix/rejections smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, check_helo_access regexp:/etc/postfix/helo_restrictions smtpd_sender_restrictions = permit_mynetworks, reject_non_fqdn_sender, reject_unknown_sender_domain
postfixを再起動します。
#/etc/init.d/postfix restart
Shutting down postfix: [ OK ] Starting postfix: [ OK ]
- カテゴリ:Web開発
- 公開日:2008/08/04
- ↑ 記事評価をお願いします。
