BcAuthGuard は、baserCMS 5 の管理画面ログインに対して試行制限(ロックアウト)を行い、 認証失敗イベントの監査ログを記録するためのプラグインです。
このプラグイン単体では動作しません。事前に BcAuthCommon の導入が必要です。
- 管理画面ログインのブルートフォース対策を強化する
- ロック中拒否・IP拒否を含む認証イベントの監査性を高める
- ロック情報を管理画面から運用できるようにする
- 一定時間内の失敗回数に応じた一時ロック
- 初期値: 10分間に5回失敗で10分ロック
- ログイン成功時の失敗カウンタ解放
- 単体IP / CIDR による拒否設定
- 認証イベントの監査ログ記録
login_failurelockout_startedlockout_deniedblocked_ip_denied
- Guard 固有イベントの Dblog(最近の動き)記録
- ロック開始
- ロック中拒否
- IP拒否
- ログイン成功による制限解除
- ロック開始 / IP拒否発生時のメール通知(任意)
- ロック中一覧の CSV 出力(検索条件を引き継ぎ)
- 保持期間ポリシーに基づく認証ログ・解除済みロック情報の自動削除
- コマンド(
bin/cake bc_auth_guard purge)による定期実行 - 設定画面からの手動実行
- コマンド(
- BcAuthCommon が有効化されていること
- 対象は baserCMS 5 系の管理画面ログイン(Admin)
- 認証ガード設定
- Plugins > 認証ガード設定
- 保存内容は config/setting_customize.php に反映
- ロック中一覧
- Plugins > ロック中一覧
- 検索条件: 状態 / プレフィックス / ログインID / IPアドレス
- ロック中レコードの手動解除
- 検索条件を引き継いだ CSV 出力
- 認証ログ(
bc_auth_login_logs)と解除済みロック情報を保持日数で自動削除します。logRetentionDays: 認証ログの保持日数(0で無効)lockoutRetentionDays: 解除済みロック情報の保持日数(0で無効)- ロック中のレコードは削除対象外です。
- 実行方法
- コマンド:
bin/cake bc_auth_guard purgeautoPurgeEnabledが有効な場合のみ実行(--forceで強制実行)- cron 等で定期実行してください
- 手動: 認証ガード設定画面の「今すぐ削除を実行」
- コマンド:
- ロック開始 / IP拒否発生時に、指定アドレスへメールを送信します。
notifyEnabled: 通知の有効化notifyLockoutStarted: ロック開始を通知notifyBlockedIp: IP拒否を通知notifyEmails: 通知先メールアドレス(複数可)
- 送信失敗は認証フローを止めず、ログに記録します。
- 設定定義は config/setting.php
- config/setting_customize.php で上書き可能
初期値:
limitWindowMinutes: 10limitCount: 5lockMinutes: 10enableIpBlock: trueblockedIps: []autoPurgeEnabled: falselogRetentionDays: 90lockoutRetentionDays: 30notifyEnabled: falsenotifyLockoutStarted: truenotifyBlockedIp: falsenotifyEmails: []
blockedIps の設定例:
192.0.2.10198.51.100.0/242001:db8::/32
本プラグインは BcAuthCommon の
src/Service/AuthLoginLogService.php を利用して、
認証イベントを bc_auth_login_logs テーブルに保存します。
通常のログイン成功 / ログアウトの監査ログは BcAuthCommon 側で処理します。
- ../BcAuthCommon/README.md
- ../BcAuthPasskey/README.md
- ../BcAuthSocial/README.md
- ../BcAuthGuard/README.md
MIT License.
詳細は LICENSE.md を参照してください。