1. 『お馴染さん方式』
「いちげんさん(初めてメイルを送ってきた相手)」に対しては、 『ゆっくり対応する』、『SMTP/一時エラーを返事する』という対応をします。 こうすることで、多くの spam (+virus) を撃退(受信拒否)できます。
- ゆっくり対応すると spammerはしばしば送信をあきらめます。 通常のメイル送信ホストはつきあってくれるはずです。
- 最後までつきあってくる spam ホストでも一時エラーを返事すると 多くは再送してきません。
- 通常のホストは再送してきます。その時には受け取ります。
1.1. 特徴など
一度目の接続にはSMTP/一時エラーを返して再送を待つので、受け取るのが少し遅れます。
遅延回避には ホワイトリスト を併用します。
DNS 逆引き情報を併用するとより効果的です。非通知遅延再送要求方式
ホワイトリスト(お馴染さんリスト)を用意しておくことから名づけました。 いちげんさん お断わり方式とも言っています。
- 現在の spam の送信方法に対して有効です。(有効性、期間は検証中です。)
MTAでspamを撃退する方法の特徴を持ちます。 spamを送信するコストを上昇させます。
- ホワイトリストの種類、内容、維持管理方法などにより、 いろいろな実装が考えられます。
一時エラー返答は昔からよく知られた手法で、 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 を使って、遅延と一時エラー返答します。
- ホワイトリストにある相手からの接続は通常の SMTP デーモンに渡します。
「いちげんさん」からの接続は rblsmtpd 内で通常よりゆっくりと対応します。
- spam 送信ホストの多くは SMTP セッションを途中で切断します
SMTP/envelope情報をきちんと受け取れたときは、SMTP/一時エラーを返事します。
SMTP/恒久的エラーではありません。
SMTP/envelope情報を受け取れた相手のIPアドレスは「短期的受信リスト」に登録しておきます。 一定期間内の再接続を受入れるためです。
- ある期間内に再接続してきたら受信します。 ただし、すぐに(5分以内)再接続してくるものは再度一時エラーを返します。 短期リストから削除します。
- (qmail は 6 分半後に最初の再接続をしてきます。)
きちんと送られてきた helo と SMTP/envelope情報 は記録しておきます。
- あとで分析して、ホワイトリストなどに登録するための判断に使います。
mail from が "<>" のものは短期受信リストには登録しないことにしました。
- こちらから送信していないメイルにエラーが返ることはないからです。 バウンス型の spam を排除することができます。
- 短期受信リストは適宜クリアします。
- 一定時間内に再接続してこなかった場合は spam ホストだとみなします。