【WordPress】企業ページは絶対セキュリティ対策をする

起業家のためのWordPress

このページを読んでくださっている方は起業家だったり、比較的規模の大きな企業の新規事業部の方だったりすると思いますので今回の記事の内容は非常に大切です。

企業の管理するページが改竄されたりしたら、目に見えてこない損害まで考えると計り知れないものがあります。

高度なサイバー攻撃の発生頻度は 3 分に 1 回起こっていますし、この日本でも 10 秒に 1 人の割合で、サイバー攻撃の被害者になっています

このサイトでも、Wordpressの管理ログイン画面に、海外からの不正なアクセスが、月に数百件はあります。

自社の資産ともいえる大切なサイトを守るうえで、セキュリティ対策は絶対に必要です。

対策が遅れて後の祭りになってしまわないよう、この記事を読みながら対策を進めましょう!

All In One WP Securityってどんなプラグイン?

ほとんどのWordPress ユーザーが、何かしらのセキュリティに関するプラグインをインストールしているそうです。

このセキュリティに関するプラグインが数多くある中で、この「All In One WP Security」は70 万以上ダウンロードされている有名なプラグインです。

しかし、この「All In One WP Security」は日本語対応していないので、最低限に必要と思われる設定項目の内容と、設定方法を共有します。

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

レンタルサーバーでWordpressを導入した場合なんかは初めからインストールされている場合もありますが、プラグイン一覧にないのであれば、「新規追加」を選択し、右上の検索窓に「All In One WP Security & Firewall」と入力し、下記の画像と同じプラグインをインストールします。

インストールが完了したら「有効化」すると左のメニューに、「WP Security」という項目が増えているはずです。

All In One WP Security & Firewall の設定

基本設定(Settings)

まず「WP Security」から「Settings」を選択しましょう。

色々買いてありますが、ここで設定すべき項目は、「WP Version Info」だけです。

「Remove WP Generator Meta Info」にチェックを入れて、「Save Setting」ボタンを押して完了です。

どのような作用があるかと申し上げますと、WordPress のバージョン情報を表示するかどうかの設定項目で、チェックすると非表示になるので、古いバージョンの WordPress を使っていた場合など、バージョン情報を表示していると、ハッカーなどの攻撃対象になりやすいからです。

ユーザーアカウント(User Accounts)関連の設定

特に何もする必要はありません。

ログイン(User Login)関連の設定

ここの設定は、必ずやらなければなりません。

ログイン禁止(Login Lockdown)の設定は以下の通り

  • Enable Login Lockdown Feature:チェックを入れる(ログイン禁止機能の有効)
  • Allow Unlock Requests:チェックを入れる(ログイン禁止を外すリクエスト出来るようになる)
  • Max Login Attempts:3(3回ログインに失敗するとログインを禁止する)
  • Login Retry Time Period (min):5(この時間内に設定した回数失敗するとログイン禁止にする)
  • Time Length of Lockout (min):60(この時間内に設定した回数失敗するとログイン禁止にする)
  • Display Generic Error Message:チェックを入れる(ログインに失敗した時に、通常のエラーメッセージを表示する)
  • Instantly Lockout Invalid Usernames:チェックを入れる(下記の項目に登録しているユーザー名でログインしようとすると、直ちにログイン禁止にする)
  • Instantly Lockout Specific Usernames:「administrator・admin・root・user」(すぐログイン禁止にするユーザー名を入力し、1ユーザー名毎に改行する)
  • Notify By Email:チェックを入れて連絡用メールアドレスを入力

「Login Lockdown IP Whitelist」は、ログイン禁止にしない IP アドレスを指定するもので、何も対応しなくて良いでしょう。

右側のタブに表示される「Failed Login Records」は、ログインに失敗したユーザーの履歴が表示されます。

その右側のタブの強制ログアウト(Force Logout)の設定

  • Enable Force WP User Logout:チェックを入れる(強制ログアウト機能の有効)
  • Logout the WP User After XX Minutes:60(何分間で強制ログアウトさせるか)

「Account Activity Logs」は、ログインに成功したユーザーの履歴が表示されます。

「Logged In Users」は、現在、ログイン中のユーザーが表示されます。

ユーザー登録(User Registration)関連の設定

手動承認(Manual Approval)の設定

  • Enable manual approval of new registrations:チェックを入れましょう。(登録フォームからアカウントを作成できるようにしている場合に、手動で各登録を承認するかどうかです)

次のタブの「Registration Captcha」は、アカウント登録ページにキャプチャフォームを追加するかという設定です。

「Registration Honeypot」は、アカウント登録ページに、「ハニーポット」と呼ばれる特別な隠れたフィールドを追加するかという設定です。

ベーシックな企業ページでは、アカウント登録させないので両方ともチェックしなくて大丈夫です。

データベース(Database Security)関連の設定

WordPress をインストールだけでは、「wp_xxxxx」のような名前で、テーブル名が付けられているので、セキュリティ的に問題があります。

ここでは、「Generate New DB Table Prefix」にチェックを入れて、「Change DB Prefix」ボタンを押して、変更してください。

なお、ここでバックアップを求められますが何か変更を行うときはこれに限らずこまめにバックアップを取る癖をつけましょう。

ちなみにバックアップ専用のプラグインの方が便利です。

ファイル(Filesystem Security)関連の設定

ここでファイルのアクセス権限を設定します。

「No Action Required」なら問題ありませんが、「Set Recommended Permissions」というボタンが表示されている場合は、押しておきましょう。

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

ワードプレスの管理画面以外から、ファイルの編集が出来る方は、チェックしておきましょう。

「WP File Access」は、readme.html、license.txt、wp-config-sample.php などのファイルへのアクセスを禁止することができるので、ここはチェックしておきましょう。

「Host System Logs」は、エラーが発生した時に、出力ファイル名なので、スルーしておいても大丈夫です。

WHOIS Lookup

WHOIS API を使って、IP アドレス・ドメインに関する詳細情報を取得できる機能なのですが、スルーしておいても大丈夫です。

IP 制限(Blacklist Manager)関連の設定

特定の IP や、海外からのアクセスを制限する時に使いますが、スルーしておいても大丈夫です。

ファイアウォール(Firewall)関連の設定

ファイアウォール(Basic Firewall Rules)の基本設定

  • Enable Basic Firewall Protection:チェックを入れる(ファイアウォール機能の有効)
  • Completely Block Access To XMLRPC:チェックを入れる(外部投稿機能を使ってない場合は、チェック)
  • Disable Pingback Functionality From XMLRPC:チェック無し(外部投稿機能を使っている場合は、チェック)
  • Block Access to debug.log File:チェックを入れる(デバッグログにアクセスさせるかどうかの設定で、アクセスさせないためにチェック)

他の項目は、特に設定する必要はありません。

ブルートフォース(Brute Force)関連の設定

サイトを乗っ取られないためにも、必ず設定してましょう!

管理画面ログインページ(Rename Login Page Setting)の設定

  • Enable Rename Login Page Feature:チェックを入れる(管理画面ログインページの URL を変更します)
  • Login Page URL:任意文字列(管理画面のログインページの URL は「https://xxx/wp-admin/login.php」ですが、これではセキュリティ的に問題があるので、変更しましょう。

他の項目は、特に設定する必要はありません。

SPAMコメント(SPAM Prevention)関連の設定

特に設定する必要はありません。

ファイル変更検出(Scanner)関連の設定

ファイル変更検出(File Change Detection)設定

  • Enable Automated File Change Detection Scan:チェックを入れる(ファイル変更検出機能の有効)
  • Scan Time Interval:1 days(スキャンの頻度)
  • File Types To Ignore:jpeg・jpg・png・gif・css・scss・map・po・mo(ファイル変更検出しないファイルタイプの指定)
  • Files/Directories To Ignore:未入力(ファイル変更検出しないディレクトリの指定)
  • Send Email When Change Detected:チェックし、メールアドレスを設定(変更があった場合に、メールを送信するかの設定、送信先メールアドレスの設定)

メンテナンスモード(Maintenance)関連の設定

特に設定する必要はありません。

その他(Miscellaneous)の設定

この辺りは好みの問題ですので任意に設定してみてください。

「Copy Protection – Enable Copy Protection」は、記事内容をコピーさせないようにする設定です。

「Frames – Enable iFrame Protection」は、他のサイトにフレームや iframe 経由でコンテンツが表示されないようにすることができる設定です。

「Users Enumeration – Disable Users Enumeration」「WP REST API – Disallow Unauthorized REST Requests」は、特に設定する必要はありません。

この記事のまとめ

ここで紹介した内容は、あくまで筆者の環境でベストだと考える設定ですので任意に変えてくださっても構いません。

WordPress は、機能が豊富なので、使い方によっては設定を変える必要もあると思います。

企業用に関わらずWeb サイトを運用する時に、セキュリティ対策は、非常に重要です。

時間をかけて作ったサイトを守る為に、しっかりと設定しておきましょう。