fail2ban은 회전 된 로그 파일을 모니터합니까?


9

fail2ban이 회전 된 로그 파일을 계속 모니터링합니까?

예를 들어 매주 (7 일)마다 시스템에서 자동으로 회전하는 /var/log/fail2ban.log를 모니터링하는 규칙이 있습니다. 지난 10 일 동안 5 번 금지 된 반복 위반자를 찾기 위해 해당 로그에서 금지 된 IP를 모니터링하는 규칙을 원합니다. 가능합니까?

답변:


0

예, fail2ban은 회전 된 로그 파일을 계속 모니터링합니다. 에서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.

3
그 의견은 후퇴 금지가 효과 가 있는지 여부와는 아무런 관련이 없습니다 . 나는 그것이 fail2ban현재 파일을 읽지 않는다고 생각 합니다. 감지 회전 로그는 수 있습니다 fail2ban파일이 읽을 수없는, 변경된 것을 알고 .1, .2.gz또한 해당 폴더에있을 수 있습니다, 등의 파일을.
Alexis Wilke

6

두 가지 방법 중 하나 (또는 ​​조합)로 여러 개의 로그를 지정할 수 있습니다. 파일 글롭 (와일드 카드)을 사용하여 모니터 할 로그 파일 (예 logpath = /var/log/*somefile.log:) 또는 모니터 할 로그 파일 목록을 공백 (공백, 탭, 줄 바꾸기)으로 구분 하여 일치시킬 수 있습니다.

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

또는

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

기본적으로 fail2ban은 새 로그 파일을 감지 할 수 없습니까? 새로운 날짜로 새로운 파일이 생성되는 something-*. log (예 : something-20200101.log)를 모니터링하도록 설정했으며 fail2ban이이를 감지하지 못합니다. fail2ban에 대한 대안이 있습니까?

4

귀하의 질문과 관련하여 위의 답변이 잘못되었습니다. FileContainer는 파일 오프셋 회전 만 사용하여 마지막 오프셋에서 계속되는 표준 절차 대신 파일 읽기를 파일 시작으로 다시 재설정합니다.

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)

거기에는 구문 분석 할 회전 파일을 찾는 코드가 없습니다.


1
두 가지 방법 중 하나 (또는 ​​조합)로 여러 개의 로그를 지정할 수 있습니다. 파일 glob (와일드 카드)를 사용하여 모니터 할 로그 파일 (예 logpath = /var/log/*somefile.log:) 또는 모니터 할 로그 파일 목록을 공백 (공백, 탭, 줄 바꿈) 등으로 구분 하여 일치시킬 수 있습니다 logpath = /var/log/auth.log /var/log/auth.log.1.
Troy Morehouse

@Troy, 당신은 답을 얻었습니다. 우리가 당신에게 +1을 줄 수 있도록 실제 답을 쓰는 것이 좋을 것입니다.
Alexis Wilke

@AlexisWilke, 귀하의 제안에 따라 답변을 추가했습니다
Troy Morehouse
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.