このブログでやったMovableType/WordPressへのコメント・トラックバックスパム対策。まずまずの結果となったので自分でもワケがわからなくなるうちにまとめ。
基本的に対策は強力な順に上から。Webサーバの負荷だけを考えると1,2が有効です。逆にシステム全体への影響も大きいかもしれません。言うまでもありませんがFirewallで拒否してしまうとアクセスが全くされなくなる上全てのパケットの処理に影響するので慎重に設定が必要です。
- Firewall(iptables/ルータ)
過去数ヶ月のSPAMリストから最も多いスパムサイトのIPアドレスを2~3個遮断。数%程度だがずっと同じIPアドレスを使っているスパマーを完全にシャットアウト。ルータでやれば一番いいが負荷が心配なのでiptablesで対処。レンタルサーバでは設定が無理な可能性大。
-MovableTypeトラックバック・コメントスパム対策 その(1) -- (blog@...)
- apache(.htaccess)で行う
- User-Agentチェック
手軽な上意外なほどトラックバックスパムに有効(90%以上カット)
- MovableTypeは上の"対策その(1)"参照
-WordPressもUserAgentでスパムを拒否してみる -- (blog@...)
- スパムの多いIPアドレスを遮断
それなりに有効。ただし国内レンタルサーバの遮断は微妙なので調べる手間がかかる
- MovableTypeは後述のAutoIPBanと"対策その(1)"参照
- MovableTypeは後述のSMP参照
- ブラックリスト (dnsbl)
トラックバックスパムには国内レンタルサーバを拒否してしまう可能性ありなので海外のDNSBLが有効。逆にコメントスパムは全体的に効果的。特に国内のDNSBLであるniku.2ch.netも有効
-apacheでMT/WPのスパム対策 DNSBLのmod_setenvifdnsblを使ってみる-- (blog@...)
- アクセスしてきた国で遮断 (geoip)
かなり有効。ただしまともなアクセスとの区別がつかないため、海外からのアクセスが多い方は無理か。米国からが一番多いのが難点です。
-またまたMT/WPのスパム対策 mod_geoip2を使って国ごと拒否 -- (blog@...)
- User-Agentチェック
- blogで行う
- MovableType- MT付属のもの -- IP、URL数、キーワード、DNSBLその他の組み合わせ。有効。
- AutoIPBan -- apacheで対策していればあまり動かないはず。
-AutoIPBan Plugin公開 - Ogawa::Memoranda
- MT-Akismet -- WP標準のものと同等。キー入手が必要。かなり有効
-Development « Akismet
- Akismet(標準、キー入手が必要) -- かなり有効
- SMP -- IPアドレスで拒否したり出来る。強力だがまだあまり使っていない。
-SMP better spam control » delicious:days
- 試して未使用のもの
- MT-Keystrokes -- 効果は抜群。JavaScriptを使ってブラウザからの投稿かどうかを判断しコメントスパムをブロックする。
-MovableTypeトラックバック・コメントスパム対策 その(2) -- (blog@...)
-MT-Keystrokes - 同じような方式のものがWordPressにもあったかも。
- MT-Keystrokes -- 効果は抜群。JavaScriptを使ってブラウザからの投稿かどうかを判断しコメントスパムをブロックする。
- まだまだある対策(主にコメントスパム向け。試してないもの)
- cgiスクリプトの名前変更 -- botの進歩により有効性は△程度の模様
- Captcha系 -- 文字を含む画像を出して投稿時に入力してもらう。かなり有効そう
- JavaScriptでコメント欄偽装 -- MT-Keystrokeと同じような感じ。おそらく有効
- Typekey等の認証を使う -- 有効そうだが未登録なユーザは当然書けない
- WPプラグインにはアクセスパターンから挙動を判断するものもある模様
- 雑感
コメントスパムについては、ブラウザの自動運行やよほど賢いBotが出ない限り JavaScriptやCaptcha、認証などの方法が有効そうですね。出来ればapacheでtcpdのようにIPアドレスやドメインで完全にコネクション自体を拒否したいです。なにか設定があるのでしょうか。線が細いので403も返したくないし、相手によっては接続すら受け付けたくないんですが。
対策後の現状ですが、MovableTypeに届くトラックバックスパムはほぼ0。たまに自動生成blogのものが来る程度になりました。コメントスパムは残念ながら1~2日に1通くらい届きますが、今のところ全てMTのフィルタとAkismetによってスパムと判定されています。コメントを日本からだけに限定するとほぼなくなるかもしれません。