WordPressは世界中で使われているツールですが、その分狙われ易いターゲットになっているのも事実です。
必要以上に恐れる必要はありませんが、サーバーに詳しくない人でも簡単にできる対策がありますのでいくつか紹介してみようと思います。
WordPress本体やプラグイン、テーマなどはアップデートしましょう
改めて言うまでもないことかもしれませんが、セキュリティパッチは日々更新されています。
WordPressのダッシュボードから簡単に更新できますので、忘れずにアップデートしてください。
使わないプラグインやテーマは削除しましょう
使わないプラグインがセキュリティホールになってしまうことがあります。
特にマイナー系プラグインやテーマの場合は脆弱性が放置されている場合もあります。
必要になった場合は再度インストールできますので、使わないプラグインやテーマは削除しておくのが安全です。
※プラグインは「停止」でなく「削除」しておくことをおすすめします。
デフォルトのadminユーザーは削除しましょう
WordPressの不正ログインで最も狙われるユーザーはadminです。特に残しておく理由もないので、削除しておくことをおすすめします。
adminユーザーは以下のようにして削除できます。
- ダッシュボードからadmin以外で権限グループが「管理者」のユーザーを新規登録(既に登録済みの場合は省略してください。)
- adminでロクインしている場合はログアウトして追加したユーザーで再度ログインし直す
- adminを削除
wp-config.phpやwp-login.phpをアクセス制限する
wp-config.php
とwp-login.php
は特に狙われやすいファイルです。
しかし、wp-config.php
はアクセスできる必要がなく、wp-login.php
はWordPressを編集する人だけがアクセスできれば良いファイルになっています。
そこで、.htaccess
に次のような記述を追加することができます。
<files wp-config.php> Require all denied </files> <files wp-login.php> Require ip xxx.xxx.xxx.xxx </files>
xxx.xxx.xxx.xxx
の部分は自分のIPアドレスに読み替えてください。
プロバイダによってはIPが固定でなく変動する場合もあります。そういう場合はは次のような感じで範囲指定することになります。
xxx.xxx.0.0
からxxx.xxx.255.255
までの範囲のIPを許可
Require ip xxx.xxx
.example.ne.jp
で終わるドメインを許可
Require host example.ne.jp
ドメイン指定の方が分かり易いかもしれませんが、セキュリティ的にもパフォーマンス的にもIPアドレスで指定した方が良い結果となります。
可能であればIPアドレスで指定するようにしてください。
wp-admin
とwp-includes
のアクセス制限
wp-admin
とwp-includes
のディレクトリも編集する人だけがアクセスできれば良いディレクトリになりますので、wp-login.php
と同じようにアクセス制限を追加することができます。
ただし、wp-admin/admin-ajax.php
についてはアクセス可能にする必要がありますので気を付けてください。
アクセス制限する場合は各ディレクトリに次のような.htaccess
を作成します。
Require ip xxx.xxx.xxx.xxx <files admin-ajax.php> Require all granted </files>
xmlrpc.php
のアクセス制限
xmlrpc.php
もアクセス制限することができます。
ただし、XML-RPCの機能を使っている場合はwp-login.php
と同様に編集者のIPを許可しておく必要があります。
外部アプリケーションなどを使ってブログを更新されている方は良く確認してから設定するようにしてください。
<Files xmlrpc.php> Require all denied </Files>
もしくは
<Files xmlrpc.php> Require ip xxx.xxx.xxx.xxx </Files>
wp-content/uploads
のアクセス制限
WordPressでアップロードした画像やビデオなどのメディアファイルはwp-content/uploads
に保存されます。
これらのファイルは読み取りだけできれば十分です。
万が一、悪意あるPHPファイルがアップロードされた場合にもスクリプトが実行できないようwp-content/uploads
のディレクトリに.htaccess
を追加して次のような内容を記述しておくことができます。
<Files *.php> Require all denied </Files>
「テーマの編集」「プラグイン編集」を無効にする
利便性との兼ね合いですが、ローカルで編集したファイルをアップロードできる環境であればダッシュボードから「テーマの編集」と「プラグイン編集」を無効に設定することでセキュリティを向上させることができます。
無効に設定する場合はwp-config.php
に下記の設定を追加してください。
define('DISALLOW_FILE_EDIT', true);
最後に
他にもいろいろとセキュリティ対策はあります。満足できないという方はいろいろ調べてみてください。
それから、バックアップも忘ず行うようにしてください。
最悪、不正アクセスを許してしまったとしても、バックアップを取っていれば以前の状態に戻すことができます。セキュリティ対策に完璧はないということを忘れなく。
VPS活用ガイド‐月額780円からのVPSというサイトで公開していた記事です。誤字脱字などの修正を除いて当時のまま移転していますのでやや古い内容も含まれています。ご理解の上、参照して頂ければと思います。