Có màn hình fail2ban xoay tập tin nhật ký?


9

Fail2ban có tiếp tục theo dõi các tệp nhật ký được xoay không?

Ví dụ: tôi có giám sát quy tắc /var/log/fail2ban.log được hệ thống tự động xoay mỗi tuần (7 ngày). Tôi muốn có một quy tắc giám sát các IP bị cấm trong nhật ký đó để tìm ra những người vi phạm lặp lại đã bị cấm 5 lần trong 10 ngày qua. Điều đó có thể không?

Câu trả lời:


0

Có, fail2ban tiếp tục theo dõi các tệp nhật ký được xoay. Từ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.

2
Nhận xét đó không liên quan gì đến việc lệnh cấm tái phạm có hiệu quả hay không. Tôi không nghĩ (tôi khá chắc chắn) fail2bankhông đọc nhưng tập tin hiện tại. Nhật ký luân phiên phát hiện cho phép fail2banđể biết rằng các tập tin đã thay đổi, không phải để đọc .1, .2.gzvv file mà cũng có thể trong thư mục đó.
Alexis Wilke

6

Người ta có thể chỉ định nhiều nhật ký theo một trong hai cách (hoặc kết hợp). Bạn có thể sử dụng các tập tin (ký tự đại diện) để khớp với các tệp nhật ký để theo dõi (tức là logpath = /var/log/*somefile.log) hoặc một danh sách các tệp nhật ký cần theo dõi, cách nhau bởi khoảng trắng (dấu cách, tab, dòng mới), chẳng hạn như

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

hoặc là

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

Vì vậy, về cơ bản fail2ban không thể phát hiện các logfiles mới? Tôi đã cài đặt nó để theo dõi một cái gì đó - *. Đăng nhập nơi một tệp mới được tạo với ngày mới (chẳng hạn như-20200101.log) và fail2ban sẽ không phát hiện ra nó. Có sự thay thế nào cho fail2ban không (vì tôi không nghĩ điều này có thể chấp nhận được)?
dan

4

Câu trả lời trên không chính xác liên quan đến câu hỏi của bạn. FileContainer chỉ sử dụng phát hiện xoay vòng nhật ký tệp để đặt lại việc đọc nhật ký trở lại bắt đầu của tệp thay vì quy trình chuẩn tiếp tục từ lần bù cuối cùng:

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)

Không có mã nào trong đó tìm kiếm các tệp được xoay để phân tích cú pháp.


1
Người ta có thể chỉ định nhiều nhật ký theo một trong hai cách (hoặc kết hợp). Bạn có thể sử dụng các tập tin (ký tự đại diện) để khớp các tệp nhật ký để theo dõi (tức là logpath = /var/log/*somefile.log) hoặc một danh sách các tệp dữ liệu để theo dõi, được phân tách bằng khoảng trắng (dấu cách, tab, dòng mới), chẳng hạn như logpath = /var/log/auth.log /var/log/auth.log.1.
Troy Morehouse

@Troy, bạn đã có câu trả lời, sẽ tốt cho bạn khi viết câu trả lời thực tế để chúng tôi có thể cho bạn +1.
Alexis Wilke

@AlexisWilke, theo đề nghị của bạn, tôi đã thêm một câu trả lời
Troy Morehouse
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.