Discussion:
Fail2ban y expresión regular
Diego H. Cancelo
2018-10-02 01:12:36 UTC
Permalink
Buenas...
Estoy renegando con fail2ban y las expresiones regulares (no son mi
fuerte), a ver si alguien me puede tirar una mano.
Estuve mirando varias paginas y los filtros ya creados en el servicio
para tomarlos como referencia pero no doy en la tecla.
Tengo varios logs como estos que genero mediante IPTABLES:

Sep 27 17:50:03 vps371545 kernel: [157374.491843] Flood detectado:
IN=eth0 OUT= MAC=00:16:3e:fb:99:f2:00:0c:db:4b:fd:00:08:00
SRC=139.99.118.123 DST=69.61.93.33 LEN=48 TOS=0x00 PREC=0x00 TTL=119
ID=15669 DF PROTO=TCP SPT=45161 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0

En jail.conf tengo:

[flooddetectado]
enabled = true
port = all
filter = flooddetectado
logpath = /var/log/messages
maxretry = 10
action = iptables-allports[name=flooddetectado, port="22,25,80,443",
protocol=tcp]

y en los filtros, dentro de flooddetectado.conf :

[Definition]
failregex = ^Flood\ detectado:\ IN=*\ OUT\=\ MAC=*\ SRC=<HOST>$
ignoreregex =

Al correr el test fail2ban-regex /var/log/messages
/etc/fail2ban/filter.d/flooddetectado.conf no detecta nada:

Running tests
=============
Use failregex line : ^Flood\ detectado:\ IN=eth0\ OUT=\ MAC=*\ SRC=<HOST>$
Use log file : /var/log/messages
Results
=======
Failregex: 0 total
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
| [77373] MONTH Day Hour:Minute:Second
`-
Lines: 77373 lines, 0 ignored, 0 matched, 77373 missed
Missed line(s): too many to print. Use --print-all-missed to print
all 77373 lines

También probe con otros filtros:
'^%(__prefix_line)Flood\ detectado:\ IN=eth0\ OUT=\ MAC=*\ SRC=<HOST>$'
^%(__line_prefix)s(\.\d+)?( error:)?\s*Flood\ detectado:\ IN=*\ OUT=\
MAC=*\ SRC=<HOST>*$
^( .*)Flood\ detectado:\ IN=*\ OUT=\ MAC=*\ SRC=<HOST>*$

Pero nada...
Si alguien me puede tirar una mano con la expresión regular a utilizar
se agradece sobremanera!
Muchas gracias.

Saludos.
Diego.

=======================================================
"Diego H. Cancelo" diego[at]cancelo[dot]com[dot]ar
*GNU/Linux User # 491743* | Huella digital:
03CA 8BAC 823A 80A1 D2FD E74F 50AB 79D7 8F1A 0DF7
GnuPG: 2048D/8F1A0DF7 | Clave GPG: solicitar por mail
=======================================================
Usá Software Libre.
j***@escomposlinux.org
2018-10-02 13:11:06 UTC
Permalink
Post by Diego H. Cancelo
Buenas...
Estoy renegando con fail2ban y las expresiones regulares (no son mi
fuerte), a ver si alguien me puede tirar una mano.
Estuve mirando varias paginas y los filtros ya creados en el servicio
para tomarlos como referencia pero no doy en la tecla.
IN=eth0 OUT= MAC=00:16:3e:fb:99:f2:00:0c:db:4b:fd:00:08:00
SRC=139.99.118.123 DST=69.61.93.33 LEN=48 TOS=0x00 PREC=0x00 TTL=119
ID=15669 DF PROTO=TCP SPT=45161 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
[flooddetectado]
enabled = true
port = all
filter = flooddetectado
logpath = /var/log/messages
maxretry = 10
action = iptables-allports[name=flooddetectado,
port="22,25,80,443",
protocol=tcp]
[Definition]
failregex = ^Flood\ detectado:\ IN=*\ OUT\=\ MAC=*\ SRC=<HOST>$
Intenta con algo más simple, por ejemplo:

failregex = Flood detectado: .* SRC=<HOST> .*$

Un saludo

JulHer
Diego H. Cancelo
2018-10-03 01:23:05 UTC
Permalink
Hola Julher.
Me funcionó perfecto, muchas gracias por tu ayuda !!!
Había que ir a lo más sencillo.... vergüenza me da :P
Muchas gracias nuevamente.

Saludos.
Diego.
Post by j***@escomposlinux.org
Post by Diego H. Cancelo
Buenas...
Estoy renegando con fail2ban y las expresiones regulares (no son mi
fuerte), a ver si alguien me puede tirar una mano.
Estuve mirando varias paginas y los filtros ya creados en el servicio
para tomarlos como referencia pero no doy en la tecla.
IN=eth0 OUT= MAC=00:16:3e:fb:99:f2:00:0c:db:4b:fd:00:08:00
SRC=139.99.118.123 DST=69.61.93.33 LEN=48 TOS=0x00 PREC=0x00 TTL=119
ID=15669 DF PROTO=TCP SPT=45161 DPT=80 WINDOW=8192 RES=0x00 SYN URGP=0
[flooddetectado]
enabled = true
port = all
filter = flooddetectado
logpath = /var/log/messages
maxretry = 10
action = iptables-allports[name=flooddetectado,
port="22,25,80,443",
protocol=tcp]
[Definition]
failregex = ^Flood\ detectado:\ IN=*\ OUT\=\ MAC=*\ SRC=<HOST>$
failregex = Flood detectado: .* SRC=<HOST> .*$
Un saludo
JulHer
Loading...