MAKIZOU.COM

WEB系SEのホームページ作成&サーバ構築運用メモ

postfixスパム対策99%阻止 - Linux

逆引きできないクライアント、逆引き名からメールサーバでないと推定されるクライアントを応答コード「450」で拒否し、規則的に再試行する正当なメールサーバをホワイトリストで救済するという仕組みをもったS25R(Selective SMTP Rejection:選択的SMTP拒絶)方式と言うのを導入いたしました。

このスパム対策はかなりすばらしい方法で、ほとんどスパムメールが届くことは無くなりました。
考案された方の論文ページは以下ですので是非ご覧下さい。

阻止率99%のスパム対策方式の研究報告

■かなり要約した説明

SPAMメールを送信するメールサーバは「逆引き出来ない」「逆引きホスト名がメールサーバと思えないホスト名」の特徴があり配信を専門としている場合がほとんどで、その特徴に一致するか調べ、以下のような手順でSPAMメールの阻止を行います。

  1. SPAMメールの特徴に一致するか調べる
    SPAMメールの特徴と一致した場合は「後で再送して下さい」というメッセージを送信元メールサーバに一時的なエラーとして返信します。
  2. 再送を待つ
    正規のメールサーバである場合には、その指示に従い後で送信元メールサーバが再送するはずですので、再送を待ちます。
  3. 再送があった場合
    本来メールサーバが持っているべき「再送機能」を有しているので「怪しくない」と判断し、次回以降は再送要求することなく即座に受信します。
  4. 再送がない場合
    本来メールサーバが持っているべき「再送機能」を有していないので「怪しい」判断し、というメッセージを送信元メールサーバに一時的なエラーとして返信します。
    結果、メールが受信されない…つまりスパムメールは届きません。

■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開発
  • 公開日:
  • 1つ星2つ星3つ星4つ星5つ星
    Loading ... Loading ...
    ↑ 記事評価をお願いします。

コメント&トラックバック

トラックバック用URL

コメント




使用できるXHTMLタグ <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>