Задать вопрос
@sailorpapay

Можно ли сделать правило с декрементом в Fail2ban? Или же альтернативный инстурмент на ubuntu?

Суть задачи.

нужен инструмент, который на основе nginx лога, сможет выявлять агентов, запрашивающих только text/html и не подтягивают img|css|js и отправлять их в бан



Есть Nginx, который будет сыпать в лог при превишение рейта.

location = / {
limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
}


(просто пример на ВП)

Есть правило для нгинкса по тиму
[nginx-req-limit]
enabled = true
filter = nginx-req-limit
action = iptables-multiport[name=ReqLimit, port="http,https", protocol=tcp]
logpath = /var/log/nginx/*error.log #путь к нжинкс логу
findtime = 600 # ищем в логе записи за 600секунд
bantime = 7200 #время на скок баним
maxretry = 10 # скок разрешено попыток (таких записей в логе за отрезок времени укказаный в findite)


Ну и

Фильтр для бана по лимиту
/nginx-req-limit.conf

[Definition]
failregex = ^\s*\[error\] \d+#\d+: \*\d+ limiting requests, excess: [\d\.]+ by zone "[^"]+", client:
ignoreregex =


Но!
Нужно условие:
Если юзер, превышает рейт по запросам к html\php страницам, но он так же тянет css, js и т.п - его не банить.
Если юзер превышает рейт только тягая html - банить фейлтубаном
  • Вопрос задан
  • 48 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы