wordpressのログインページを守る!

最近wktk serverでワードプレスへの攻撃が頻繁に起っているらしいです。
本記事では、
wktk serverにおいて

  • どんな攻撃を受けているの?
  • どう対策したらいいの?

これらに触れていこうと思います。
不正アクセスを撲滅しようではないですか。

どんな攻撃を受けているの?

ログイン画面(wp-login.php)への「頻繁なアクセス」と「過剰なログイン試行」。
簡単に言うと知らない人があなたのサイトに不正ログインする為にプログラムを使って人外魔境の速度で何度もIDとパスワードを執拗に入力しているわけです。
(参考:ホームページ改ざん方法(ブルートフォースアタック・総当たり攻撃使用編))

参考サイトを見てもらえれば分かりますが、少し調べれば攻撃用のツールは転がっていたり、簡単に自作できてしまいます。
不正ログインされた場合、あなたのサイトは改ざんされたり、乗っ取られ、身に覚えのない情報が発信されるようになります。
攻撃を執拗に続けるのは、対策がされていないサイトは時間をかければいつか乗っとる事が可能だからです。

また、ログインの入力を何度も試しているという事はDOS攻撃をされているようなものです。
サーバーというのはただのパソコンです。
LANケーブルは一本ですし、HDDがカリカリいって動いていて、みんなはそのパソコンからウェブサイトのデータをダウンロードし閲覧している訳です。
DOS攻撃のように頻繁にアクセス回数が増えるとパソコンがガリガリガリガリッと悲鳴をあげます。また、アクセス速度も攻撃によって割かれる為、サーバーが重たくなるという現象が発生します。
サーバーの中にはあなた以外のユーザが沢山住んでいます。
パソコンが重くなり、回線が遅くなるという事はwktk server全体に迷惑と負担をかけているという事になります。

★まとめますと、
ログイン画面への攻撃が増える事によって、
対策をしていないあなたのサイトはそのうち乗っ取られるし、
他のユーザにも管理人にもすごい迷惑をかけている。
何か問題が発生すればwktk server停止すると思います。

どう対策したらいいの?

まず、誰が対策するのか。
→あなた本人です。
これができない人は有料のブログシステムを利用したほうが面倒や最終的な損失がないはずです。
そんなに難しくない方法で対策していきます。1時間から2時間あればできると思います。

ワードプレスは常に最新にする
これは絶対です。
古いプラグインが動かなくなるだとか、テーマが崩れちゃうなんていう理由で更新しないのは止めましょう。テーマが崩れる場合は崩れないように親テーマの編集ではなく子テンプレートを作成するか変更分を追加してください。

Limit Login Attemptsの導入
管理画面→プラグイン→新規追加で検索して追加し、有効化してください
使い方はこちらのサイトを見て下さい。
(参考:http://www.imamura.biz/blog/cms/wordpress/1571)

古いプラグインは停止、削除する
色々便利だと思ってプラグインを追加する人も多いと思いますが、
最終更新が古いものだとセキュリティホールがあったりします。
なので2年以上更新がないものは疑ってみてよいでしょう。

メンバーシップの設定
【設定】→【一般】→【メンバーシップ】の「誰でもユーザー登録ができるようにする」のチェックをはずす

IDとパスワードを強化する
IDがRSSに記載されていたり、
パスワードが短かったり、予測されやすいものは避ける。
誕生日、名前、ニックネーム、メールアドレス、辞書に載っている単語は避ける。
無意味な文字列(小文字、大文字、数字を混ぜて8文字以上)で作成してください。
基本的にパスワードが長いほど強固になります。
覚えられるパスワードではなく、覚えられないパスワードを覚えるかツールや手元に保存するなどしてください。
(参考:http://www.luft.co.jp/cgi/randam.php)

エラーメッセージを消す
wp-config.phpを編集します。
下記を追加します。多分すでにあると思われる。
エラーメッセージが必要な場合にはtrueにしてください。

define('WP_DEBUG', false);

.htaccessの設置
※すでにファイルがある場合はバックアップを取ったり、マージしてください。
IPアドレスの制限とベーシック認証を設定します。
IPアドレスの制限をする事であなたの家からしか更新ができないようになります。
IPアドレスが複数必要な方はぐぐって調べてください。

★wktk server用にサンプルファイルを用意しました
http://harapeko.wktk.so/wp-content/uploads/2013/04/wktk_httaccess_sets.zip

.htaccessの作り方が分からない方がいると思ったので用意させてもらいました。
(winユーザは新規ファイル作成で「.htaccess」とすると作成できないのが分かるかと)
上記リンクからダウンロードし、編集し、アップロードしてください。
IPアドレスがころころ変わる方は、変わる度に対応するか、
ベーシック認証のみにしてください。
wktk server用なので、他サーバーを使用している方はAuthUserFileのパスを変更してください。

1.wp-admin内の.htaccessを編集する
「000.000.000.000」の部分を
http://www.cman.jp/network/support/go_access.cgiにアクセスし、
「あなたの利用している IPアドレス」の下にある青文字の数字をコピペして貼り付ける。

これはwp-admin内へのアクセスはあなたの家からしかできないようにするというものです。
IPアドレスがころころ変わる方は、変わるたびにこれを編集し直す必要があります。
もしくは、このファイルをアップロードしないかです。
ファイルをアップロードしない場合、wp-adminには何もしません。

2.public_html内の.htpasswdを編集する
http://tech-unlimited.com/makehtpasswd.htmlにアクセスし、
IDとパスワードを決めてください。
「.htpasswd生成結果」の内容で全て上書きしてください。
※「test:tpMxJgZAh2.CE」はID:test PASS:testtestで生成した時の一例なので削除してください。

これがベーシック認証のIDとパスワードになります。

3.public_html内の.htaccessを編集する
「000.000.000.000」の部分を
http://www.cman.jp/network/support/go_access.cgiにアクセスし、
「あなたの利用している IPアドレス」の下にある青文字の数字をコピペして貼り付ける。
IPアドレス制限が必要ない場合は、

Allow from 000.000.000.000 //あなたのIPアドレスを入力
deny from all

の部分を削除する。
これを削除した場合、ベーシック認証のみになります。

「wktk0000」の部分をあなたの契約時に割り当てられた番号に変更してください

2と3はセットです。
3には.htpasswdまでのパスが書いてあり、これが間違っているとファイルがない為アクセスできない。つまり、500エラーがでます。

ベーシック認証がある事で、wp-login.phpには通常のログインの前にも別のIDとパスワードを求められるようになりセキュリティが高まりました。
また、IP制限をかける事で不正アクセスを試みることができなくなりました。

また、wp-config.phpをウェブ上から閲覧できないようにしています。
これにより設定情報が見えなくなり、クラッカーにヒントを与えないようになります。

ブログ記事がURLが古いとか見られなくなった場合

管理画面→設定→パーマリンク→変更を保存
をやってみてください。
どうしても駄目なら設定が悪いです。その場合は追加したファイルを削除、元に戻してください。
これが起る原因はパーマリンクをデフォルトから変更している人で
public_htmlに元からあった.htaccessを上書きした場合に起ります。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

これが、パーマリンクのURLを割り当ててる部分です。
上書きするとこれが消えてしまう為、ブログ記事のURLというかパーマリンクが途絶えてしまいます。
パーマリンク→設定を保存をする事でこの記述が.htaccessに追加記述される為、
直るというわけです。

以上になります。
何か分からない事があれば、画像などで何をしたけどどうなって動かないか伝えてもらえばお答えします。
よく分からない人でもせめてワードプレスの更新とIP制限をしていれば脅威は大分減ると思いますよっ
あと、間違っている所があればコメントお願いします。

すでに攻撃を受けていたら。。。

そして、すでに攻撃されていた形跡があったら・・・
ぐぐって直すか・・・
よく分からない人は全てを削除して0から再出発してください。
もしくは有料サービスに移行したほうが幸せになれると思います。

実際、セキュリティをしっかりするというのは、
システム、インフラ周りの方でないと難しい問題だとは思います。