Як додати * правила * у визначенні локального фільтра fail2ban?


10

Я встановив fail2ban як упакований Debian на сервері під моїм контролем. Оскільки я мав деякі помилки з попереднього часу, я вкладаю їх у файл визначення локального фільтра, щоб вони також були враховані. Отже, я закінчую, наприклад, /etc/fail2ban/filter.d/sshd.conf та /etc/fail2ban/filter.d/sshd.local. Саме так рекомендується налаштувати, і, здається, він працює чудово, як це є.

Однак в .local файлу, я на самому ділі замінити весь список failregexes з файлу .conf. Здається, що документація не вказує на те, що існує якийсь інший спосіб, і для того, щоб він працював, я просто скопіював файл .conf, що постачається з розподілу, у файл .local та вніс деякі доповнення.

Було б дуже приємно, якщо я можу просто змінити список, отримавши користь від роботи висхідних та підтримуючих Debian, щоб бути в курсі змін змінних регекерів фільтрів для входу в журнал.

Єдине реальне вирішення, про яке я можу придуматись, - це створити дві в'язниці, в одній з використанням конфігурації, наданої розподілом, а в одній із власних. Здається, це має (досить вагомий) мінус, що вони розглядаються як незалежні в'язниці (чого можна очікувати при такому налаштуванні).

Звичайно, я не можу бути єдиним, хто хоче лише додати кілька власних несправностей до вже існуючої колекції з мінімальними клопотами щодо обслуговування.

Чи можна внести зміни до списків failregex та ignoreregex у визначенні фільтра fail2ban через файл-локальний або хост-локальний файл, не вносячи жодних змін у відповідний глобальний або наданий дистрибутив файл? Якщо це так, то як це зробити?

Відповіді:


4

Давайте розглянемо частину /etc/fail2ban/filter.d/sshd.confфайлу.

[INCLUDES]

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

Тож ви можете подумати, що можете сюди додати: after = sshd.localі змусити його прочитати такий файл; будь-які налаштування в ньому потім замінять налаштування в цьому файлі.

І це працює. За винятком того, що ви не можете просто змінити записи до failregexбудь-якої іншої директиви; ви можете лише замінити їх.

Ваше почуття правильне. Це, безумовно, недолік форматів файлів конфігурації fail2ban. Я б скаржився розробнику.


2

У мене була така ж вимога, і я виклав це як випуск. Автор, здається, працює над цим: https://github.com/fail2ban/fail2ban/isissue/867 .

Після об'єднання він повинен працювати так (цей приклад - люб’язно надано розробником, 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>

і реджекси можна додавати в тюрми так само ...

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

за результатом:

$ 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>']
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.