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

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

S25RをSpamAssassinで利用する

Qgreyを作ったあたりちょっと考えていたネタなのですが、S25RSpamAssassinに組み込めないかと思っていました。


S25Rを入れる時、抵抗になるのは、誤判別とそれを拾う方法がない、ということだと思います。
Rgreyは拾う方法としてgreylistingを使いましたが、greylistingではじいてしまったものは、やはり拾う(ゴミを確認する)方法はありません。
SpamAssassinのように、受けてからコンテンツフィルタでゴミ箱へ捨てる場合、最終的に人間が判別できる、という逃げ道があるので、メール管理者側は導入しやすいと思います。

で、そこにS25Rによる判別を、SpamAssassinのポイント付けにも使えないか、と考えました。
最初は、SpamAssassinS25R判定用の組み込みモジュールを作ることで実現しようと考えていましたが、先日やまやさんに教えていただいたPREPEND使う方法だと、全く作り込み無しの設定だけで利用できるようになることがわかりました。


つまり、
阻止率99%のスパム対策方式の研究報告 ―― Selective SMTP Rejection (S25R)方式 ――
Postfixの設定で、「450」を返しているところを「PREPEND」にしてやると。

具体的には、/etc/postfix/client_restrictions (に該当するファイル)を

/^[^\.]*[0-9][^0-9\.]+[0-9]/   450 may not be mail exchanger

らの行を全て

/^[^\.]*[0-9][^0-9\.]+[0-9]/   PREPEND X-S25R: may not be mail exchanger

とかに変更してやって、SpamAssassin側の設定では

header X_S25R X-S25R =~ /^may not be mail exchanger$/
describe X_S25R may not be mail exchanger
score X_S25R 3.0

とかしてあげる。

その他にも、MXやNSによる拒否も、このようにして利用してやることが出来、こちらのほうが捨てないのでより安全になると考えられます。


ただ、S25RやRgreyでは、負荷軽減という意図もあるのですが、その利点は無くなります。
まだテストもしてないので、試してみてもうちょい設定等もまとめて、またまとめた文書を載せたいと思います。


(関連)

阻止率99%のスパム対策方式の研究報告 ―― Selective SMTP Rejection (S25R)方式 ――
MTA のアクセス制御
Rgrey - Selective SMTP Rejection + postgrey パッチ
モーグルとカバとパウダーの日記 - スパマーのネームサーバでフィルタリング