#概要
意図せず早くBANが解除されたので原因を探るためソースを読んでわかったことを記載する。
$T_{period}$秒間に$X$回のアクセスがあった場合$T_{ban}$秒間アクセスを弾くという仕様でmod_dosdetectorを動作させるためには下記のような事項に留意し値を設定する必要がある。
※文中で「Soft判定」という表現がありますが、これはDoSThresholdで判定された際のことを指しています。
#留意事項
- DoSThresholdには許容できるアクセスを記載する(=threshold+1から判定される)
- DoSBanPeriod中弾くという仕様を満たすにはSoft判定を使う(初回Soft判定からDoSBanPeriod時間の間Soft判定を継続するため)
- DoSBanPeriod中にリストを追い出されないようにする必要がある(DoSTableSizeを広げる)
3番目については少なくともDoSBanPeriod中にアクセスがあるユニークなIPアドレスパターンの最大値を指定する必要があります。
但し、最大値は65535で、増加させる際は注意が必要だと思われます(メモリは微々たるものだと思いますがリストは線形探索のため負荷が増加する可能性があります)
#あとがき
はじめHard判定を使っていたのですが、なぜかHard判定されてからBanPeriod以内に正常アクセスできる場合があったので調べてみたところこのような仕様になっており驚きました。
個人的にはSoft判定群、Hard判定群のようにリストが分かれていて、エージングされることで解放されるのかなと思っていました