Làm cách nào để * thêm * quy tắc trong định nghĩa bộ lọc fail2ban cục bộ?


10

Tôi đã cài đặt fail2ban do Debian đóng gói trên máy chủ dưới sự kiểm soát của tôi. Vì trước đây tôi có một số failregexes, nên tôi đưa chúng vào tệp định nghĩa bộ lọc cục bộ để chúng cũng được xem xét. Do đó, tôi kết thúc với ví dụ /etc/fail2ban/filter.d/sshd.conf và /etc/fail2ban/filter.d/sshd.local. Đây là cách nó được khuyến nghị để thiết lập và có vẻ như nó hoạt động tốt với những gì nó được.

Tuy nhiên, trong tệp .local, tôi thực sự thay thế toàn bộ danh sách failregexes từ tệp .conf. Tài liệu dường như không chỉ ra rằng có bất kỳ cách nào khác để thực hiện nó và để làm cho nó hoạt động, tôi chỉ cần sao chép tệp .conf do phân phối cung cấp vào tệp .local và thực hiện một số bổ sung.

Sẽ thật tuyệt nếu tôi có thể sửa đổi danh sách một cách đơn giản , được hưởng lợi từ công việc của những người duy trì thượng nguồn và Debian trong việc theo kịp các thay đổi đối với các biểu thức bộ lọc nhật ký được duy trì phân phối.

Cách giải quyết thực sự duy nhất tôi có thể nghĩ đến là thực sự tạo ra hai cái tù, một cái sử dụng cấu hình cung cấp phân phối và một cái sử dụng cấu hình của riêng tôi. Điều này dường như có nhược điểm (khá đáng kể) mà chúng được coi là các nhà tù độc lập (mà bạn mong đợi với một thiết lập như vậy).

Chắc chắn tôi không thể là người duy nhất muốn thêm một vài failregex của riêng mình vào một bộ sưu tập đã có sẵn, với tối thiểu rắc rối bảo trì.

Có thể sửa đổi danh sách failregex và ignoreregex trong định nghĩa bộ lọc fail2ban thông qua tệp cục bộ hoặc tệp cục bộ, mà không thực hiện bất kỳ thay đổi nào đối với tệp toàn cầu hoặc phân phối được cung cấp không? Nếu có thì phải làm thế nào?

Câu trả lời:


4

Chúng ta hãy xem một phần của /etc/fail2ban/filter.d/sshd.conftập tin.

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

Vì vậy, bạn có thể nghĩ rằng bạn có thể thêm vào đây: after = sshd.localvà khiến nó đọc một tệp như vậy; bất kỳ cài đặt nào trong đó sẽ ghi đè lên các tệp trong tệp này.

Và nó hoạt động. Ngoại trừ bạn không thể sửa đổi các mục thành failregexhoặc bất kỳ chỉ thị nào khác; bạn chỉ có thể thay thế chúng.

Cảm giác của bạn là chính xác. Đây chắc chắn là một thiếu sót của các định dạng tệp cấu hình fail2ban. Tôi sẽ phàn nàn với nhà phát triển.


2

Tôi đã có cùng một yêu cầu và đăng nó như là một vấn đề. Tác giả dường như đang làm việc với nó: https://github.com/fail2ban/fail2ban/issues/867 .

Sau khi được hợp nhất, nó sẽ hoạt động như thế này (ví dụ này là phép lịch sự của nhà phát triển, Serg Brester):

# filter test.conf:
[Definition]
failregex = failure test 1 (filter.d/test.conf) <HOST>

# filter test.local:
[Definition]
failregex = %(known/failregex)s
            failure test 2 (filter.d/test.local) <HOST>

và regexes có thể được thêm vào trong tù theo cùng một cách ...

# jail.local
[test3known-interp]
filter=test
enabled = true
failregex = %(known/failregex)s
            failure test 3 (jail.local) <HOST>

cho kết quả của:

$ bin/fail2ban-client -d -c config | grep addfail
['set', 'test3known-interp', 'addfailregex', 'failure test 1 (filter.d/test.conf)]
['set', 'test3known-interp', 'addfailregex', 'failure test 2 (filter.d/test.local)]
['set', 'test3known-interp', 'addfailregex', 'failure test 3 (jail.local) <HOST>']
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.