
WordPressのセキュリティ対策というと、「SiteGuardなどのプラグインを入れて終わり」になっていませんか。
実はレンタルサーバー上でWordPressを運用する場合、守るべき層は2つあります。「WordPress自体を守る設定」 と、「サーバー全体(Webアプリケーション全般)を守る設定」 です。この2つは役割がまったく違うため、片方だけでは穴が残ります。
私の使用しているエックスサーバー(Xサーバー)を例に、サーバーパネルで行う2種類のセキュリティ設定を整理します。
さくらインターネットの設定方法は別途作成予定です。
なぜ「2箇所」必要なのか
ざっくり言うと、守るポイントが違います。
| 設定箇所 | 守る対象 | 主に防ぐ攻撃 |
|---|---|---|
| WordPressセキュリティ設定 | ログイン画面・API・コメント欄など、WordPress固有の入口 | 不正ログイン、ブルートフォース、スパム |
| WAF設定 | サイト全体に届くリクエストの中身 | SQLインジェクション、XSS、コマンド実行など |
WordPressセキュリティ設定は「誰が入ってくるか」を制限するもの。 WAFは「どんな内容のリクエストか」を検査するもの。
ドアの鍵(前者)と、持ち物検査(後者)の関係だと考えると分かりやすいと思います。鍵をかけても、正規の入口から悪意のあるデータを送り込まれたら意味がありません。逆に持ち物検査だけしていても、パスワードを総当たりで破られたら終わりです。
【1つ目】WordPressセキュリティ設定
サーバーパネルの「WordPressセキュリティ設定」から行います。各種ツールへの国外からの接続を制限したり、パスワード総当たり(ブルートフォースアタック)による第三者のログインを防止するなど、不正アクセスに対するセキュリティを強化する機能です。
なお、設定はドメインごとに行う仕様です。複数サイトを運用している方は、サイトごとに確認が必要です。

設定できるのは次の4つ。
① IPアドレス制限設定
ホワイトリストに登録したIPアドレス以外からのダッシュボードアクセスを遮断する機能です。制限がかかるのは /wp-admin(ダッシュボードのフォルダ)と /wp-login.php(ログイン時にアクセスするファイル)です。
- 初期状態はOFF(無効)
- ホワイトリストを登録しないとONにできない仕様
- 1行1アドレスで登録。CIDR形式(例:
192.168.11.0/24)での範囲指定も可能
注意点として、 IPアドレス制限は国外アクセス制限より優先されます。リスト外のIPは国内外を問わず遮断されるため、国外アクセス制限の設定は実質的に無効になります。
固定IPの事務所から運用しているクライアント様には、これが最も強力な対策になります。一方、自宅や外出先から更新する運用だとIPが変わって自分が締め出されるため、現実的には次の「国外アクセス制限」で運用するケースが多いようです。
② 国外アクセス制限設定
国外からのアクセスを制限する機能で、初期状態はON(有効)です。制限対象は4種類に分かれています。
ダッシュボードアクセス制限 国外IPアドレスに加え、海外の主要クラウドサービスが所有する日本国内IPアドレスからのアクセスも制限されます。対象は /wp-admin と /wp-login.php です。
XML-RPC APIアクセス制限 スマホアプリや外部システムからリモート投稿する際に使われる /xmlrpc.php への、国外および一部の国内ホスティングサービス環境からの接続を制限します。「Jetpack by WordPress.com」によるアクセスは制限対象外です。
REST APIアクセス制限 /wp-json への国外からの接続を制限します。
wlwmanifest.xmlアクセス制限 Windows Live Writerで記事を作成・投稿するための情報が書かれた /wlwmanifest.xml への国外からの接続を制限します。
いずれも通常はON(有効)のまま運用することが強く推奨されています。制限を解除する場合は、個別にIPアドレス制限やBasic認証を行うよう案内されています。
ここが落とし穴:ダッシュボード制限とREST APIの連動
WordPress 5.0以降では記事の投稿にREST APIを使用するため、国外からWordPressを利用する場合は、ダッシュボードアクセス制限とあわせてREST APIアクセス制限もOFFにする必要があります。ダッシュボードアクセス制限をOFFに変更すると、REST APIアクセス制限も同時にOFFに変わる仕様です。
REST APIアクセス制限をONにしたままだと、記事の編集・保存が行えない場合があります。「ブロックエディタで保存できない」「更新に失敗しました」といったトラブルの原因が、ここに潜んでいることがあります。
国内からなのに弾かれるケース
エックスサーバーのマニュアルでは、次のような注意も挙げられています。
- 国内IPアドレスからのアクセスでも、システム上で国外IPと誤認され制限される場合がある
- CloudFlare等、外部サーバーを経由してアクセスするサービスを利用していると、経由サーバーが制限に該当する可能性がある
- AWSやAzureなどの海外拠点に設置されたサーバーからアクセスする場合は、設定を無効(OFF)にする必要がある
CDNや外部ツールを導入した直後に管理画面へ入れなくなったら、まずここを疑ってください。
③ ログイン試行回数制限設定
短時間に連続してログイン失敗が発生した場合にアクセスを制限する機能で、ブルートフォースアタックによる不正アクセスを防止できます。初期状態はON(有効)で、制限は制限開始から24時間後に解除されます。
マニュアルでは、特別な事情がない限りONのまま運用することが強く推奨されており、利用者自身が制限にかかった等の理由で一時的にOFFにした場合は、利用後に再度ONへ戻すよう案内されています。
パスワードを忘れて何度も試し、自分が24時間ロックされる——というのは実務でわりとよくある話です。慌ててOFFにしたまま放置しないよう注意してください。
④ コメント・トラックバック制限設定
2つの機能で構成されています。
- 大量コメント・トラックバック制限:スパムが行われた際に一時的に制限し、6時間経過後に自動解除されます。初期状態はON。
- 国外からのコメント・トラックバック制限:初期状態はOFFですが、国外からのコメント・トラックバックが不要な場合はONへの変更が推奨されています。
国内の中小企業サイトであれば、後者はONにして問題ないケースがほとんどです。ただしCloudFlare等の外部サーバー経由の場合は制限に該当する可能性があるため、その点だけ確認が必要です。
【2つ目】WAF設定
もう1箇所が「WAF設定」です。
WAF(Webアプリケーションファイアウォール)は、Webアプリケーションの脆弱性を悪用した攻撃からWebサイトを保護する機能で、WordPressなどの安全性を簡単な設定で向上させられます。検知された場合は、アクセスが拒否されエラーページが表示されます。
設定できる6項目
エックスサーバーのWAFでは、以下の6項目を個別にON/OFFできます。

WordPressサイトは、「第三者が入力した情報を表示するアプリケーション」「データベースを利用するアプリケーション」「メール送信機能を備えたアプリケーション」「PHPを用いたアプリケーション」——これらすべてに該当します。つまり6項目すべてが関係する、というのが実情です。
設定前に理解しておくべきこと
マニュアルには明確に書かれています。WAF設定は有害な可能性のあるアクセスを検知する機能ですが、不正アクセスを100%駆除することを保証するものではありません。あくまでWebアプリケーションの脆弱性に対する最低限の予防策であり、根本的な対応として随時最新バージョンのアプリケーションを利用するなどのセキュリティ対応が必ず必要とされています。
ここは非常に重要です。WAFを入れたからプラグインやWordPress本体の更新を怠ってよい、という話には絶対になりません。
また、WAF設定の追加・変更後、反映まで最大30分程度かかる場合があります(旧サーバーパネルのマニュアルでは最大1時間程度と案内)。設定してすぐ動作確認しても反映されていないことがあるため、時間を置いて確認してください。
WAFの誤検知(実務で最も遭遇するトラブル)
WAFは「文字列パターン」で判定するため、正当な操作でもブロックされることがあります。
よくあるのが次のケースです。
- テーマやプラグインのファイル編集で、PHPコードを管理画面から保存しようとすると弾かれる(→ PHP・コマンド項目に該当)
- お問い合わせフォームの本文に特定の文字列が含まれて送信できない(→ メール・XSS項目に該当)
- 記事本文にコードスニペットを貼り付けると更新できない(→ XSS・SQL項目に該当)
対処の手順 は次のとおりです。
- まず、どの操作で失敗するかを特定する
- サーバーパネルのWAF設定で、該当しそうな項目を 一時的にOFF にする
- 反映を待ってから作業を行う
- 作業が終わったら必ずONに戻す
3のあとにONへ戻し忘れる事故が起きやすいので、手順書に残しておくことをおすすめします。
推奨設定の目安
中小企業サイトで、国内からのみ運用する一般的なケースを想定した目安です。
| 設定項目 | 推奨 | 補足 |
|---|---|---|
| IPアドレス制限 | 固定IP環境ならON | ホワイトリスト登録が前提 |
| 国外アクセス制限(ダッシュボード) | ON | 国外から更新しない限り |
| XML-RPC APIアクセス制限 | ON | アプリ投稿をしないなら |
| REST APIアクセス制限 | ON | 国外運用時はOFFが必要 |
| wlwmanifest.xmlアクセス制限 | ON | 現在ほぼ使われない機能 |
| ログイン試行回数制限 | ON | 初期値のまま |
| 大量コメント・トラックバック制限 | ON | 初期値のまま |
| 国外コメント・トラックバック制限 | ON推奨 | 初期値はOFF |
| WAF(6項目すべて) | ON | 誤検知時のみ一時OFF |
※上記はエックスサーバーのマニュアル記載の推奨および初期値をもとにした、一般的な国内運用サイトを想定した筆者の判断です。実際の運用形態(海外からの更新、CDN利用、外部連携ツールの有無など)によって適切な設定は変わります。
まとめ
サーバー側のWordPressセキュリティは、
- WordPressセキュリティ設定 … ログイン・API・コメントの「入口」を絞る
- WAF設定 … 届いたリクエストの「中身」を検査する
この2箇所をセットで設定してはじめて機能します。どちらもサーバーパネルから数分で設定でき、追加費用もかかりません。
そのうえで、
- WordPress本体・テーマ・プラグインを最新に保つ
- 管理者IDに「admin」を使わない
- 強固なパスワードと2段階認証を設定する
- バックアップを取得しておく
といった基本を組み合わせることで、はじめて現実的な防御になります。WAFのマニュアルに明記されているとおり、サーバー機能はあくまで最低限の予防策 です。運用側の手入れとセットで考えてください。
出典
- エックスサーバー「WordPressセキュリティ設定」マニュアル https://www.xserver.ne.jp/manual/man_server_wpsecurity.php
- エックスサーバー「WAF設定」マニュアル https://www.xserver.ne.jp/manual/man_server_waf.php