現状のスパム対策に関する頭の整理を兼ねたメモ。
今のところ色々な方法が考案されているけどS25Rに関連する話(greylistingとtarpittingを組み合わせる)が効果高そうな気がしていて前から試したかったのですが面倒でやっていなかった。が、今の環境ではWebメールからシコシコ読む事が多くなったのでスパムを捨てるのが面倒くさいという事で効果測定をする事に。その前に現状よく語られるSPAM対策の個人的な理解と見解を。
HELO
ここの情報をどこまで信用してフィルタしてしまっていいのか疑問を感じる。
RBL(DNSBL)
ブラックリストの仕組みとしては有用だと思うけど、IPベースでフィルタするので巻き添えを食らってメールが届かなくなる事があるのがコワイ。でも自前で作るとメンテが面倒くさい。
Bayesian filter
話題になり始めた頃に試したが、効果は非常に高い気がした。ただし、100%間違えなく振り分けるという事は不可能なので、結局誤認識して捨てられていないかという所謂ゴミ箱漁りをしたくなるので本末転倒だと感じている。実際友達に送ったメールがそういうのに引っかかってて連絡がつかなかったなんて事もあったので余計な気を回す必要が増えて嫌い。個人的な見解ではサーバ側でやるよりもユーザが勝手にやれば良いと思う。とはいえこれはPOPでとったメールに対しては有効だけど、IMAPだとユーザ側でやるのはちょっと面倒かも。
S25R
スパムの殆どはプロバイダから送られてくるという観点でのもの。というわけでプロバイダから送られてくる物は殆どひっかけられるわけだけど、自宅サーバの人からの物も捨ててしまう。個人的な見解では動的IPでメールサーバやる事自体がナンセンスだと思うし、そんなもん捨ててしまえとは思うけどネ。結局のところgreylistingの前フィルタとしてしか意味が無いと思っている。
tarpitting
やりたい事はわかるけど、息を止めている時間をかなり長めにしないと効果が無さそうなデータが出ている様だし、サーバ側の負荷になるので正直好みではない。積極的に導入する気がしないので今後実験サーバをたてる際にでも見てみたい。と言う事でこれはまだ試してません。
greylisting
今回試したい目玉だった。一見さんは再送を強いるという事で着信が遅くなってしまうのが問題。ただし、普通のサーバなら不達は無いし、一回しかトライしないサーバだとしても送信者にエラーくらいは返すだろう。S25Rを使って怪しい物だけに適用する事でマイナス部分をかなり減らせる。また、SQLGrey等だと自動的にリストを作ってくれるので面倒が少ない。
番外編IPでフィルタ
アジア系とか南米系とか自分と関係無いだろうと思っているIPを根こそぎ拒否してしまうもの。正直気持ちはわかるけど過激すぎる気がする。酷いところは日本以外のIPは全部遮断とかもあったし・・・。ホームページでもこういうフィルタをしているところがあって情報を収集している際にはねられて一寸イラっとした事もちらほら。ある意味鎖国だよねぇ・・・日本人らしい対応だと思うけど。うちの環境では出来ない方法だな。
まぁ、とりあえずこんなところかな。
正直どれもリスクがあって手放しにこれだっという対策は無いと感じている。S25R+greylist、そしてサーバとしての自前のブラックリストを簡単に管理出来る仕組みを入れるというところがリスクを考えた場合の落としどころとしては良いところかなと。
で、実際にpostfix+sqlgreyを設定してみた効果はというと日本のアダルト系、出会い系のスパムはgreylistでほぼ壊滅に追い込めた。が、海外系のバイアグラだのなんだのってメール、しかもbotネットから来ていると思われるメールは再送をきちんとやってくれてスルーされてしまって結局期待してたほど劇的な効果は無かった。
この結果から言える結論としては
- 日本のSPAM業者は効率向上の為に真面目にサーバをSPAM向けにチューンしている。そのおかげでgreylistやおそらくtarpitが非常に有効。
- botネットを使う様な連中は物量で攻めて来るので1の様なチューンをしておらずノーマルなサーバから送っている為に普通のサーバと見分けがつかない為すり抜けてしまう。
こんなところだと思う。で1は対策しやすいとして2に関しては頭が痛いところ。見かけ上普通のサーバなのでブラックリストを使う位しか思いつかないけど、自動化出来ないといたちごっこだし、同じホストからの再送もそれほど無いので費用対効果が薄い感じ。同じ内容を複数のサーバから送ってくる(botネット)からそういう部分でフィルタは出来る気がしているけど、やっぱりコンテンツフィルタは抵抗があるな・・・。ブラックリストの仕組みにアドレス、ホストだけじゃなくて内容も保存しておいてコンペアとるなんてのも良いのかな??
もうちょっと様子見&統計をとってみたいと思う。