![fail2ban no prohíbe pero coincide con los registros](https://rvso.com/image/776300/fail2ban%20no%20proh%C3%ADbe%20pero%20coincide%20con%20los%20registros.png)
Intento crear una protección de fuerza bruta con fail2ban. Con la prueba fail2ban, coincide con los registros que quiero hacer coincidir, pero con mi prueba de fuerza bruta del sitio con más de 7 inicios de sesión fallidos, no prohíbe mi dirección IP.
filtrar:
[Definition]
failregex = <HOST>:.*"POST /login.*" 200 .*$
ignoreregex =
celda:
[shop-brute-force]
enabled = true
filter = shop-brute-force
logpath = /etc/exampleorg/shop/log/access.log
maxretry = 7
findtime = 60
bantime = 900
ignoreip =
ejemplo de registro (anonimizado con ..., 88.88.88.88 y example.org):
2022/04/01 08:09:25.413720 88.88.88.88:10729 - - [01/Apr/2022:08:09:25 +0000] "POST /login?target=%2Fshop%2F HTTP/1.1" 200 2192 "https://example.org/login?target=%2Fshop%2F" "..."
prueba:
Running tests
=============
Use failregex filter file : shop-brute-force, basedir: /etc/fail2ban
Use log file : /home/user/test.log
Use encoding : UTF-8
Results
=======
Failregex: 3 total
|- #) [# of hits] regular expression
| 1) [3] <HOST>:.*"POST /login.*" 200 .*$
`-
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
| [106] Year(?P<_sep>[-/.])Month(?P=_sep)Day 24hour:Minute:Second(?:,Microseconds)?
`-
Lines: 106 lines, 0 ignored, 3 matched, 103 missed
[processed in 0.02 sec]
Missed line(s): too many to print. Use --print-all-missed to print all 103 lines
Respuesta1
Intento crear una protección de fuerza bruta con fail2ban
failregex = ... 200 ...
Esto no es necesariamente un intento de fuerza bruta, porque 200 es una respuesta normal, eso significa OK... Normalmente códigos como 401 o 403 señalarían intentos no autorizados, o si el servicio responde con 200, escribiría una entrada de registro adicional en algún archivo de registro o diario (no necesariamente en el archivo access.log
). Pero también hay otras cosas muy cuestionables aquí, y mucho menos teóricamente uno es capaz de usar fuerza bruta usando otros métodos como POST
.
pero con mi prueba de fuerza bruta en el sitio con más de 7 inicios de sesión fallidos...
Lines: 106 lines, 0 ignored, 3 matched, 103 missed
No proporcionó el extracto completo del registro correspondiente a estos 7 intentos. Y fail2ban-regex
encuentre solo 3 coincidencias relacionadas con la suya failregex
(lo cual no es nada bueno, por ejemplo, no anclado y tiene elementos generales, sin embargo, no importa, las coincidencias no están allí). Probablemente registre algo más como una única línea de registro de su ejemplo, porque su RE básicamente coincide con eso. Por lo tanto, actualice su pregunta con un extracto de registro completo correspondiente a los 7 intentos que realizó.
Y por último, pero no menos importante, una RE mucho mejor podría verse así:
failregex = ^\s*<ADDR>:\d+ [^"]*"[A-Z]+ /login\b[^"]*" 200\b
Sin embargo, todavía no estoy seguro de que realmente lo usarías (debido al problema número 200 y otros que mencioné anteriormente).
Si solo fue una prueba (con 3 líneas de registro) y realmente ve las 7 líneas de registro en el registro real, puede verificar estoPreguntas frecuentes sobre las posibles razones por las que fail2ban no prohíbe. Por ejemplo, puede ser incorrecto backend
(configúrelo auto
para monitoreo relacionado con archivos) o una acción de prohibición inadecuada o algún error en el lado de fail2ban (consulte también el archivo fail2ban.log).