Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

fail2ban bantimeが48hでbantime.maxtime が1wの場合の挙動

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

【AIによる回答】

Fail2banのbantime.increment機能において、bantime = 48h(初期BAN時間)かつ maxtime = 1w(最大上限)に設定した場合、以下のような挙動になります。
1. BAN時間の推移
同じIPアドレスが繰り返しBANされるたびに、初期値の48時間からBAN期間が延長されていきます。計算にはデフォルトの計算式(指数関数的増加)またはmultipliers(倍率指定)が使用されます。 
  • 1回目: 48時間 (2日間)
  • 2回目以降: 設定された倍率(デフォルトは2の累乗)に従い、96時間、192時間……と増加を試みます。
  • 上限の適用: 計算結果が 1週間 (1w = 168時間) を超える場合、それ以上は増えず、常に 1週間 で固定されます。 
2. 各パラメータの役割
  • bantime (48h): 最初に検知した際の「ベース」となる禁止期間です。
  • maxtime (1w): どんなに繰り返し違反しても、この時間を超えて禁止されることはありません。データベースが重くなるのを防ぎつつ、長期的なブロックを実現するのに有効な推奨値の一つです。 
3. 注意点
  • データベース: この挙動には fail2ban.sqlite3 データベースによる履歴管理が必須です。
  • リセット期間: 禁止が解除された後、一定期間(通常は最新のBAN時間と同じか、dbpurgeageの設定値)再犯がない場合は、カウントがリセットされ再び48時間からスタートします。 
特定の増加倍率(例:2倍ずつ増やす、など)を指定したい場合は、bantime.multipliers を併用することをおすすめします。
タイトルとURLをコピーしました