脆弱性等のセキュリティ面では何かと話題になることが多いWordPressですが、今回は特にプラグインを使わずに出来る簡単なセキュリティ対策について、ご紹介していきたいと思います。
※大前提として、WordPress本体とプラグインは常に最新を保つというのはとても重要です。
コンテンツ一覧
データベースのテーブルプレフィックス(テーブル接頭辞)をデフォルトから変更する
デフォルトは「wp_」となっており、SQLへの不正アクセス(SQLインジェクション等)を狙ってくる攻撃者にとってみれば、テーブル名が推測しやすい状況です。WordPressを新規インストールする際に設定するだけで変更ができますので、デフォルトの「wp_」以外に設定するよう心がけましょう。
wp-config.phpへのアクセス制御
データベースのアカウント情報も記載されている重要なファイルとなりますので、特にセキュリティ面において気をつけておくべきファイルとなります。
まずは.htaccessで外部からのアクセスを不可にしておきます。
「wp-config.php」が置いてある階層にある「.htaccess」に、以下のコードを追記します。
# wp-config.php protect <files wp-config.php> order allow,deny deny from all </files>
この時点で試しにブラウザ上からwp-config.phpにアクセスしてみると、「403 Forbidden」と返ってくることが確認できるかと思います。
次にパーミッションを「400」に変更し、所有者のみ読み込み権限を与えておきましょう。
xmlrpc.phpの無効化
スマホアプリから等、管理画面から行う通常の投稿以外の方法を実現するために必要となるファイルですが、特にそういった運用が想定されない場合はハッキングの踏み台になりかねないので、こちらも.htaccessでアクセス不可にしておきましょう
「xmlrpc.php」が置いてある階層にある「.htaccess」に、以下のコードを追記します。
# xmlrpc.php protect <Files xmlrpc.php> order deny,allow deny from all </Files>
不要であれば本来削除でも良いのですが、バージョンアップの度にファイルが復活してしまいますので、.htaccessで制御が無難ですね。
ダッシュボードへのアクセスを日本国内IPに制限
主に不正アクセスや悪意ある攻撃というのは海外からが目立ちます…というか殆どです。そこでよく挙げられているのがBasic認証による二重保護になるかと思うのですが、今回は日本国内IPに制限するという対策をご紹介したいと思います。
以下のサイトを使用することにより、日本国内IP制限された「.htaccess」ファイルをダウンロードすることが出来ます。
日本国外からのアクセスを制限する.htaccess
ダウンロードした「htaccess」を「wp-admin」ディレクトリに格納後「.htaccess」となるようにリネームします。これでダッシュボードには日本国内IPのみしかアクセスできない状態になりました。
後は、念のため「wp-login.php」へのアクセス自体も同様にしておきましょう。
先ほどダウンロードした「htaccess」を流用し、「wp-login.php」が置いてある階層にある「.htaccess」に、以下のコードを追記します。
# wp-login.php日本国内制限 <files wp-login.php> order deny,allow deny from all allow from 1.0.16.0/20 allow from 1.0.64.0/18 allow from 1.1.64.0/18 allow from 1.5.0.0/16 allow from 1.21.0.0/16 ... ...
wp-includesディレクトリのブロック
基本的にユーザーからアクセスが想定されない部分ですので、こちらはmod_rewriteを用いてブロックしてしまいます。
「wp-config.php」が置いてある階層にある「.htaccess」に、以下のコードを追記します。
# Block the include-only files. <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>
マルチサイトで運用されている場合は7行目のコードを削除してください。
ダッシュボードからのファイル編集を無効化
テーマやプラグインのファイル等はダッシュボードから編集できるようになっておりますが、特にそのような運用が想定されないようであれば、編集できないように無効化しちゃいましょう。
「wp-config.php」に以下のコードを追記します。
// ファイル編集の無効化 define('DISALLOW_FILE_EDIT', true);
というわけで、今回はプラグインを使わずに簡単に施せるセキュリティ対策についてご紹介しました!
ここで詳細は割愛させていただきますが、他にもプラグインを使いアクセスログを取る、ログイン時に文字認証を導入する、等など、色々なセキュリティ対策があります。
また、定期的なバックアップ、アップデートを行い常に最新を保つ、というのが重要ですね。
できる限りのセキュリティ対策を行い、安全で快適なWordPressライフを楽しみましょう!
コメントする