手間をかけずにWordPressのスパムを1/25に減らす対策


投稿日:2014年9月13日
  • 4
  • 0



1カ月に2万件以上!スパムが本気出してきた!!

wp_spam

WordPressのスパム対策と言えば、何はさておきAkismetという方も多いはず。

あまりにも効果的なのでAkismetに任せっぱなしで、以前紹介した「Optimize Database Options」を利用してスパムを自動削除していました。
どちらも有効に動作していたため、何のストレスもなくサイト運営をできていました。

そんなさなか、何気なくAkismetのダッシュボードを表示すると、なんと20,909件もスパムをブロックしていました。

wp_spam05

いくらストレス無く運営できているといっても、これだけの処理をするには相当サーバのリソースを無駄にしています

スパムの一覧を見ると、バラバラのIPを利用しているように見えて、一定のIPを使いまわしてランダムに書き込みをしていることが分かりました。そこでAkismetでスパムとされたIPを抽出してアクセス規制をすることにします。
なかなか目的に合ったプラグインが見つけられず困っていると「Akismet htaccess writer」というプラグインがイメージに近いので利用することにしました。

かなり長い期間更新されないまま放置されているので、普段は手を出しませんが、背に腹には変えられません。


Akismet htaccess writerの使い方

使い方は至って簡単。
プラグイン > 新規追加」で「Akismet htaccess writer」を検索してインストール。有効化します。

すると「プラグイン > Akismet htaccess writer」という項目が追加されるのでクリック。

wp_spam01

書き込み対象となる .htaccess ファイル名」にドキュメントルートへのフルパスを入力。(ドキュメントルートはレンタルサーバによって異なるのでマニュアルを参照してください)

まずは「ファイルをチェック」ボタンをクリックしてください。ファイルが存在する場合は赤文字で「チェック OK」と表示されます。

wp_spam02

その後「設定を保存」ボタンをクリックして設定を有効にします。

wp_spam03

その後「書き込む」ボタンをクリックすると「.htaccess」に以下のような拒否リストを書き込みます。
(IPはサンプル)

# BEGIN written by WordPress plugin - Akismet htaccess writer
Order Allow,Deny
Allow From All
Deny From 196.168.0.1
Deny From 196.168.0.2
Deny From 196.168.0.3
# END written by WordPress plugin - Akismet htaccess writer
運用ににあたっての注意点

拒否リストですが現在スパムに登録されているIPで上書きされます。
つまり当サイトのように定期的にスパムコメントを削除している場合、過去に登録されたIPであっても一定の期間スパムコメントをしていない場合は、再びコメントを許可してしまうということです。

これには一長一短があり、スパムに利用されたIPだからといって永遠にブロックしていては、正常な利用者が当該IPを割り振られた場合にサイトを閲覧できません。
また、何万件もあるスパムコメントを拒否リスト作成のために保存しておくのも現実的ではないので、ある程度のスパムは仕方ないという気持ちで月に1~2度程度拒否リストを上書きして、スパムコメントを削除するのが良いと思います。

余談ですが現在当サイトはnginxで運用しているため、拒否リストはiptablesで設定しています。その際はプラグイン画面の下に表示される「スパム送信元 IP アドレスのリストです」の項目を利用すると便利です。

以上のようなざっくりした運用ですが、タイトルにあるように1カ月に20,909件だったスパムが836件まで減りました。約1/25です。
(1カ月に800件でも十分多い気もしますが…)

wp_spam04

更に細かく設定してスパムを減らすこともできますが、スパムのためにこれ以上手間と時間をかけるのも本末転倒です。
当初の目的であったサーバリソースの異常な消費は抑えられたので、よしとします。


現在のページを共有する



現在のページに関連する記事

手間をかけずにWordPressのスパムを1/25に減らす対策 ロリポップ!から「不正なアクセスを検知いたしました」というメールが届いた
手間をかけずにWordPressのスパムを1/25に減らす対策 ロリポップ!で起きている大規模な改ざんからWordPressサイトを守る方法
手間をかけずにWordPressのスパムを1/25に減らす対策 共用サーバで手軽に導入できる、WordPressを高速化する方法
手間をかけずにWordPressのスパムを1/25に減らす対策 Nginxで特定の国のIPだけを許可する方法
手間をかけずにWordPressのスパムを1/25に減らす対策 シンプルなスパムコメント対策プラグイン「Simple AntiSpam」を作成しました
手間をかけずにWordPressのスパムを1/25に減らす対策 WordPressの特定のファイルに対してNginxでIPを規制する方法
手間をかけずにWordPressのスパムを1/25に減らす対策 WordPressで画像のアップロードに失敗した時の対処法

おすすめの記事

fluentdとNorikraでDoS攻撃を遮断し、メールで通知する方法

fluentdとNorikraでDoS攻撃を遮断し、メールで通知する方法

ユーザーの環境変数を設定するbashの設定ファイルと、カスタムプロンプトについて

ユーザーの環境変数を設定するbashの設定ファイルと、カスタム…

最新のXAMPPをインストールし、安全・高速に運用する方法

最新のXAMPPをインストールし、安全・高速に運用する方法

「このアプリがシャットダウンを妨げています」と表示されるがアプリがわからない場合の対処法

「このアプリがシャットダウンを妨げています」と表示されるが…

そのサイト、WordPressじゃなくてWixで十分じゃない?

そのサイト、WordPressじゃなくてWixで十分じゃない?

ImageMagickをWindowsのXAMPPに導入する方法

ImageMagickをWindowsのXAMPPに導入する方法

Apacheのmod_expiresでファイルタイプごとにキャッシュをコントロールする方法

Apacheのmod_expiresでファイルタイプごとにキャッシュをコント…

rsyslogを利用したログファイル作成と、logrotateを利用したログのローテーション

rsyslogを利用したログファイル作成と、logrotateを利用したロ…


コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。