WordPress中級者ぐらいですが、WordPress関連のサイトを見ていて気になることがありました。
それは・・・今、WordPressがハッカーたちの餌食となっているということです。メジャーな存在には必ずハッカーがつきもの。WordPressも例外ではありません。主に海外からの不正ログインが多いようです。アメリカとかロシアとかブラジルとか・・・。
しかも、不安はハッカーによる攻撃だけではありません。ファーストサーバで起こったような大規模障害でデータが消失する危機に陥るというケースもあります。せっかく苦労して築き上げたWordPressのデータを守るためにも、セキュリティー対策はもはや必須といえるでしょう。
ここでは、プラグインの設定と基本的なセキュリティ対策を記事にしたいと思います。
基本的なセキュリティ対策
このプラグインの良いところは簡単にバックアップでき、わずかな設定でWordPressのセキュリティー機能を高めることができるところです。しかし、設定の中にはサイト全体に悪い影響を及ぼしたり、サイトが表示できなくなったりする設定もあるので、細心の注意が必要です。
セキュリティーを高めることに成功しても、サイトが表示するされなくなったら、まさしく本末転倒です。ここでは、ごく限られた機能に絞って設定をみていきたいとおもいます。
Better WP Security 日本語 の導入とインストール
WordPressの「プラグイン」-「新規追加」から「Better WP Security」を検索し、「インストール」-「有効化」します。すると、左側のメニューに「 Security 」の項目が表示されます。このままでは英語なので下記のファイルで日本語化をします。
[sdm-download id=”1687″ fancy=”0″]
- ※2013/09/17日現在では「 プラグインのバージョンは 3.5.6」となっています。
- ※一通り精査していますが、間違えている箇所を発見したらコメントにてご一報ください。修正します。
- ※翻訳率は94%程です。素人ゆえご理解ください。
解凍したファイル「better-wp-security-ja.mo と better-wp-security-ja.po」ファイルを wp-content/plugins/better-wp-security/languages の中に入れてください。すでにWordPressを起動している場合は、再起動(再読み込み)をかけてください。
これで日本語化が完了です。
WordPressを守る6つのポイント
- パスワードを少なくとも10文字以上の不規則な英数字にする
- WordPressのヘッダー情報を隠す(きれいにする)
- WordPressのユーザー名(ログイン名)をデフォルトである「admin」から変更する
- WordPressのユーザーIDを変更する
- テーブルの接頭辞(プレフィックス)をデフォルトである「wp_」から変更する
- 「.htaccess」と「.htpassword」でBasic認証を行う
1.パスワードを少なくとも10文字以上の不規則な英数字にする
パスワードは頻繁に入力する必要があるため、覚えやすいものにしていませんか?自分の名前、誕生日、生年月日、辞書に出てくるような単純な単語などにしていると、ハッカーたちの餌食となります。そうならないようにするためには、パスワードを「10文字以上」「不規則な英数字と記号」「大文字小文字を組み合わせる」この3つが大切になります。
当然、こうなると覚えられません。こういう時は、テキストファイルを使ってパスワードを管理しましょう。毎回、そのテキストファイルからコピー&ペーストすれば、入力ミスをすることはありません。
もちろん、テキストファイルを「暗号化」や「ロック(暗証番号)」を付ける必要があります。もしくは、USBメモリの中に入れておくのもいいかもしれません。(※ただし、USBメモリを持ち歩くのはやめてください)また、ネット上には「パスワード生成サイト」なるものが大量にあります。
信頼できるところなら良いのですが、中には怪しいサイトもあるようです。
このいうサイトを使用する際には十分注意する必要があります。
※ダッシュボードのシステムの状態の「1」番目の箇所です。赤色で警告表示されている場合は変更しましょう。
2.WordPressのヘッダー情報を隠す(きれいにする)
ヘッダーには様々な情報が表示されています。「バージョン情報」「EditURI」「wlwmanifestWindows Live Writer」など色々です。不要な情報は出来る限り削除したほうが、見た目的にもスッキリするし、何より安全でしょう。
特にWordPressの古いバージョン情報などを知られると、ハッカーたちにとっては有利な状況になります。(※WordPressのバージョンは常に最新の状態にすることをお勧めします。但し、プラグイン等の関係もあるため、その辺も考慮してバージョンアップしてください。)
※ダッシュボードのシステムの状態の「2」番目の箇所です。赤色で警告表示されている場合は変更しましょう。
3.WordPressのユーザー名(ログイン名)を「admin」から変更する
WordPressをデフォルトのままで使っている場合、ユーザー名は「admin」になります。この場合、ハッカーたちは残りの「パスワード」だけを推測すれば、WordPressの管理画面に侵入することができます。
つまり、ユーザー名がデフォルトである「amdin」のままだと、ほぼ確実にハッカーたちの餌食になります。ユーザー名は必ず「admin」以外の文字列に設定してください。ここでもパスワードと同じく「10文字以上」「不規則な英数字と記号」「大文字小文字を組み合わせる」にしてください。
間違っても、辞書にのっているような単純な英単語にしないでください。簡単に推測されてしまいます。
※ダッシュボードのシステムの状態の「4」番目の箇所です。赤色で警告表示されている場合は変更しましょう。
▼推測されやすい文字列一覧(ほんの一例)
admin | administrator |
admin123 | websae |
123456 | root |
1111 | test |
welcome | demo |
4.WordPressのユーザーIDを変更する
WordPressのユーザーIDの初期値は「1」となっています。
WordPressではユーザーIDを指定して内部の情報を引き出すことができてしまいます。どうやらWordPress上のURLで「/?author={ユーザーID}」にアクセスすることで、著者アーカイブにリダイレクトされるようです。
つまり、ハッカーたちはユーザーIDの初期値が「1」だということを知っているので、「/?author=1」にリクエストしてログインユーザー名を取得しようとするようです。これを防ぐために、デフォルト値であるユーザーIDを変更します。
※ダッシュボードのシステムの状態の「5」番目の箇所です。赤色で警告表示されている場合は変更しましょう。
参考サイト:http://dogmap.jp/2013/06/18/fight-against-brute-force-attack-2/ (dogmap.jp 様)
5.テーブルの接頭辞(プレフィックス)をデフォルトである「wp_」から変更する
WordPressはデータベースによって管理・構築されています。
WordPressを作成した時、デフォルトのデータベース接頭辞は「 wp_ 」となっています。ハッカーはデータベースの接頭辞のデフォルト値が「 wp_ 」であることを知っているので、容易にデータベースにアクセスできます。そうなると、内容を改ざんされたり、不正なSQL文を埋め込まれる可能性があります。
それを防ぐ意味でも、テーブル接頭辞を「 wp_ 」から変更することが望ましいでしょう。
※ダッシュボードのシステムの状態の「6」番目の箇所です。赤色で警告表示されている場合は変更しましょう。
6.「.htaccess」と「.htpassword」でBasic認証を行う
これはBetter WP Securityの機能ではありませんが、セキュリティーをより強固にするためにもBasic認証は有効な手段となります。ネット上には様々な「.htaccess」と「.htpassword」の情報があるため、困ることはないと思いますが、ここで一通りの手順をご紹介したいと思います。
▼「.htaccess」に記述する内容
(サーバー:さくらインターネット、設置場所:wp-content.phpと同階層、WordPress:単一)
<Files “wp-login.php”>
AuthUserFile /home/ドメイン名/www/.htpasswd
AuthType Basic
AuthName “Web access”
Require valid-user
Satisfy all
</Files>
- AuthUserFile・・・.htpasswdの階層のパス(絶対パスで表記。上記の場合はルート直下)
- AuthType Basic・・・Basic認証タイプ
- AuthName・・・Basic認証画面に表示される言葉(任意でOK)
- Require valid-user・・・認証が通った全ユーザーに対してアクセスを許可
- Satisfy all・・・このディレクトリ以下へのアクセスはBASIC認証なし(Flashなど一部Basic認証に対応していない場合、不具合が起きるため)
▼「.htpassword」に記述する内容
Basic認証用ユーザー名 : Basic認証用暗号化パスワード
暗号化パスワードは生成サイトにて作成してください。googleで「 basic認証 パスワード生成 」をキーワードに生成サイトを探してください。
中には怪しいサイトもあるので、十分注意してサイトを選んでください。Basic認証でログインする際は、「設定したユーザー名」と「暗号化前(暗号を生成する前)のパスワード」にてログインしてください。
もし、ログイン出来ない場合は、「.htaccess」のパスの記述がおかしいか、入力したパスワードが間違っている場合があります。「.htaccess」と「.htpassword」の階層をキチンと把握し、正しいユーザー名とパスワードで再度トライしてみてください。
参考サイト:http://www.en-pc.jp/htpasswd.php (株式会社エン・PCサービス)