O fail2ban monitora os arquivos de log rotacionados?

8

O fail2ban continua monitorando arquivos de log rotacionados?

Por exemplo, eu tenho um monitoramento de regra /var/log/fail2ban.log que é rotacionado automaticamente pelo sistema toda semana (7 dias). Eu quero ter uma regra que monitore os IPs proibidos nesse log para encontrar reincidentes que foram banidos 5 vezes nos últimos 10 dias. Isso é possível?

    
por J. Chin 21.03.2013 / 17:38

3 respostas

1

Sim, o fail2ban continua monitorando arquivos de log rotacionados. De server/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.
    
por 21.03.2013 / 19:32
5

Pode-se especificar vários registros de duas maneiras (ou uma combinação). Você pode usar globs de arquivos (curingas) para corresponder arquivos de log a serem monitorados (por exemplo, logpath = /var/log/*somefile.log ) ou uma lista de arquivos de log a serem monitorados, separados por espaços em branco (espaços, tabulações, novas linhas), como

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

ou

    logpath = /var/log/auth.log
              /var/log/auth.log.1
    
por 10.03.2017 / 15:18
4

A resposta acima está incorreta em relação à sua pergunta. O FileContainer usa apenas a detecção de rotação do log de arquivo para redefinir a leitura do log de volta ao início do arquivo, em vez do procedimento padrão de continuar do último deslocamento:

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)

Não há código lá procurando por arquivos rotacionados para também analisar.

    
por 04.12.2015 / 18:02