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

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

「SMTPセッションの強制切断によるspamメール対策方法」とsmtpd_header_restrictions

SMTPセッションの強制切断によるspamメール対策方法
http://info.ipsj.or.jp/01kyotsu/award/funai_bp/2006_pdf/LL_008.pdf

という、岡山大学の山井成良先生の論文を読んだ。


いくつかの手法が組み合わされているのだけども、「SMTPセッションの強制切断による」という部分は、greylistingの判定で、同一IPからの再送でないと再送として認識されない、という部分を改善するもので、RCPT TO:を受信した時点ではなく、DATAのヘッダ部分を読み込んだ時点で切断する、というものです。
そうすると、再送を判別するのに同一IPからというしばりがなくなり、Message-IDで判別できる用になるわけです。
しかも、ヘッダ部分だけならば、スパムによる負荷増もそれほどは多くないだろう、と言えます。
なるほど!


ちょうど、別の視点から同じような事を考えている人がPostgrey-MLにいて、

[postgrey] What about calling greylist other pprotocol states?
http://lists.ee.ethz.ch/postgrey/msg01524.html

こちらは、greylistingによるfalse positive(誤検出)を、コンテンツフィルタみたいに、スパム判別したものを確認できるようにしたい、という考えから、一旦本文を受信した時点で再送要求出したいというアイデアでした。


それでちょっと思ったのですが、PostfixではRCPTやDATAなどのタイミングでなんらかの制限を掛けることが出来る、smtpd_recipient_restrictionsやsmtpd_data_restrictionsという設定項目があるのですが、それと同じように、smtpd_header_restrictionsという、メールヘッダを読み込んだ時点でなんらかの制限を掛けるというrestrictionを作ったらどうだろうと考えました。

これが出来ると、「SMTPセッションの強制切断による」greylistingが汎用的に書けるようになるし、本文を全部読む前にheader情報での制限を書けることになるため、リソースの点でも有利になると思うのですが、どうでしょう。

パッチ書きたいと思ったのですが、これは結構大きな修正になりそうだから大変かなあ。