ここ1、2ヶ月くらいトラックバックスパムが急増してます。BanNoReferTbを使って、言及のないトラックバックは、受け付けないようにしていたのですが、一気に大量にトラックバックされてしまうと処理に貧弱なCPUが追いつかないようで、やたらに重くなることがあることに気付いてしまいました。
こういう時は、速攻で検索エンジンで情報収集です。皆さん、相当手を焼いているようで、ゾロゾロと情報がでてきました。そんな中 MovableTypeトラックバック・コメントスパム対策 その(1) (blog@browncat.org) という、そのものズバリを発見しました。なるほど、ユーザエージェントで弾いちゃえば良いのか!早速対応です。
MovableTypeでは、トラックバックを受け付けるのは mt-tb.cgi ですので、.htaccessに以下の記述を追加しました。
<Files mt-tb.cgi>
<limit POST>
SetEnvIf User-Agent “^TrackBack/1.6” trackers
SetEnvIf User-Agent “^TrackBack/1.02” trackers
SetEnvIf User-Agent “^libghttp/1.0” trackers
SetEnvIf User-Agent “^$” trackers
SetEnvIf User-Agent “^.$” trackers
SetEnvIf User-Agent “^NP_Trackback/2.0.3” trackersOrder Allow,Deny
Allow from all
Deny from env=trackers
</limit>
</Files>
しか〜し!アレッ?何か上手く行かないようで、Apacheのログを見ると「ここではlimitが許可されていない」といった意味のメッセージが記録されていました。
私の場合、httpd.confでcgi-binディレクトリでの AllowOverride の設定がLimitになっていたのが原因でした。早速、該当の箇所をを以下のように書き換えて、Apache自体を再起動してみると、今度は大丈夫なようでした。
# AllowOverride Limit
AllowOverride ALL
で、Apacheのアクセスログを確認すると、ばっちりユーザーエージェントが「TrackBack/1.6」のやつをバシバシと弾いてくれるようになり、CPUへの負荷も全くストレスを感じないようになりました。
情報を公開していただいている全ての方々に感謝ですm(__)m
コメント一覧