2026年5月20日
2026年5月20日
All-In-One Security(AIOS)の設定方法(ログインロックアウト・ログインURL変更・ファイアウォール)
All-In-One Security(AIOS)は、WordPress のログイン保護・ファイアウォール・ファイル変更の検知などをまとめて設定できる無料のセキュリティプラグインです。以前は「All In One WP Security & Firewall」という名前で、現在は UpdraftPlus と同じ TeamUpdraft が開発しています。有料版(Premium)もありますが、この記事の機能はすべて無料版で使えます。
この記事の画面名は、2026年11月時点の AIOS 5.5.1 で確認しています。AIOS には日本語の翻訳が用意されていないため、WordPress を日本語で使っていても AIOS の画面は英語で表示されます。この記事でも画面上の項目名は英語のまま書きます。
インストールと画面の構成
管理画面の「プラグイン」→「プラグインを追加」で「All-In-One Security」を検索してインストールし、有効化します。WP-CLI なら次のとおりです。
wp plugin install all-in-one-wp-security-and-firewall --activate
有効化すると、管理画面の左メニューに「AIOS」が追加されます。主なメニューは次のとおりです。
| メニュー | 主な機能 |
|---|---|
| Dashboard | 設定の点数(Security strength meter)、ロック中のIPアドレス(Locked IP addresses)、監査ログ |
| User Security | 管理者ユーザー名、ユーザー列挙の防止、ログインロックアウト、強制ログアウト |
| Brute Force | ログインページ名の変更、CAPTCHA、ログインのIP許可リスト、ハニーポット |
| Firewall | PHPのファイアウォールルール(XML-RPC など)、.htaccess ルール、IP・ユーザーエージェントの遮断 |
| File Security | ファイルのパーミッション確認、PHPファイル編集の無効化、初期ファイルの削除 |
| Scanner | ファイル変更の検知 |
設定は一度に全部有効にせず、1つずつ有効にしてはサイトとログインの動作を確かめてください。特にログインに関わる機能は、設定を誤ると自分が管理画面に入れなくなります。
User Security: 管理者ユーザー名とユーザー列挙
「AIOS」→「User Security」の「User accounts」タブで設定します。
- Admin user security:
adminという名前のユーザーがいる場合、「Change username」で別の名前に変更できます。総当たり攻撃はadminを狙うことが多いためです。 - Display name security: ログイン名と表示名が同じアカウントの一覧が出ます。表示名は投稿者名として公開されるので、ログイン名と違うものにしておきます(各ユーザーの「プロフィール」の「ブログ上の表示名」で変更します)。
- User enumeration settings: 「Disable user enumeration」を有効にすると、
/?author=1のようなURLなどからユーザー名を調べられるのを防ぎます(このURLは 403 エラーになります)。
User Security: ログインロックアウト
同じ「User Security」の「Login lockout」タブで、ログインに何度も失敗したIPアドレスを一定時間締め出せます。初期状態では無効です。
| 項目 | 初期値 | 内容 |
|---|---|---|
| Enable login lockout feature | 無効 | ロックアウト機能を有効にする |
| Max login attempts | 3 | 締め出すまでのログイン失敗回数 |
| Login retry time period (min) | 5 | この時間(分)内に上の回数失敗したら締め出す |
| Minimum lockout time length | 5 | 最初の締め出し時間(分)。失敗が続くと3倍ずつ延びる |
| Maximum lockout time length | 60 | 締め出し時間の上限(分) |
あわせて設定できる主な項目は次のとおりです。
- Display generic error message: ログイン失敗時に「ユーザー名が違う」「パスワードが違う」を区別しない、共通のエラーメッセージにします。
- Instantly lockout invalid usernames: 存在しないユーザー名でログインしようとしたIPアドレスをすぐに締め出します。
- Notify by email: 締め出しが起きたときにメールで知らせます。
- Login lockout IP whitelist settings: 指定したIPアドレスはロックアウトの対象外にします。事務所の固定IPアドレスなどを入れておくと、自分が締め出される事故を減らせます。
締め出されたIPアドレスは、「AIOS」→「Dashboard」の「Locked IP addresses」タブで確認・解除できます。
Brute Force: ログインページ名の変更
「AIOS」→「Brute Force」の「Rename login page」タブで、wp-login.php の代わりに使うログインURLを決められます。
- 「Enable rename login page feature」を有効にします。
- 「Login page URL」に推測されにくい文字列を入れます(例:
my-login)。 - 保存すると、新しいログインURL(パーマリンク設定が「投稿名」などなら
https://example.com/my-login)が画面に表示されます。
有効にすると、ログインしていない人が wp-login.php を開いても 404 になり、/wp-admin/ からログイン画面にも進めなくなります。新しいURLはブックマークするなどして控えておいてください。
Brute Force: CAPTCHA・IP許可リスト・ハニーポット
- CAPTCHA settings: 「Default CAPTCHA」で、Cloudflare Turnstile、Google reCAPTCHA V2、Simple math CAPTCHA(簡単な足し算)から選び、ログイン・ユーザー登録・パスワードリセット・コメント欄などに表示できます。Turnstile と reCAPTCHA は、それぞれのサービスで取得したサイトキーとシークレットキーを入力します。
- Login whitelist: 「Enable IP whitelisting」を有効にすると、指定したIPアドレス以外からはログインページにアクセスできなくなります。固定IPアドレスがある場合に使います。
- Honeypot: 「Enable honeypot on login page」を有効にすると、人には見えない入力欄をログインフォームに加え、そこに入力したボット(自動プログラム)のログインを拒否します。
Firewall: XML-RPC の遮断などPHPのルール
「AIOS」→「Firewall」の「PHP rules」タブには、XML-RPC の制御、トレース(TRACE)の無効化、プロキシ経由のコメント投稿の拒否、ログインしていない人の REST API 利用の制限などがあります。
- Completely block access to XMLRPC:
xmlrpc.phpへのアクセスをすべて遮断します。Jetpack や WordPress モバイルアプリなど XML-RPC を使う機能は動かなくなります。 - Disable pingback functionality from XMLRPC: XML-RPC は残し、ピンバックの機能だけを止めます。XML-RPC を使うサービスがある場合はこちらを選びます。
AIOS の PHP ファイアウォールは、WordPress 本体より先に読み込むように設定できます。画面上部に「Set up now」というボタンつきの案内が出た場合は、それを押すと、PHP の auto_prepend_file を使ってファイアウォールを先に読み込む設定が行われます。
Firewall: .htaccess ルール
「Firewall」の「.htaccess rules」タブでは、.htaccess にルールを書き込む機能を設定します。Apache(と互換のある LiteSpeed)でだけ効きます。Nginx のサーバーでは .htaccess が読まれないため、同じ制限はサーバーの設定で行う必要があります。
- Enable basic firewall protection:
.htaccessとwp-config.phpへの直接アクセスの拒否、サーバー署名の非表示、アップロードできるファイルサイズの上限設定を行います。 - Block access to debug.log file:
wp-content/debug.logを外から読めないようにします。 - Disable index views: ディレクトリの中身の一覧表示を止めます。
書き込む前に、現在の .htaccess のバックアップを取っておいてください。AIOS を停止すると、AIOS が書き込んだルールは削除されます。
File Security と Scanner: ファイル編集の無効化と変更の検知
- File Security の「File protection」タブ: 「Disable PHP file editing」で、管理画面からテーマやプラグインのPHPファイルを編集する機能を無効にします。同じタブの「Delete default WP files」で、
readme.htmlなどバージョンの手がかりになる初期ファイルを削除できます。 - Scanner の「File change detection」タブ: 「Enable automated file change detection scan」を有効にし、「Scan time interval」で間隔(時間・日・週)を決めると、前回からファイルが追加・削除・変更されていないかを定期的に調べます。「Send an email when a file change is detected」で、変更があったときにメールで知らせます。ログやキャッシュのように頻繁に変わるファイルは「Files/Directories to ignore」で除外します。
締め出されたときの戻し方
ロックアウトされた場合
別のIPアドレス(スマートフォンの回線など)から管理画面に入れるなら、「Dashboard」の「Locked IP addresses」で解除します。入れない場合は、次のどちらかで対応します。
wp-config.php に次の1行を /* That's all, stop editing! */ の行より前に足すと、ログインロックアウトが働かなくなります。ログインして解除したら、この行は削除してください。
define( 'AIOS_DISABLE_LOGIN_LOCKOUT', true );
WP-CLI が使えるなら、締め出しの記録を確認して削除することもできます。テーブル名の wp_ は、wp db prefix で表示される自分のサイトの接頭辞に置き換えてください。
# 締め出し中の記録を表示
wp db query "SELECT id, failed_login_ip, lockdown_date, release_date FROM wp_aiowps_login_lockdown ORDER BY id DESC LIMIT 10"
# 自分のIPアドレスの記録を削除(203.0.113.10 は自分のIPアドレスに置き換える)
wp db query "DELETE FROM wp_aiowps_login_lockdown WHERE failed_login_ip = '203.0.113.10'"
ログインURLを忘れた場合
WP-CLI で、設定されているログインページ名を確認できます。
wp option pluck aio_wp_security_configs aiowps_login_page_slug
WP-CLI もSSHも使えない場合は、FTP などで wp-content/plugins/all-in-one-wp-security-and-firewall フォルダーの名前を一時的に変えると AIOS が停止し、wp-login.php からログインできるようになります。ログイン後にフォルダー名を元に戻し、プラグインを有効化し直してください。