All In One WP Security & Firewallの使い方とおすすめの設定方法

B! pocket

All In One WP Security & Firewall

最近は、個人事業主から中小企業、そして大企業に至るまで、多くのビジネスパーソンがWordPressを使ってブログやサイトを作っています。

WordPressは手軽に導入できる反面、セキュリティ面の運用に問題があるサイトも多いです。

私自身、セキュリティの専門家というわけではないのですが、サイト運営者の一人として、WordPressを使ったサイト作りに役立つ情報を配信していこうと考えています。

今回の記事は、WordPressのセキュリティプラグイン「All In One WP Security & Firewallの使い方とおすすめの設定方法」についです。

このセキュリティプラグインは、ワードプレスで必要なセキュリティ対策を包括的に実装できます。

初心者にとっては、使うのが難しいと感じるかもしれませんが、私が実際に行っている設定を踏まえて、可能な限りわかりやすく解説していきます。

All In One WP Security & Firewallのインストール

プラグインのインストール

All In One WP Security & Firewallは、ワードプレスのセキュリティ対策プラグインとして広く知られています。

記事執筆時点ですでに60万件以上のダウンロード実績がある、信頼できるプラグインです。

まずは、プラグインをインストールしていきます。

ワードプレスの管理画面のメニュー「プラグイン」から「新規追加」を選択します。

プラグイン一覧の右上にある検索窓に「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時間)で強制ログアウトとなります。

このようにしておくことで、社員が働いていない時間にログインがあった場合に「怪しい」と考え、監視の強化を図ることができます。

セキュリティ対策では、不正なログインを防ぐこと、そして不正なログインをいち早く検知できる体制を築いておくことが重要です。

データベースの接頭辞を変更する

データベース

ワードプレスの初期設定では、データベースのテーブル名に「wp_xxxxxx」のような名称が付けられています。

テーブル名の「wp_」の部分を接頭辞といい、これを一括して変更しておくことで、SQLインジェクションや特定のテーブルに対する攻撃を防ぐことができます。

データベースのセキュリティを高める意味でもぜひ変更しておきたいところなのですが、データベースのテーブル名を変更すると、バグが発生する可能性も高いです。

慎重派の人はこの設定はオフにしておくか、事前にデータベースのバックアップを取ってからオンにすることをおすすめします。

機能をオンにすると、データベースの接頭辞が「fdea_xxxxx」のようにランダムな英文字となります。

ファイル操作を禁止する

ファイル・フォルダへのアクセスを禁止する

Filesystem Security → File Permissions」では、各ファイル・フォルダへのアクセス権限(パーミッション)の状況を監視できます。

基本的にすべてが緑色になっていれば問題ありませんが、ワードプレスにはより強力なパーミッションの推奨値がありますので、また別の記事で解説します

Filesystem Security → PHP File Editing」の「Disable PHP File Editing」は、ワードプレスの管理画面からPHPファイルの編集をできないようにする設定です。

この機能をオンにすると、管理画面からテンプレート編集などができなくなるため面倒ですが、チェックをオンにしておくことをおすすめします。

もし、管理画面から「テーマの編集」が消えてしまい、テンプレートの編集ができなくなったら、「Filesystem Security → PHP File Editing」のページを確認してみてください。

隣にある「Filesystem Security → WP File Access」の「Prevent Access Default WP Files」のチェックもオンにしておきます。

これは、ワードプレスの初期ファイル「readme.html、license.txt、wp-config-sample.php」へのアクセスを禁止する機能です。

ファイアウォールを設定する

ファイアウォール

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」をオンにします。

これは実際どの程度効果があるのかわからないので、オンにしてもしなくても良いのですが、私は一応オンにしています。今のところこの機能を使って何か不具合が生じたことはありません。

ブルートフォースアタックから身を守る

ID・パスワード

ブルートフォースアタックとは日本語で「総当たり攻撃」と呼ばれるハッキング手法です。

ランダムなIDとパスワードを100万回試せば、いずれ当たりを引けるだろうという考えですね。

ブルートフォースアタックは、前述の「ログインロック機能」を有効にしておくことでも防げます。

私自身は、「Brute Force → Login Captcha」の「Enable Captcha On Login Page:」のみをオンにしています。

この機能をオンにしておくことで、ワードプレスへのログイン時に「ID・PASSに加えて簡単な足し算」が追加され、ロボットからの自動ログインの抑制につながります。

本来は、ワードプレスのログインURLを変更する「Rename Login Page」をオンにした方がよいのですが、複数人で管理しているサイトなど、管理のしやすさの観点から、通常はオフにしています。

ブルートフォースアタックに関して、個人的には「海外からのワードプレスの管理画面へのアクセスを禁止する」という方法が非常に有効であると考えています。

現在は、大抵のレンタルサーバー会社で、「ワードプレスの管理画面への海外からのアクセス」は初期設定でオンになっています。

これをオフにすると、ブルートフォースアタックを仕掛けられる確率は高まってしまいます。

もし、海外からワードプレスへの投稿を行う可能性がある方は、All In One WP Security & Firewallのブルートフォースの防止機能をさらに強力なものにしておくことをおすすめします。

WordPressのセキュリティをさらに高めよう

セキュリティ

All In One WP Security & Firewall」単体でもWordPressのセキュリティはかなり高めることができます。

しかし、その他にも簡単な設定でセキュリティをより強化できますので、また改めて別記事でその他のセキュリティ設定について紹介したいと思います。

もし、「ここをもっとこうした方が良いのでは?」という意見がございましたら、お気軽にコメントにて意見をください。

WordPressでより安全なサイト運営ができる人が一人でも増えることを願っています。

最後まで読んでいただきありがとうございました

0件のコメント

コメントを投稿する