All In One WP Security & Firewallの使い方と設定方法
All In One WP Security & Firewallのインストール
まずは、プラグインをインストールしていきます。
ワードプレスの管理画面のメニュー「プラグイン」から「新規追加」を選択します。
プラグイン一覧の右上にある検索窓に「All In One WP」と入力し、All In One WP Security & Firewallをインストールします。
インストールが完了したら「有効化」をして、ブラウザを再読込します。ワードプレスのメニュー一覧に「WP Security」という項目が追加されたことを確認します。
「All In One WP Security & Firewall」の設定はすべて英語表記です。
しかし、マウスを右クリックしてブラウザの「翻訳機能」を使えば、設定画面を日本語に変更できます。
WordPressのバージョン情報を消す
ワードプレスは初期設定で、ソースファイルのhead部分に現在のバージョン情報を表示するようになっています。(サイト上には表示されません、ソースコードに表示されています)
head部分にバージョン情報が記載されていると、いわば「私は古いバージョンや脆弱性があるバージョンのWordPressを使っています」と宣言しているようなものなので、とても危険です。
すでにバージョン情報を削除している方は設定不要ですが、「なんだかよくわからない」という方は、「All In One WP Security & Firewall」を使って以下のように設定してください。
Settings → WP Version Info → WP Generator Meta Info → チェックを入れる → Save Settings
この設定を行うことで、head内のバージョン情報を非表示にできます。
ちょっとしたことですが、これだけでもワードプレスのセキュリティを大幅に強化できます。
ログインロックを設定する
All In One WP Security & Firewallプラグインでは、ログインに数回失敗すると、そのIPアドレスを自動的に一定時間「ログイン禁止状態」にしてくれます。
不正なログインを試みられた時でも、自動的に悪意のあるユーザーをログイン禁止状態にしてくれるため、必ず有効にしておきたい設定です。
設定画面は「User Login → Login Lockdown」の部分にあります。
Enable Login Lockdown Feature:(オン)
この機能を有効にする。
Allow Unlock Requests:
ログイン禁止状態になったユーザーが管理者に解除申請を送信できるかどうか。
Max Login Attempts:(推奨3回)
ブロック対象となるまでの試行回数です。3回なら、3回ログインに失敗するとブロックされます。
Login Retry Time Period (min):(推奨5分)
この時間内に、上記の回数ログイン失敗になると、そのIPアドレスをブロックします。
Time Length of Lockout (min):(推奨60分)
ログイン禁止状態になったユーザーがアクセスできない時間。
Display Generic Error Message:
ログイン失敗になった時に、通常のエラーメッセージのみを返します。
Instantly Lockout Invalid Usernames:(オン)
登録しているユーザー名以外のユーザー名を入力すると、即ログイン禁止にします。
Instantly Lockout Specific Usernames:
入力したユーザー名をログイン画面で入力すると、即ログイン禁止にします。
Notify By Email:(オン)
誰かがログイン禁止になると、それを入力したメールアドレスあてに通知します。
推奨の設定にしておくと、
- パスワード等を5分以内に3回間違うと60分間ログイン禁止
- admin3など、存在しないユーザー名を入力すると即ログイン禁止
- 誰かがログイン禁止になるとメールでアラートが飛んでくる
という防御策を実現できます。
また、ログイン失敗履歴は「Failed Login Records」で確認でき、「Account Activity Logs」ではログイン成功履歴を確認できます。
また、現在ログイン中のユーザー一覧は「Logged In Users」で確認可能です。
身に覚えがない時間帯にログインされていたり、知らないIPアドレスからログインされていた場合、悪意のあるユーザーにログインされている可能性があります。
もっとも、携帯電話の回線でログインすると頻繁にIPアドレスが変わるため、「身に覚えがない時間帯かつ身に覚えがないIPアドレス」の両方が重なった場合に、監視の強化などを図ります。
一定時間で自動的にログアウトさせる
同じく、「User Login → Force Logout」の画面では、ログインしたユーザーを一定時間で強制ログアウトさせることができます。
ワードプレスを複数人で運用している場合、ログイン画面の「ログイン状態を保存する」にチェックを入れていると、長期にわたってログイン状態が持続します。
しかしこの状態は、セキュリティの観点から考えて良いとは言えません。
Enable Force WP User Logout:(オン)
一定時間で強制的にログアウトさせる機能をオンにする
Logout the WP User After XX Minutes:(推奨540~600)
何分でログアウトさせるか、「分」を指定する
私の会社では、従業員がワードプレスにログインしてから540分~600分で強制ログアウトするようにしています。
社員の拘束時間を9時間(8時間+休憩1時間)とすると540分、残業などを1時間分考慮すると600分(10時間)で強制ログアウトとなります。
このようにしておくことで、社員が働いていない時間にログインがあった場合に「怪しい」と考え、監視の強化を図ることができます。
セキュリティ対策では、不正なログインを防ぐこと、そして不正なログインをいち早く検知できる体制を築いておくことが重要です。
ファイアウォールを設定する
「Firewall → Basic Firewall Rules」にてファイアウォールを設定します。
Enable Basic Firewall Protection:(オン)
この機能をオンにしておくことで、基本的なファイアウォール設定が有効となります。
Completely Block Access To XMLRPC:
Disable Pingback Functionality From XMLRPC:
外部投稿機能を使っていない場合は、上段の「Completely Block Access To XMLRPC:」をオンにします。(こちらのほうが強力です)
上記で不具合が出る場合や、Jetpackや外部投稿機能を使っている場合は、下段の「Disable Pingback Functionality From XMLRPC:」をオンにします。
上記のうち、XMLRPCの設定はどちらか一方を必ずオンにしておくことを推奨します。
ワードプレスでは、XMLRPCへの攻撃が非常に多いため、外部投稿を使っていない場合はXMLRPCへのアクセスはオフにしておきましょう。
つづいて、「Firewall → 6G Blacklist Firewall Rules」のページに移り「Enable 6G Firewall Protection」をオンにします。
これは実際どの程度効果があるのかわからないので、オンにしてもしなくても良いのですが、私は一応オンにしています。今のところこの機能を使って何か不具合が生じたことはありません。
WordPressのセキュリティ検証
WordPressのセキュリティ設定が終わったら、念のためセキュリティ検証をしましょう。
セキュリティ検証は、下記サイトでできます。
All In One WP Security & Firewallは、他にもWordPressのセキュリティ強化に役立つ機能が備わっています。
Google翻訳を上手に使い、そのサイトに最も適したセキュリティをしてあげると良いです!