モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

spam対策を考えていたら、結局Greylistingに行き着く

阻止率99%のスパム対策方式の研究報告
を安全に組み込むことを考えています。


spamの可能性の高い接続元からは、再送するように返して、その後再送があったときにはspamじゃない可能性が高いので、自動的にホワイトリストに入れて受信させるように考えました。
そこで、PbSのソースを修正して書こうと思っていたんですが、これってそのままGreylistingだな、ということに気づいて、そっちにこの方法を足す、という形で考えました。


Greylistingについては下記参照。

[postfix-jp:03911] Greylisting
greylisting

つまり、一度必ず再送要求で返して、ちゃんと再送してきたら受け取るというものです。

これを、あやしい接続元に対してだけ再送要求で返せば、Greylistingによるメールの遅延(といっても5,6分ですが)や接続要求が増える(正しいメールでもかならず2回のSMTP接続が必要になるため)ということもなく、spamも受け取らなくて済むという、いいとこどりの設定になるはずです。


Postfixは2.1よりSMTPDアクセスポリシーという機能が使えるようになり、外部のポリシーサーバにより、接続の許可などを行わせることが出来るようになっています。
Postfix SMTP Access Policy Delegation

この機能を使って、Greylistingの実装がサンプルで付いてきているのですが、その他にも、
Postgrey - Postfix Greylisting Policy Server
というものが公開されています。


これは whitelists が指定できるのですが、ちょこっと改造して、まず先にチェックすべき接続元、ここでは greylists と呼ぶとすると、これのどれかに合致しているなら、チェックする必要がある、ということになります。


しっかり動くことが確認できたらパッチを公開しようと思います。


(関連)
id:stealthinu:20040908#p3