Как * добавить * правила в определение локального фильтра 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 через файл локального сайта или локального хоста, не внося никаких изменений в соответствующий глобальный файл или файл, предоставляемый дистрибутивом? Если это так, то как это сделать?

CVn
источник

Ответы:

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/issues/867 .

После слияния все должно работать следующим образом (этот пример любезно предоставлен разработчиком Сергом Брестером):

# 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>']
Раман
источник