Come * aggiungere * regole nella definizione del filtro fail2ban locale?


10

Ho installato fail2ban come impacchettato da Debian su un server sotto il mio controllo. Dal momento che ho alcuni failregex di prima, li sto inserendo nel file di definizione del filtro locale in modo che vengano considerati anche. Quindi, finisco con ad esempio /etc/fail2ban/filter.d/sshd.conf e /etc/fail2ban/filter.d/sshd.local. Questo è il modo in cui si consiglia di impostare e sembra funzionare bene per quello che è.

Tuttavia, nel file .local, sto effettivamente sostituendo l'intero elenco di failregex dal file .conf. La documentazione non sembra indicare che ci sia un altro modo per farlo, e per farlo funzionare, ho semplicemente copiato il file .conf fornito dalla distribuzione in un file .local e fatto alcune aggiunte.

Sarebbe davvero bello se potessi semplicemente modificare l'elenco, beneficiando del lavoro dei manutentori upstream e Debian nel rimanere al passo con le modifiche alle regex del filtro delle voci di log mantenute dalla distribuzione.

L'unica vera soluzione che mi viene in mente è quella di creare effettivamente due jail, uno usando la configurazione fornita dalla distribuzione e uno usando il mio. Ciò sembrerebbe avere il lato negativo (abbastanza significativo) del fatto che sono trattati come jail indipendenti (cosa che ti aspetteresti con una configurazione del genere).

Sicuramente non posso essere il solo a voler aggiungere qualche mio errore di risposta a una raccolta già esistente, con un minimo di problemi di manutenzione.

È possibile modificare gli elenchi di failregex e ignoreregex all'interno di una definizione di filtro fail2ban attraverso un file site-site o host-local, senza apportare modifiche al file globale o fornito dalla distribuzione corrispondente? Se lo è, allora come farlo?

Risposte:


4

Diamo un'occhiata a parte del /etc/fail2ban/filter.d/sshd.conffile.

[INCLUDES]

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

Quindi potresti pensare di poter aggiungere qui: after = sshd.locale far sì che legga un tale file; qualsiasi impostazione in esso avrebbe quindi la precedenza su quelle contenute in questo file.

E funziona Solo che non puoi semplicemente modificare le voci failregexo qualsiasi altra direttiva; puoi solo sostituirli.

La tua sensazione è corretta. Questo è sicuramente un difetto dei formati di file di configurazione fail2ban. Mi lamenterei con lo sviluppatore.


2

Avevo lo stesso requisito e l'ho pubblicato come problema. Sembra che l'autore ci stia lavorando: https://github.com/fail2ban/fail2ban/issues/867 .

Una volta unito, dovrebbe funzionare in questo modo (questo esempio è per gentile concessione dello sviluppatore, 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>

e le regex possono essere aggiunte nelle carceri allo stesso modo ...

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

per un risultato di:

$ 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>']
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.