Не может понять этот пример fail2ban правило

Я пытаюсь защитить свою администраторскую и пользовательскую страницу входа в систему от атак перебором. У меня есть установка iptables и самая близкая вещь, которую я могу найти, какие полезные взгляды это:

файл тюрьмы:

[nginx-login]
enabled = true
filter = nginx-login
action = iptables-multiport[name=NoLoginFailures, port="http,https"]
logpath = /var/log/nginx*/*access*.log
bantime = 600 # 10 minutes
maxretry = 6

/etc/fail2ban/filter.d/nginx-login.conf

# Blocks IPs that fail to authenticate using web application's log in page.
# Scan access log for HTTP 200 + POST /sessions => failed log in.
[Definition]
failregex = ^<HOST> -.*POST /sessions HTTP/1\.." 200
ignoreregex =

Я, может казаться, не понимаю то, что это делает в этом отношении. В первую очередь, результат 200 средств, что вход в систему был успешен, таким образом, я не вижу, как он обнаружит недопустимые логины.

Кто-либо может объяснить, что делает этот код и почему он мог бы использоваться для остановки логинов грубой силы?

0
задан 18 March 2015 в 15:09
1 ответ

Похоже, я не могу понять, что он делает в этом отношении. Во-первых, результат 200 означает, что вход был успешным,

Нет, это просто код HTTP-статуса для OK. Таким образом, сервер не сталкивался с проблемами на протокольном уровне, а также не имел серьезных проблем с запущенным на сервере приложением (4xx и 5xx). Это только означает, что будет обслужена страница.

так что я не вижу, как она будет обнаруживать недействительные логины

Это не так. Он только подсчитывает, как часто IP-адрес вызывал URL /сессия через POST (отправил HTML-форму).

failregex = ^<HOST> -.*POST /sessions HTTP/1\.." 200

После 6-ти вхождений этой строки в лог (таким образом, пользователь отправил форму 6 раз), пользователь получает блокировку.

maxretry = 6

Время блокировки - bantime, а время fail2ban выглядит в обратном направлении - findtime. Оба значения по умолчанию равны 600 секундам, т.е. 5 минутам.

Для запрета только неудачных входов, их нужно регистрировать со своего приложения, так как веб-сервер сейчас не регистрирует, если вход (который обрабатывается веб-приложением) завершился неудачно или успешно.

.
1
ответ дан 4 December 2019 в 17:00

Теги

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