MoinQ:

1. 『お馴染さん方式』

「いちげんさん(初めてメイルを送ってきた相手)」に対しては、 ゆっくり対応する』、『SMTP/一時エラーを返事する』という対応をします。 こうすることで、多くの spam (+virus) を撃退(受信拒否)できます。

  1. ゆっくり対応すると spammerはしばしば送信をあきらめます。 通常のメイル送信ホストはつきあってくれるはずです。
  2. 最後までつきあってくる spam ホストでも一時エラーを返事すると 多くは再送してきません。
  3. 通常のホストは再送してきます。その時には受け取ります。

1.1. 特徴など

  1. 一度目の接続にはSMTP/一時エラーを返して再送を待つので、受け取るのが少し遅れます。

  2. 遅延回避には ホワイトリスト を併用します。

  3. DNS 逆引き情報を併用するとより効果的です。非通知遅延再送要求方式

ホワイトリスト(お馴染さんリスト)を用意しておくことから名づけました。 いちげんさん お断わり方式とも言っています。

  1. 現在の spam の送信方法に対して有効です。(有効性、期間は検証中です。)
  2. MTAでspamを撃退する方法の特徴を持ちます。 spamを送信するコストを上昇させます。

  3. ホワイトリストの種類、内容、維持管理方法などにより、 いろいろな実装が考えられます。

一時エラー返答は昔からよく知られた手法で、 http://projects.puremagic.com/greylisting/ Greylisting (Evan Harris) , Slashdot の記事 (6/20) などでも使われています。


東海インターネット協議会での運用実験 TIC:AntiSpam 同所での議論 reflection.co.jp での運用

1.2. 実装の概要

SpamJp:onazimi/diagram.png 全体像 -- /開発の事情

D. J. Bernstein さんの ucspi-tcpパッケージに含まれている tcpserver を使って接続を制御します。

すこし改造した rblsmtpd を使って、遅延と一時エラー返答します。

  1. ホワイトリストにある相手からの接続は通常の SMTP デーモンに渡します。
  2. 「いちげんさん」からの接続は rblsmtpd 内で通常よりゆっくりと対応します

    • spam 送信ホストの多くは SMTP セッションを途中で切断します
  3. SMTP/envelope情報をきちんと受け取れたときは、SMTP/一時エラーを返事します。

  4. SMTP/envelope情報を受け取れた相手のIPアドレスは「短期的受信リスト」に登録しておきます。 一定期間内の再接続を受入れるためです。

  5. ある期間内に再接続してきたら受信します。 ただし、すぐに(5分以内)再接続してくるものは再度一時エラーを返します。 短期リストから削除します。
    • (qmail は 6 分半後に最初の再接続をしてきます。)
  6. きちんと送られてきた helo と SMTP/envelope情報 は記録しておきます。

    • あとで分析して、ホワイトリストなどに登録するための判断に使います。
  7. mail from が "<>" のものは短期受信リストには登録しないことにしました。

    • こちらから送信していないメイルにエラーが返ることはないからです。 バウンス型の spam を排除することができます。
  8. 短期受信リストは適宜クリアします。
    • 一定時間内に再接続してこなかった場合は spam ホストだとみなします。