6 votos

¿Cómo puedo cambiar el formato de esta expresión por lo que se trabajará en fail2ban?

Me acaba de instalar fail2ban en mi CentOS servidor en respuesta a una fuerza bruta SSH intento. El valor predeterminado de expresiones regulares en fail2ban sshd.conf archivo no coincide con las entradas en la auditoría.de registro, que es donde SSH parece ser el registro de todos los intentos de conexión, así que estoy tratando de agregar una expresión que va de partido.

La cadena estoy tratando de partido es la siguiente:

type=USER_LOGIN msg=audit(1333630430.185:503332): user pid=30230 uid=0 auid=500
 subj=user_u:system_r:unconfined_t:s0-s0:c0.c1023 msg='acct="root": exe="/usr
/sbin/sshd" (hostname=?, addr=<HOST IP>, terminal=sshd res=failed)'

La expresión regular que estoy intentando utilizar es:

^.*addr=<HOST>, terminal=sshd res=failed.*$

He usado regextester.com y regexr para tratar de construir el regex. Los probadores me dan un partido por esta expresión:^.*addr=\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}, terminal=sshd res=failed.*$ pero fail2ban-regex se queja, si no se usa el <HOST> etiqueta en la expresión regular. Sin embargo, el uso de ^.*addr=<HOST>, terminal=sshd res=failed.*$ me da 0 partidos.

En este punto, estoy totalmente atascado y te agradecería mucho cualquier tipo de ayuda. ¿Qué estoy haciendo mal en el regex estoy tratando de usar?

7voto

chapkom Puntos 51

Aparentemente este es un caso de RTFM. Después de cavar alrededor por un tiempo, encontré una página en la fail2ban sitio web, que afirma que hace dos regex partidos por línea, uno para la marca de hora y otro para el resto de la línea siguiente a la fecha de registro. La marca de tiempo en la auditoría.registro en la Época de formato, y al parecer fue en su defecto el primer regex partido. El uso de fail2ban-regex para comparar /var/log/secure a mi fail2ban sshd.conf archivo de resultado en el comportamiento deseado.

La solución correcta era el punto de la sección correspondiente de mi cárcel.conf en /var/log/secure.

Para las personas que todavía quieren hacer sus propias expresiones regulares, esta sección tiene un montón de buena información, incluyendo este pequeño bocado que finalmente me ayudó a solucionar esto:

Para que una línea de registro para que coincida con su failregex, que realmente tiene que coincidir en dos partes: el comienzo de la línea para que coincida con una marca de tiempo patrón o expresión regular, y el resto de la línea para que coincida con su failregex. Si el failregex está anclado con una de las principales ^, entonces el ancla se refiere al inicio de el resto de la línea, después de la indicación de la hora y la intervención en el espacio en blanco.

Espero que mi RTFM momento de ayudar a alguien abajo de la línea.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: