Fail2ban surveille-t-il les fichiers journaux pivotés?

9

Fail2ban continue-t-il de surveiller les fichiers journaux pivotés?

Par exemple, j'ai une règle de surveillance /var/log/fail2ban.log qui est automatiquement tournée par le système chaque semaine (7 jours). Je veux avoir une règle qui surveille les adresses IP interdites dans ce journal pour trouver les récidivistes qui ont été interdits 5 fois au cours des 10 derniers jours. Est-ce possible?

J. Chin
la source

Réponses:

0

Oui, fail2ban continue de surveiller les fichiers journaux pivotés. Deserver/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
la source
3
Ce commentaire n'a rien à voir avec le fait que l' interdiction de récidive fonctionnera. Je ne pense pas (je suis assez sûr) que fail2bancela ne lit pas mais le fichier actuel. Le journal permet de détecter la rotation fail2bande savoir que le fichier a été modifié, de ne pas lire les .1, .2.gzfichiers , etc. qui peuvent aussi être dans ce dossier.
Alexis Wilke
6

On peut spécifier plusieurs journaux de deux manières (ou une combinaison). Vous pouvez utiliser des globes de fichiers (caractères génériques) pour faire correspondre les fichiers journaux à surveiller (c.-à-d. logpath = /var/log/*somefile.log) Ou une liste de fichiers journaux à surveiller, séparés par des espaces (espaces, tabulations, sauts de ligne) tels que

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

ou

    logpath = /var/log/auth.log
              /var/log/auth.log.1
Troy Morehouse
la source
Donc, fondamentalement, fail2ban ne peut pas détecter de nouveaux fichiers journaux? Je l'ai configuré pour surveiller quelque chose - *. Log où un nouveau fichier est créé avec la nouvelle date (comme quelque chose-20200101.log) et fail2ban ne le détectera pas. Existe-t-il des alternatives à fail2ban (car je ne pense pas que ce soit acceptable)?
dan
4

La réponse ci-dessus est incorrecte en ce qui concerne votre question. FileContainer utilise uniquement la détection de rotation des journaux de fichiers pour réinitialiser la lecture des journaux au début du fichier au lieu de la procédure standard de poursuite à partir du dernier décalage:

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)

Il n'y a aucun code qui recherche les fichiers tournés pour les analyser également.

Philippe Chaintreuil
la source
1
On peut spécifier plusieurs journaux de deux manières (ou une combinaison). Vous pouvez utiliser des globes de fichiers (caractères génériques) pour faire correspondre les fichiers journaux à surveiller (c.-à-d. logpath = /var/log/*somefile.log) Ou une liste de fichiers journaux à surveiller, séparés par des espaces (espaces, tabulations, sauts de ligne) tels que logpath = /var/log/auth.log /var/log/auth.log.1.
Troy Morehouse
@Troy, vous avez la réponse, il serait bon que vous écriviez une réponse réelle afin que nous puissions vous donner un +1.
Alexis Wilke
@AlexisWilke, selon votre suggestion, j'ai ajouté une réponse
Troy Morehouse