今回は簡単にできるWordPressのセキュリティ設定を紹介します。
「簡単に」ということで、方針を以下のとおりとします。
方針:ソースは変更せずに簡単に。
- WordPress本体やプラグイン、利用テーマのコードは変更しません。
- WordPress自体のコードを修正するとアップデート等に支障が出る可能性があります。
- プラグインやテーマのコードの変更は、コンテンツへの影響があるので、今回は対象外とします。
この方針の中で、今回実施する内容は次の5点です。
- wp-admin/wp-login.phpへのアクセス制限
- wp-config.phpへのアクセス制限
- ログインパスワードを複雑にする
- readme.htmlを削除する
- テーマやプラグイン利用のポリシーを決める
では、1番目からです。
1.wp-admin / wp-login.phpへのアクセス制限
wp-adminディレクトリ以下は管理画面で、wp-login.phpはログインページになります。
この両方に対してアクセス制限を行います。
WordPress自体には画面毎にアクセス制限できる機能はなく、デフォルトでは、全世界からアクセスできてしまいます。
(※そういった用途のプラグインをインストールすれば可能です)
アクセス制限の方法は簡単で、.htaccessで制限します。
Basic認証などでもいいですが、より強力に特定IPからのみ許可するようにします。
wp-login.phpのアクセス制限
wp-login.phpのあるディレクトリに次の内容の.htaccessを設置します。
(※WordPressのインストールディレクトリです)
<Files wp-login.php>
Order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx #許可するIPアドレス
</Files>
wp-adminのアクセス制限
wp-adminディレクトリの中に、次の内容の.htaccessを設置します。
(※WordPressのインストールディレクトリ以下にあります)
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx #許可するIPアドレス
2.wp-config.phpへのアクセス制限
wp-config.phpには、データベースへの接続情報なども書かれているので、Apacheの設定に不備があった場合、他のユーザからファイルの中身を閲覧できてしまいます。
その為、ファイルの権限をデフォルトから変更します。
デフォルトでは、他のユーザも参照できる権限になっているので、該当ユーザしか見れないようにします。
SSHなどでサーバにログインできる場合は、WordPressのインストールディレクトリに移動して、以下のコマンドを実行します。
chmod 404 /home/user/wp-config.php
SSH接続できない場合は、FTPソフトでパーミッションを「404」に修正します。
※他には、Ver2.6よりwp-config.phpを移動させることが出来るので、非公開ディレクトリへ移動させるということもできます。
但し、階層は1つ上までで、それ以上の上位の階層は動作が保証されていません。
また、ユーザ権限によっては、上位ディレクトリにアクセスできない場合もあります。
3.ログインパスワードを複雑にする
これは程度の問題になりますが、類推しやすいものは避けましょう。
ブルートフォースなどでパスワード類推が行われる場合、機械的に行われることを前提にすると、アタック用にパスワードファイルが用意されます。しかし、ランダムな文字列で作られたパスワードに対してアタックしようと思えば、全てのパターンを網羅したパスワードファイルが必要です。
ところが、パスワードが複雑になればなるほど、パスワードファイルのサイズが肥大化してしまいます。
例えば、英小文字と数字で8桁の全てのパスワードを書いたファイルを作ると、ファイルサイズが20TBを超えてしまいます。
この手間を考えると、最低でも「英大小文字 + 数字で8桁」のランダム文字列にしましょう。
ポイントは、完全にランダム文字列にすることです。「Password」とか「a1b2c3d4」というような類推しやすいパスワードは絶対にやめましょう!
以下のようなパスワード作成ツールを使うと簡単です。
http://www.graviness.com/temp/pw_creator/
4.readme.htmlを削除する
WordPressをインストールした同じ階層にあるreadme.htmlを削除します。
このファイルは標準で設置されてしまいますが、ファイルにWordPressのバージョンが書かれています。
WordPressのバージョンを調べる方法は、他にもいくつかありますが、プラグインのソースコードを変更したりする必要があるので、今回は対象外とします。
5.テーマやプラグイン利用のポリシーを決める
テーマやプラグインをインストールする場合は、公式サイト「wordpress.org」からインストールするようにしましょう。
公式のwordpress.orgではなく、個人サイトなどからインストールすることもあると思いますが、中には不正なコードによりWordPress自体のコードが書き換えられたりするものもあり、どんな影響が出るか分かりません。
逆に公式のものであれば、自動アップデートが利用できたりしますし、しっかり内容レビューを受けたもののみが公開されているので比較的安心です。
基本ルールとして、「公式のテーマ、プラグイン以外は利用しない」とすることがオススメです。
▼次回予定
今回はWordPressのセキュリティについて簡単に紹介しました。
次も引き続きWordPressのセキュリティを紹介しようと思います。
更新予定は、10月中旬頃です。