こんにちは。WebディレクターのNです。
先日、またまた当社が管理しているWordPressサイトが突然見られなくなりました。
ページにアクセスすると、真っ白の画面に「データベース接続確立エラー」のメッセージが!筆者の頭の中も真っ白です。
以前のコラムで、WordPressサイトが見られなくなった時の対処法をご紹介しましたが、今回のエラーは他に原因がありそうです。やっかいですね…。
————————————————————————
【目次】
- データベース接続確立エラーとは?
- 原因はブルートフォース攻撃でした
- エラー解消のための対処法
- まとめ
————————————————————————
1.データベース接続確立エラーとは?
今回起きた「データベース接続確立エラー」ですが、どうやらWordPressサイトではよく発生するエラーのひとつみたいなんですね。要するに、サーバとデータベースの間に、何かしらのプログラムの不具合があって、データベースから情報を正しく読み出せなくなっている状態、とのこと。
つまり、元データ自体がまるっと消滅したわけではなく、この「不具合」を解消すれば、元ページが復元できるようですね。ひとまずは安心(;´∀`)
2.因原はブルートフォース攻撃でした
「データベース接続確立エラー」の原因は、おおむね以下の2方向に絞られるようです。
原因その1:データベースの接続情報の記述が間違っている
具体的には、データベースのパスワードが間違っている、プログラムファイルのパーミッションが正しくない、PHPのバージョンアップに伴う再設定もれなど。
原因その2:サーバ側のトラブル
具体的には、アクセス集中やハードウェア障害など。
あらためて確認してみたところ、今回エラーが起きたサイトは、直近でプログラムの変更をかけた形跡がなく、HPのバージョンアップも関係なさそうでした。
とするとサーバートラブル?
悩んだ末、サーバーエンジニアのかたに調査をお願いしたところ…、あっさり原因がわかりました!
エラーの原因はブルートフォース攻撃*でした。WordPressサイトは攻撃対象になりやすい、とはよく耳にしていましたが、まさか当社が管理しているサイトが狙われるとは思いませんでした(泣)。
*ブルートフォース攻撃:ユーザのアカウント・パスワードを解読するため、考えられる全てのパターンを試す方法で、文字通り総当たりの攻撃のこと(参照記事)
3.エラー解消のための対処法
以下、筆者の忘備録もかねて「ブルートフォース攻撃」の対処法をご紹介します。
① MySQLのメモリを増やす
今回のエラーは(攻撃によるアクセス集中で)MySQLのメモリが不足していることが直接の原因なので、まずはメモリを増やして、サイトの表示を復元させました。
(お察しのとおり、攻撃が収まらない場合はさらにメモリ数を増やす、という対症療法になってしまいますが、サイトが非表示になるよりはましということで…。)
② 管理画面にアドレス制限をかける
許可されたIPアドレス(管理者)以外のIPアドレスからは接続できないように、管理画面に.htaccessを使ったでアドレス制限をかけました。
参考にさせていただいたサイト:WordPressの管理画面にアクセス制限をかける方法
③ ログイン試行回数を制限できるプラグインを入れる
ブラグイン「Limit Login Attempts Reloaded」をインストールしました。
WordPressのログイン回数に制限を付けて、一定回数連続して失敗すると自動的にログインを実行できなくするプラグインです。
Limit Login Attempts Reloadedをダウンロード
参考にさせていただいたサイト:Limit Login Attempts Reloaded – ログイン画面のログイン試行回数を制限できるWordPressプラグイン
4.まとめ
以上、データベース接続確立エラーの原因とブルートフォース攻撃の対処法でした。
いかがでしょうか?
いきなり白画面に遭遇すると、誰しも「データがなくなったかも!?」と焦ってしまいますが、まずは落ち着いて、原因を調査してみることが解決の近道になると思います!
また何か新しい発見がありましたらこのコラムで紹介しますね。
それではまた。