2014-12-23 10 views
5

Sto avendo difficoltà a raggiungere fail2ban per rilevare tentativi di apache-auth fallitifail2ban filtro apache-auth non rilevare le password falliti

I filtri si presenta così:

^%(_apache_error_client)s (AH01617:)?user .* authentication failure for "\S*": Password Mismatch$ 

^%(_apache_error_client)s (AH01618:)?user .* not found(:)?\S*\s*$ 

e gli errori che si apre:

[Tue Dec 23 13:41:45.870693 2014] [auth_basic:error] [pid 2818] [client 97.171.82.123:91131] AH01617: user miati: authentication failure for "/test/file.html": Password Mismatch, referer: https://example.org/test/file.html 
[Tue Dec 23 13:41:45.870693 2014] [auth_basic:error] [pid 2818] [client 97.171.82.123:91131] AH01617: user miati: authentication failure for "/test/file.html": Password Mismatch, referer: https://example.org/test/file.html 

Nessuno dei due funziona correttamente. Mi piacerebbe farli riscrivere in modo che funzionino, ma non riesco a capire come funziona il filtro, e googling non mi sta portando da nessuna parte. La maggior parte delle guide presume che io comprenda la regex, cosa che non faccio.

Qualcuno potrebbe spiegare (o collegare a) cosa significano questi parametri nel filtro in modo che io possa modificarlo da solo?

risposta

7

Stavo avendo lo stesso problema con Fail2Ban v0.8.11 e ho trovato il tuo post circa 13 ore dopo aver postato. La mia soluzione finale era quella di utilizzare più file correnti apache-common.conf e apache-auth.conf dal repository ufficiale di GitHub. Ora cattura i tentativi di accesso e quindi auto-blocca l'indirizzo IP, anche se sto usando ufw per il banning/unbanning effettivo.

+1

Eviterei la tua domanda se la gente non ha fatto una deviazione della mia domanda .. In ogni caso, questo risolto esso. Inizialmente ho sostituito Apache-auth e questo non ha funzionato. Dopo aver fatto sia il common che l'auth, ha funzionato perfettamente e mi ha messo al bando dopo un test. – Miati

1

Il tuo messaggio di errore ha il testo in più che Fail2ban non si aspettava, a dire fail2ban ad accettare questo testo in più:

rimuovere il $ dalla fine del pattern o aggiungere .* prima della $.

Il $ nella regola indica che la riga di registro deve terminare lì tuttavia le righe di registro contengono testo dopo le parole "Password non corrispondente", rimuovendo lo $ rimuove tale restrizione. .* significa "consentire qualsiasi cosa", quindi aggiungere che consente qualsiasi cosa prima della fine della riga,

+0

cosa indicano $ e. *? – Miati

+0

'$' è l'ultimo carattere nella "mancata corrispondenza della password" fail2ban aggiungere la regola '. *' Prima o rimuovere '$' – Jasen

Problemi correlati