All In One WP Security & FirewallでWordPressのセキュリティを強化する方法

WordPressのプラグイン「All In One WP Security & Firewall」を使って、セキュリティを強化する設定方法の備忘録です。
All In One WP Security & Firewallは、不正アクセスやウェブ改ざんの危険性からWordPressを守ることができるプラグインです。セキュリティ強化に効果的な、ログイン画面の保護や、スパムの抑制を簡単に設定することができます。
All In One WP Security & Firewallのインストール
管理画面の左メニューにある「プラグイン」から「新規追加」をクリックします。

プラグインを追加ページの右側にある検索窓で「All In One WP Security」と入力し、表示されたAll In One WP Security & Firewall の「今すぐインストール」をクリックします。

インストールできたら「有効化」をクリックします。

有効化が完了すると、左メニューに「WP セキュリティ」が追加されます。

ログイン画面のURLを変更する
WordPressのログインURLは、末尾に wp-login.php(またはwp-admin)が付くので推測されやすいため、任意のものに変更する事で、管理画面への不正アクセスを抑制します。
「WP セキュリティ」の「総当たり攻撃」からログインページの名称を変更を開きます。
「ログインページの名前変更機能を有効化」にチェックを入れて、任意のログイン画面URLを設定します。
「設定を保存」で変更されます。

設定後、通常のログインURLで画面を開こうとすると、404エラーが表示されます。
ログインロックを設定する
ログイン画面URLを変更した上で、ログイン画面のセキュリティも強化しておきます。
ログインロックを設定することで、不正アクセスを試みたアカウントがログインに数回失敗した場合、一時的にログインできない状態にすることができます。
「WP セキュリティ」の「ユーザーログイン」からログイン制限を開きます。
ログインのロックダウン設定の各項目を設定します。「ログインロックダウン機能を有効化」にチェックを入れます。

上記の設定で、5分間に3回ログインを失敗したユーザーは60分間アクセスすることができなくなります。
「メールで通知」を設定しておけば、不正ログインが実行された際に通知を受け取ることもできます。
ログインキャプチャを設定する
ログイン画面に対するブルートフォースアタックには、ログインキャプチャによる抑制が効果的です。
ブルートフォースアタックとは、「総当たり攻撃」と呼ばれるIDとパスワードを自動で何パターンも入力しログインを試みるハッキング手法です。
ログインキャプチャを設定することで、ログイン時に足し算の答えを入力する項目が追加されます。自動的なログインでは、足し算の答えの入力はできないためブルートフォースアタックの抑制に効果的とされています。
「WP セキュリティ」の「総当たり攻撃」からログインCaptchaを開らきます。
「ログインページで CAPTCHA を有効化」にチェックを入れることで設定できます。

ファイアウォールを設定する
.htaccessファイルへのアクセス拒否や、ファイルのアップロードサイズを制限する基本的なファイアウォールを設定することができます。
「WP セキュリティ」の「ファイアウォール」から基本のファイアウォール規則で設定します。
さらに、外部からの攻撃の抑制として、XMLRPCへのアクセスをブロックします。
サイト外から遠隔操作できるXMLRPCを使用していない場合、「XML-RPC へのアクセスを完全にブロック」にチェックを入れます。XMLRPCを使用していない場合は、「XML-RPC のピンバック機能を無効化」へチェックを入れます。

WordPressには、投稿に対してリンクが張られた際に通知するPingback機能があり、この機能に対する外部サイトからのDDoS攻撃を抑制できます。
WordPressのバージョン情報を非表示にする
WordPressは、ソースファイルのhead部分に現在のバージョン情報を表示するようになっています。バージョン情報を閲覧されないように、非表示に設定します。
「WP セキュリティ」の「設定」からWP バージョン情報で、「WP Generator メタ情報の削除」にチェックを入れます。

データベースの接頭辞を変更する
データベースを守るための、セキュリティも設定しておきます。
WordPressのデータベースは、デフォルトではテーブル名の接頭辞が「wp_」に統一されているため、この部分を変更しておくことで、SQLインジェクションや特定のテーブルに対する攻撃を防ぐことができます。
「WP セキュリティ」の「データベースセキュリティ」からデータベースの接頭辞で接頭辞を変更します。

この変更は、事前にデータベースのバックアップを取ることが推奨されています。
コメントへのスパム攻撃を防ぐ
コメントへ対するスパム攻撃を抑制するための設定をしておきます。
「WP セキュリティ」の「スパム防止」からコメントスパムを開いて設定します。
「コメントフォームの Captcha を有効化」にチェックを入れます。ログインキャプチャと同様に、コメント時に足し算の答えを入力するフォームを追加します。スパムに使用されるボットでは、足し算の答えを入力する事はできないため、スパムコメントを抑制できます。
さらに、「スパムボットからのコメント投稿をブロック」にチェックを入れることで、スパムによるコメントの投稿を制限できます。
