Skip to content

Repository files navigation

BcAuthGuard plugin for baserCMS

BcAuthGuard は、baserCMS 5 の管理画面ログインに対して試行制限(ロックアウト)を行い、 認証失敗イベントの監査ログを記録するためのプラグインです。

このプラグイン単体では動作しません。事前に BcAuthCommon の導入が必要です。

目的

  • 管理画面ログインのブルートフォース対策を強化する
  • ロック中拒否・IP拒否を含む認証イベントの監査性を高める
  • ロック情報を管理画面から運用できるようにする

機能

  • 一定時間内の失敗回数に応じた一時ロック
    • 初期値: 10分間に5回失敗で10分ロック
  • ログイン成功時の失敗カウンタ解放
  • 単体IP / CIDR による拒否設定
  • 認証イベントの監査ログ記録
    • login_failure
    • lockout_started
    • lockout_denied
    • blocked_ip_denied
  • Guard 固有イベントの Dblog(最近の動き)記録
    • ロック開始
    • ロック中拒否
    • IP拒否
    • ログイン成功による制限解除
  • ロック開始 / IP拒否発生時のメール通知(任意)
  • ロック中一覧の CSV 出力(検索条件を引き継ぎ)
  • 保持期間ポリシーに基づく認証ログ・解除済みロック情報の自動削除
    • コマンド(bin/cake bc_auth_guard purge)による定期実行
    • 設定画面からの手動実行

前提

  • BcAuthCommon が有効化されていること
  • 対象は baserCMS 5 系の管理画面ログイン(Admin)

管理画面

  • 認証ガード設定
  • ロック中一覧
    • Plugins > ロック中一覧
    • 検索条件: 状態 / プレフィックス / ログインID / IPアドレス
    • ロック中レコードの手動解除
    • 検索条件を引き継いだ CSV 出力

保持期間ポリシーと自動削除

  • 認証ログ(bc_auth_login_logs)と解除済みロック情報を保持日数で自動削除します。
    • logRetentionDays: 認証ログの保持日数(0で無効)
    • lockoutRetentionDays: 解除済みロック情報の保持日数(0で無効)
    • ロック中のレコードは削除対象外です。
  • 実行方法
    • コマンド: bin/cake bc_auth_guard purge
      • autoPurgeEnabled が有効な場合のみ実行(--force で強制実行)
      • cron 等で定期実行してください
    • 手動: 認証ガード設定画面の「今すぐ削除を実行」

メール通知

  • ロック開始 / IP拒否発生時に、指定アドレスへメールを送信します。
    • notifyEnabled: 通知の有効化
    • notifyLockoutStarted: ロック開始を通知
    • notifyBlockedIp: IP拒否を通知
    • notifyEmails: 通知先メールアドレス(複数可)
  • 送信失敗は認証フローを止めず、ログに記録します。

設定の要点

初期値:

  • limitWindowMinutes: 10
  • limitCount: 5
  • lockMinutes: 10
  • enableIpBlock: true
  • blockedIps: []
  • autoPurgeEnabled: false
  • logRetentionDays: 90
  • lockoutRetentionDays: 30
  • notifyEnabled: false
  • notifyLockoutStarted: true
  • notifyBlockedIp: false
  • notifyEmails: []

blockedIps の設定例:

  • 192.0.2.10
  • 198.51.100.0/24
  • 2001:db8::/32

監査ログ

本プラグインは BcAuthCommonsrc/Service/AuthLoginLogService.php を利用して、 認証イベントを bc_auth_login_logs テーブルに保存します。

通常のログイン成功 / ログアウトの監査ログは BcAuthCommon 側で処理します。

関連プラグイン

ライセンス

MIT License.

詳細は LICENSE.md を参照してください。

About

BcAuthGuard plugin for baserCMS

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages