¿Cómo * agregar * reglas en la definición del filtro local fail2ban?

10

He instalado fail2ban empaquetado por Debian en un servidor bajo mi control. Como tengo algunos fallos de expresiones anteriores, los estoy colocando en el archivo de definición de filtro local para que también se tengan en cuenta. Por lo tanto, termino con, por ejemplo, /etc/fail2ban/filter.d/sshd.conf y /etc/fail2ban/filter.d/sshd.local. Esta es la forma en que se recomienda configurar y parece estar funcionando bien para lo que es.

Sin embargo, en el archivo .local, en realidad estoy reemplazando la lista completa de errores de expresión del archivo .conf. La documentación no parece indicar que haya otra forma de hacerlo, y para que funcione, simplemente copié el archivo .conf suministrado por la distribución en un archivo .local e hice algunas adiciones.

Sería realmente bueno si simplemente pudiera modificar la lista, beneficiándome del trabajo de los encargados de mantenimiento y Debian para estar al tanto de los cambios en las expresiones regulares de filtro de entrada de registro mantenidas por distribución.

La única solución real que se me ocurre es crear dos cárceles, una con la configuración proporcionada por la distribución y otra con la mía. Esto parecería tener el inconveniente (bastante significativo) de que son tratados como cárceles independientes (lo que cabría esperar con tal configuración).

Seguramente no puedo ser el único que quiera agregar algunos errores propios a una colección ya existente, con un mínimo de problemas de mantenimiento.

¿Es posible enmendar las listas de failregex e ignoreregex dentro de una definición de filtro fail2ban a través de un archivo local del sitio o local del host, sin realizar ningún cambio en el archivo global o distribuido correspondiente? Si es así, ¿cómo hacerlo?

un CVn
fuente

Respuestas:

4

Echemos un vistazo a parte del /etc/fail2ban/filter.d/sshd.confarchivo.

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

Por lo tanto, podría pensar que podría agregar aquí: after = sshd.localy hacer que lea dicho archivo; cualquier configuración en él anularía las de este archivo.

Y funciona. Excepto que no puede simplemente modificar las entradas failregexo cualquier otra directiva; solo puedes reemplazarlos.

Tu sentimiento es correcto. Esta es definitivamente una deficiencia de los formatos de archivo de configuración fail2ban. Me quejaría con el desarrollador.

Michael Hampton
fuente
2

Tenía el mismo requisito y lo publiqué como un problema. El autor parece estar trabajando en ello: https://github.com/fail2ban/fail2ban/issues/867 .

Una vez fusionado, debería funcionar así (este ejemplo es cortesía del desarrollador, Serg Brester):

# filter test.conf:
[Definition]
failregex = failure test 1 (filter.d/test.conf) <HOST>

# filter test.local:
[Definition]
failregex = %(known/failregex)s
            failure test 2 (filter.d/test.local) <HOST>

y las expresiones regulares se pueden agregar en las cárceles de la misma manera ...

# jail.local
[test3known-interp]
filter=test
enabled = true
failregex = %(known/failregex)s
            failure test 3 (jail.local) <HOST>

para un resultado de:

$ bin/fail2ban-client -d -c config | grep addfail
['set', 'test3known-interp', 'addfailregex', 'failure test 1 (filter.d/test.conf)]
['set', 'test3known-interp', 'addfailregex', 'failure test 2 (filter.d/test.local)]
['set', 'test3known-interp', 'addfailregex', 'failure test 3 (jail.local) <HOST>']
Raman
fuente