Überwacht fail2ban gedrehte Protokolldateien?

9

Überwacht fail2ban weiterhin gedrehte Protokolldateien?

Zum Beispiel habe ich eine Regelüberwachung /var/log/fail2ban.log, die vom System jede Woche (7 Tage) automatisch gedreht wird. Ich möchte eine Regel haben, die in diesem Protokoll nach gesperrten IPs sucht, um Wiederholungstäter zu finden, die in den letzten 10 Tagen fünfmal gesperrt wurden. Ist das möglich?

J. Chin
quelle

Antworten:

0

Ja, fail2ban überwacht weiterhin gedrehte Protokolldateien. Vonserver/filter.py

439 ##
440 # FileContainer class.
441 #
442 # This class manages a file handler and takes care of log rotation detection.
443 # In order to detect log rotation, the hash (MD5) of the first line of the file
444 # is computed and compared to the previous hash of this line.
Mark Wagner
quelle
2
Dieser Kommentar hat nichts damit zu tun, ob das Rückfallverbot funktioniert. Ich glaube nicht (ich bin mir ziemlich sicher), dass fail2bannicht die aktuelle Datei gelesen wird. Mit der Protokollrotationserkennung können Sie feststellen fail2ban, dass sich die Datei geändert hat, und nicht die Dateien usw. lesen .1, .2.gzdie sich möglicherweise auch in diesem Ordner befinden.
Alexis Wilke
6

Man kann mehrere Protokolle auf zwei Arten (oder in einer Kombination) angeben. Sie können Dateiglob (Platzhalter) verwenden, um zu überwachende Protokolldateien (dh logpath = /var/log/*somefile.log) oder eine Liste von zu überwachenden Protokolldateien abzugleichen, die durch Leerzeichen (Leerzeichen, Tabulatoren, Zeilenumbrüche) getrennt sind, z

    logpath = /var/log/auth.log /var/log/auth.log.1

oder

    logpath = /var/log/auth.log
              /var/log/auth.log.1
Troy Morehouse
quelle
Im Grunde kann fail2ban keine neuen Protokolldateien erkennen? Ich habe es so eingestellt, dass es etwas überwacht - *. Log, wo eine neue Datei mit dem neuen Datum erstellt wird (z. B. etwas-20200101.log) und fail2ban es nicht erkennt. Gibt es Alternativen zu fail2ban (weil ich das nicht für akzeptabel halte)?
Dan
4

Die obige Antwort ist in Bezug auf Ihre Frage falsch. FileContainer verwendet nur die Erkennung der Dateiprotokollrotation, um das Lesen des Protokolls auf den Anfang der Datei zurückzusetzen, anstatt das Standardverfahren, um vom letzten Versatz fortzufahren:

class FileContainer:
   ...
       def open(self):
                self.__handler = open(self.__filename, 'rb')
                ...
                # Compare hash and inode
                if self.__hash != myHash or self.__ino != stats.st_ino:
                        logSys.info("Log rotation detected for %s" % self.__filename)
                        self.__hash = myHash
                        self.__ino = stats.st_ino
                        self.__pos = 0
                # Sets the file pointer to the last position.
                self.__handler.seek(self.__pos)

Es gibt dort keinen Code, der nach gedrehten Dateien sucht, die auch analysiert werden können.

Philippe Chaintreuil
quelle
1
Man kann mehrere Protokolle auf zwei Arten (oder in einer Kombination) angeben. Sie können Dateiglob (Platzhalter) verwenden, um zu überwachende Protokolldateien (dh logpath = /var/log/*somefile.log) oder eine Liste von zu überwachenden Protokolldateien abzugleichen, die durch Leerzeichen (Leerzeichen, Tabulatoren, Zeilenumbrüche) getrennt sind, z logpath = /var/log/auth.log /var/log/auth.log.1.
Troy Morehouse
@Troy, du hast die Antwort, es wäre gut für dich, eine tatsächliche Antwort zu schreiben, damit wir dir eine +1 geben können.
Alexis Wilke
@ AlexanderWilke, auf Ihren Vorschlag habe ich eine Antwort hinzugefügt
Troy Morehouse