はじめに
WordPressのセキュリティ対策と聞くと、「有料のプラグインを買わないと守れない」「専門知識がないと難しい」と思っていませんか?
実は、WordPressのセキュリティにおいて最も重要なのは「お金をかけること」ではありません。「何を守るべきか」を知り、適切な設定を行うことこそが最大の防御になります。
この記事では、恐怖を煽るのではなく、プロが現場で実践している「論理的なセキュリティ設定」を、無料のセキュリティプラグイン「All-In-One Security (AIOS)」と無料のバックアッププラグイン「UpdraftPlus」を使って具体的に解説します。
専門用語は極力控え、わかりやすい言葉でお伝えします。
セキュリティ対策の基本:3つの壁で守る
セキュリティ対策は、一つの鍵をかけるだけでは不十分です。プロは以下の3つの段階(レイヤーと言います)で対策を考えます。
- 防御(Defense)
攻撃者をサイトの中に入れない。 - 検知(Detection)
万が一入られそうになったり、異変があったりした時にすぐに気づく。 - 復旧(Recovery)
何があっても元の状態に戻せるようにする。
この3つをバランスよく整えることが、安全なサイト運営の第一歩です。
重要なルール:セキュリティプラグインは「1つ」だけにする
「念には念を」と、複数のセキュリティプラグインを入れるのは絶対にやめましょう。
お互いの機能が衝突し、サイトが動かなくなったり、逆にセキュリティホール(弱点)を作ってしまったりする原因になります。
今回は、多機能で信頼性の高いAll-In-One Security (AIOS) をメインに据えます。他のプラグインでも同様のセキュリティ設定を行えれば問題ありません。
「防御」の設定:All-In-One Security (AIOS) で侵入を防ぐ
まずは、攻撃者を入り口でシャットアウトするための設定です。
AIOSは、サーバーレベル(.htaccessというファイル)と、WordPressレベル(PHPというプログラム)の二重の壁でサイトを守ってくれます。
※AIOSには「セキュリティスコア」という点数表示がありますが、これを満点にする必要はありません。無理に設定を詰め込むとサイトが使いにくくなることもあるため、これから紹介する「効果と安全性のバランスが良い設定」を目指してください。
1.ログイン周りの鉄壁化(一番重要!)
攻撃のほとんどは、管理画面へのログイン試行から始まります。ここを固めるだけで被害の大半を防げます。
①ログイン試行回数の制限(Login Lockdown)
パスワードを何通りも試す「総当たり攻撃」を防ぐため、一定回数間違えたらロック(接続拒否)します。
推奨設定:
- Max Login Attempts(最大試行回数):3回
理由:5回以上だと攻撃者にチャンスを与えすぎですし、1回だと入力ミスで自分が困ります。3回が絶妙なラインです。 - Login Retry Time Period(再試行期間):5分
理由:短い時間に集中して攻撃してくるボットを検知するためです。 - Time Length of Lockout(ロックアウト時間):60分
理由:間違えた人を1時間ブロックします。これだけ長いと、攻撃者は「効率が悪いサイトだ」と判断して諦めやすくなります。
②ログインページを隠す(Rename Login Page)
WordPressのログインページは通常 wp-login.php ですが、これを世界中の攻撃者が知っています。このURLを変更して隠してしまいます。
- メリット
自動化された攻撃ボットの99%は、デフォルトのURLしか狙いません。URLを変えるだけで、攻撃の負荷を激減させられます。 - 注意点
変更後のURLを忘れないようにブックマークしてください。また、キャッシュ系プラグインを使っている場合は、新しいログインURLを「キャッシュしない設定(除外設定)」に登録しないと、ログインできなくなるトラブルが起きやすいので注意が必要です。
③ユーザー名の特定を防ぐ(User Enumeration Prevention)
WordPressには、特定のURLを入力すると「ユーザー名(ログインID)」が表示されてしまう仕様があります。IDがバレると、あとはパスワードを破るだけになってしまいます。
AIOSの「Prevent User Enumeration」機能をオンにして、IDが外部に漏れないようにしましょう。
2.ファイアウォールの設定
ファイアウォールとは、怪しい通信を自動的に遮断する壁のことです。
①「6G」ファイアウォールルールの採用
AIOSには「5G」と「6G」という選択肢がありますが、最新の「6G Firewall Rules」を選んでください。これは、過去の攻撃データに基づいて作られた「ブラックリスト」のようなもので、悪意のある通信パターンを効率よくブロックしてくれます。
②XML-RPCの無効化
xmlrpc.php という機能は、昔は外部アプリとの連携に使われていましたが、今はほとんど使われていません。
しかし、この機能が有効なままだと、ここを裏口として攻撃されたり、他サイトへの攻撃の踏み台にされたりします。
- 推奨: Jetpackなどのプラグインでこの機能を使っていない場合は、「Completely Block Access To XMLRPC」で完全に無効化しましょう。
- もしJetpackを使っている場合は、「Disable Pingback Functionality From XMLRPC」だけをオンにして、踏み台利用だけを防ぎます。
③偽Googlebotのブロック
攻撃ボットの中には「私はGoogleの検索ロボットです」と嘘をついて侵入しようとするものがいます。
AIOSは、本当にGoogleからのアクセスかどうかを逆探知して確認し、偽物をブロックしてくれます。
3.スパム対策(コメント欄を守る)
コメントスパムはサイトを重くし、訪問者を危険なサイトへ誘導する原因になります。
- ハニーポット(Honeypot)機能
人間には見えない「隠し入力欄」をコメントフォームに作ります。スパムボットは全ての欄に入力しようとする習性があるため、この隠し欄に入力があった瞬間に「これはボットだ」と判断してブロックします。一般の読者にパズル認証などを強いることなく、裏側でスマートに守れるおすすめの機能です。
「検知」の設定:異変にいち早く気づく
どんなに守っても、100%安全とは言い切れません。大切なのは「何かが起きた時にすぐに気づけること」です。
1.ファイル変更検知(File Change Detection)
サイト内のファイルが勝手に書き換えられていないか、定期的にスキャンする機能です。しかし、この機能は「設定」が命です。
設定を間違えると、キャッシュファイルなどが変更されるたびに通知が届き、「オオカミ少年」状態になって管理者が通知を見なくなってしまいます。
重要な除外設定(Exclusion)
以下のフォルダやファイルは、正常な動作でも頻繁に変更されるため、スキャン対象から「除外」設定してください。
- キャッシュフォルダ
wp-content/cache/ - バックアップフォルダ
wp-content/updraft/(UpdraftPlusを使う場合) - ログファイル
error_logなどのログファイル
スキャンの頻度
1日1回、深夜などのアクセスが少ない時間に自動スキャンするように設定しましょう。
もし「管理画面(wp-admin)」や「システムファイル(wp-includes)」の中でファイルの変更や追加があったと通知が来たら、すぐに調査が必要です。
2.監査ログ(Audit Log)の活用
「いつ」「誰が」「ログインしたか」「設定を変えたか」を記録する機能です。
「身に覚えのない時間に管理者がログインしている」「勝手にプラグインがインストールされている」といった兆候を見逃さないために、時々ログを確認する習慣をつけましょう。
「復旧」の設定:UpdraftPlusで最後の砦を作る
ここが非常に重要なポイントです。
セキュリティプラグイン(AIOS)にもバックアップ機能はありますが、バックアップは専門のプラグイン「UpdraftPlus」に任せることを強くおすすめします。
なぜプラグインを分けるのか?(リスク分散)
もしセキュリティプラグインの設定ミスで管理画面に入れなくなったり、プラグイン自体に不具合が起きたりした場合、同じプラグインでバックアップを取っていると、復旧手段まで同時に失う可能性があります。
「守る道具」と「直す道具」は分けておくのが鉄則です。
バックアップの保管場所は「外」にする
バックアップデータを、WordPressと同じサーバーの中に保存していませんか?
これでは、サーバー自体が故障したり攻撃されたりした時に、バックアップごと消えてしまいます。
推奨設定
UpdraftPlusを使って、Google Drive や Dropbox などの「外部クラウドストレージ」に自動で転送するように設定しましょう。
これにより、サイトが跡形もなく消えてしまったとしても、クラウド上のデータから確実に復旧できます。
トラブルシューティング:もし自分が締め出されたら?
セキュリティを厳しく設定しすぎると、管理者である自分自身が「403エラー」などで締め出されてしまうことがあります。そんな時のための「緊急脱出方法」を知っておいてください。
- FTPソフトやサーバーのファイルマネージャーを使って、WordPressのフォルダにアクセスします。
wp-content/plugins/の中にあるall-in-one-wp-security-and-firewallというフォルダを探します。- このフォルダの名前を、一時的に
all-in-one-wp-security-and-firewall-stopなどに変更します。 - これでプラグインが強制的に停止(無効化)されます。
- 無事にログインできたら、フォルダ名を元に戻し、厳しすぎた設定を見直してください。
まとめ:運用こそが最強のセキュリティ
WordPressのセキュリティ対策は、高価なツールを買うことではありません。
- 防御
AIOSでログイン周りを固め、ファイアウォールで不要な通信を弾く。 - 検知
ファイル変更検知を適切に設定し、ノイズを減らして異変に気づく。 - 復旧
UpdraftPlusで、外部クラウドに隔離されたバックアップを持つ。
この3つのサイクルを回すことこそが、プロが実践している「無料でも安全なサイト」の正体です。
一度設定して終わりではなく、時々ログを見たり、不要なプラグインを削除したりといった「日々の運用」を大切にしてください。


