fail2ban: ein schönes Logfilemonitoring
fail2ban ist ein Programm zum Monitoren von Logfiles - hauptsächlich um Einbruchsversuche zu verhindern; sprich wenn jemand versucht sowas wie Paßwortraten zu machen.
Ich habe das ganze modifiziert, so dass es a) mit Solaris 10 und b) mit Apache-Logfiles funktioiniert - und zwar so dass normale Leute nicht gestört werden, wenn aber jemand Webseiten "abrippen" will wird er geblockt.
Einiges ist mir dabei aufgefallen:
Ein "normales" Logfile-Rotieren im Sinne von "guck nach dem Datum" geht bisher nicht; der ConfigParser von Python sieht so etwas wohl nicht vor. Aber ein Reload sollte an der Stelle reichen; fail2ban schaiut dann nach welche Logfiles neu sind (wenn man mit Wildcards arbeitet) und liest diese dann ein.
Ausserdem scheint es alle Logfiles von Anfang bis Ende erstmal durchzuarbeiten. Das hat mich gewundert, weil der Prozess erstmal eine CPU ganz für sihc beanspruchte, aber nichts passierte. Erst als er quasi an die aktuellen Logfiles kam (9 Uhr und später) kam plötzlich Bewegung - er hat fliessig IPs gebannt. Ich muss mal schauen ob das gerechtfertigt ist, aber offensichtlich startet er beim Zählen beim Starten von fail2ban und nicht dann, wenn es im Logfile eingetragen ist. Das muss ich im Zweifelsfall nachfragen und eventuell ändern. Noch weiss ich nicht warum ich einen Exit-Code von 100 bekomme wenn er bannt, aber auch das bekomme ich noch raus...
Ansonsten sieht fail2ban in der 0.7er-Version zumindest für mich gut aus. Ein XML-File für die Solaris-10-SMF habe ich schon gebaut und werde ich wohl nächstens auch dem Projekt zur Verfügung stellen.
Ich habe das ganze modifiziert, so dass es a) mit Solaris 10 und b) mit Apache-Logfiles funktioiniert - und zwar so dass normale Leute nicht gestört werden, wenn aber jemand Webseiten "abrippen" will wird er geblockt.
Einiges ist mir dabei aufgefallen:
Ein "normales" Logfile-Rotieren im Sinne von "guck nach dem Datum" geht bisher nicht; der ConfigParser von Python sieht so etwas wohl nicht vor. Aber ein Reload sollte an der Stelle reichen; fail2ban schaiut dann nach welche Logfiles neu sind (wenn man mit Wildcards arbeitet) und liest diese dann ein.
Ausserdem scheint es alle Logfiles von Anfang bis Ende erstmal durchzuarbeiten. Das hat mich gewundert, weil der Prozess erstmal eine CPU ganz für sihc beanspruchte, aber nichts passierte. Erst als er quasi an die aktuellen Logfiles kam (9 Uhr und später) kam plötzlich Bewegung - er hat fliessig IPs gebannt. Ich muss mal schauen ob das gerechtfertigt ist, aber offensichtlich startet er beim Zählen beim Starten von fail2ban und nicht dann, wenn es im Logfile eingetragen ist. Das muss ich im Zweifelsfall nachfragen und eventuell ändern. Noch weiss ich nicht warum ich einen Exit-Code von 100 bekomme wenn er bannt, aber auch das bekomme ich noch raus...
Ansonsten sieht fail2ban in der 0.7er-Version zumindest für mich gut aus. Ein XML-File für die Solaris-10-SMF habe ich schon gebaut und werde ich wohl nächstens auch dem Projekt zur Verfügung stellen.