WordPressのセキュリティを強化できるプラグイン「All In One WP Security」の使い方

WordPressのセキュリティを強化できるプラグイン「All In One WP Security」の使い方のアイキャッチ画像

WordPressは利用者が多い分、悪意のある第三者にハッキングされる危険性があります。

何も対策を行わないと、サイト改ざんなどの被害にあってしまう可能性があります。

ということで今回は、WordPressのセキュリティを強化できるプラグイン「All In One WP Security」を紹介します。

このプラグインを使うことで、サイトの安全性を高めることができます。

英語表示のみのプラグインですが、この記事で分かりやすく解説するので安心してください。

All In One WP Securityの使い方

「プラグイン」→「新規追加」で、「All In One WP Security」と検索してください。

有効インストール数が多く、評価も高いプラグインです。

しっかり更新されているので、安心感があります。

プラグインを有効化すると、「WP Security」というメニューが左サイトバーに出てくるので、これをクリックしてください。

このようなメニューが表示されるので、1つ1つ解説していきます。

Dashboard

ダッシュボードを見てみましょう。

ここでは、サイトのセキュリティ設定の状態をチェックできます。

針が赤や黄色を指していると危険な状態です。できる限り満点の515に近づけましょう。

Dashboardは特に設定するところがないので、次に進みます。

Settings

この項目で設定しておきたい内容は以下です。

「WP Version Info」に進みます。

Remove WP Generator Meta Info」にチェックを入れましょう。これは、WordPressのバージョンをHTMLで出力させないようにする設定です。

WordPressのバージョンによっては脆弱性がある場合があり、そのバージョンで放置されているサイトが攻撃者に狙われる可能性があるためです。

攻撃者にバージョン情報を知られないようにチェックを入れておきましょう。

User Accounts

「WP Username」に進みます。

デフォルトのユーザー名「admin」になっていないかのチェックです。

ユーザー名が「admin」になっていなければ、ここはそのままでOKです。ほとんどの人はユーザー名がデフォルトになっていないはずです。

「Display Name」に進みます。

「ブログ上の表示名」がユーザー名になっていないかのチェックです。

もし上記のように警告文が出る場合は、警告文下のユーザー名をクリックして、ユーザー設定に飛びます。

「ニックネーム」を設定し、それを「ブログ上の表示名」に設定して保存してください。

ユーザー名はログイン情報なので、ブログ上で表示させないようにしましょう。

次は「Password」に進みます。ここでは、パスワードの強度を確認できます。

仮に「aiueo」というパスワードだったとしましょう。

なんと1秒以内でこのパスワードは破られてしまいます。

次は、記号と数字を含めた「-BW_y95T9/BR」という12桁のパスワードを試してみます。

このパスワードを破るには、5389762年と2ヶ月かかります。非常に強固なパスワードです。

このように、パスワードは英数字と記号を含める桁数を多くすることで、破られるのが困難になります。ぜひ実践してください。

User Login

次はログインに関する設定です。

まずは「Login Lockdown」の項目を設定します。

ここでは、パスワードを数回間違えた時に、ログイン試行をロックする設定を行います。

Enable Login Lockdown Featureにチェックを入れます。これでログインに失敗するとロックされるようになります。

Max Login Attemptsは、何回失敗したらロックされるかの設定です。

Login Retry Time Period (min)は、どれくらいに時間でログインに失敗を繰り返したらロックされるかという設定です。

Time Length of Lockout (min)はロックが解除されるまでの時間です。

上の画像でいうと、「5分間に5回パスワードを間違えたら60分間はログインできませんよ」ということになります。

誰かがログインに失敗してロックされたらメールに通知が行くように設定します。

必須ではありませんが、私はチェックを入れています。

「Force Logout」に進みます。

Enable Force WP User Logoutは、一定の時間が経つとログアウトする設定です。誰かにパソコンを勝手に操作されて、WordPressを利用されるのを防ぐための設定です。

Logout the WP User After XX Minutesは、何分でログアウトするかの設定です。画像の例では60分で自動的にログアウトするように設定しています。

User Registration

ここではユーザー作成に関する設定を行います。

「Manual Approval」の設定を行います。

Enable manual approval of new registrationsはユーザー作成を承認制にする設定です。

ここにチェックを入れておきましょう。

次は「Registration Captcha」をクリックします。

Enable Captcha On Registration Pageはユーザー登録する際に、画像の文字を入力する欄を設ける設定です。画像を認識できないbotにユーザー登録させないようにするための設定です。

「Registration Honeypot」をクリックします。

Enable Honeypot On Registration Pageにチェックを入れます。

これはbotにだけフォームが見えるようにして、そのフォームに入力されたら人間ではないと判定してユーザー登録を拒否する設定です。

Database Security

次はデータベースのセキュリティ強化です。

先に「DB Backup」から設定を行います。「DB Prefix」の変更の前にバックアップを取っておくためです。

「Create DB Backup Now」をクリックして、現在のデータベースのバックアップを取っておきます。

Enable Automated Scheduled Backupsにチェックを入れておくと、定期的に自動でバックアップをサーバーに保存してくれます。

Backup Time Intervalは、どれくらいの頻度でバックアップを取るかの設定です。画像の例では2週間に設定しています。

Number of Backup Files To Keepは、サーバーに過去何回分のバックアップを残しておくかの設定です。

Send Backup File Via Emailはバックアップをメール宛に送信するかどうかの設定です。

サーバーが攻撃されてバックアップファイルも改ざんされる可能性も考えられるので、私はメールにもバックアップを送るようにしています。

次は「DB Prefix」に進みます。

「データベースのバックアップを取ってください。」と出ますが、先ほどバックアップはしたのでOKです。

Current DB Table Prefixは、現在のテーブル名の接頭辞(プレフィックス)で、これがデフォルトの「wp」になっていたら危険です。

Generate New DB Table Prefixで、上の「Check this if you want the plugin to generate a random 6 character string for the table prefix」にチェックを入れて自動でプレフィックスを生成するか、下の欄に任意のプレフィックスを入力してください。

Filesystem Security

次はサーバーにあるPHPなどのファイルに関するセキュリティ設定です。

「File Permissions」をクリックします。

Permissions(パーミッション)とは、ファイルの読み書きや実行の権限に関する設定です。

ファイルのオーナー以外に不要な権限を与えないように、パーミッションの設定を行いましょう。

「No Action Required」になっているファイルは大丈夫ですが、「Set Recommended Permissions」と表示されている項目は、クリックして権限を変更するのがおすすめです。

全てのパーミッションを変更しました。

次は、「PHP File Editing」をクリックします。

テーマやプラグインのPHPファイルは、管理画面から編集できます。

Disable Ability To Edit PHP Filesにチェックを入れて、管理画面からPHPファイルを編集できないように設定してください。

次は、「WP File Access」をクリックします。

Prevent Access to WP Default Install Filesにチェックを入れて、readme.htmllicense.txtwp-config-sample.phpにアクセスできないようにします。

Blacklist Manager

特定のIPアドレスやユーザーエージェントのアクセスを拒否するための項目です。

ここは飛ばして大丈夫です。

Firewall

Firewallは悪意のある第三者による通信をブロックするための設定です。

「Basic Firewall Rules」に進みます。

Enable Basic Firewall Protectionにチェックを入れます。

.htaccessファイルの保護、サーバー署名無効、ファイルアップロード制限、wp-config.phpの保護が行われます。

Max File Upload Size(MB)は、アップロードできるメディアの最大サイズを設定します。デフォルトでは10MBになっていますが、これ以上大きなメディアをアップロードすることはほとんどないでしょう。

Completely Block Access To XMLRPCをオンにすればよりセキュリティは強くなりますが、Jetpackなど一部のプラグインが動かなくなります。

不安な方は、下のDisable Pingback Functionality From XMLRPCだけにチェックを入れてください。

Block Access to debug.log Fileはデバッグログファイルへのアクセスをブロックする設定です。

WordPressのデバッグログを残すように設定していると、エラー発生時などにログを残すようになっています。

何もしていなければデバッグログは生成されないのでどちらでも良いですが、念のためチェックを入れておきましょう。

Additional Firewall Protectionの項目は全部チェックを入れて大丈夫です。

細かい説明は省きます。

6G Blacklist Firewall Rulesは、Enable 6G Firewall Protectionにだけチェックを入れればOKです。

Internets BotsはGoogleを偽ったbotを防ぐものですが、公式がブロックされる可能性もあるので、チェックは入れないようにしましょう

Prevent Hotlinks、404 Detection、Custom Rulesもチェックを入れなくて大丈夫です。

Brute Force

次はBrute Forceに関する設定です。

ブルートフォースアタックとは

ブルートフォースアタック(総当たり攻撃)とは、文字の組み合わせを何回も試行し、ログインしようとする攻撃方法です。

例えば、4桁の数字でロックされたダイヤルロックは、0000から9999までの1万通りを試せば必ずロックを外すことができます。

これを、ログイン画面で行うのがブルートフォースです。

Rename Login Pageの設定を行います。

通常ログインページには「WordPress アドレス + /wp-login.php(または/wp-admin/)」で入れますが、ログインページが知られていない方が安全です。

Enable Rename Login Page Featureにチェックを入れて、ログインページを指定のURLに変更しましょう。

Login Page URLで任意のログイン画面に変更できます。

ここで設定したログイン用のURLは、必ずメモやブックマークをしておきましょう

Cookie Based Brute Force Preventionの項目は変更なしで大丈夫です。

まとめ

今回は、WordPressのセキュリティを強化できるプラグイン「All In One WP Security」の使い方を解説しました。

何も対策をしていないWordPressは危険度が高いです。

自分だけが被害に遭うだけならまだしも、サイト閲覧者にまで迷惑をかけてしまう可能性もあります。

サイト改ざんの被害に合わないためにも、こういった設定は早いうちにやっておくのが賢明です。