Рейтинг:0

Как настроить fail2ban для порта TCP и UDP?

флаг cn

Я хочу запретить некоторые DNS-запросы, поступающие на мой названный сервер. Обычно сервер прослушивает TCP- и UDP-порт 53 и регистрирует запросы на /var/log/имя/query.log файл. Итак, я добавил следующую запись в конец /etc/fail2ban/jail.local:

[имя-xyz]
включено = верно
порт = домен
фильтр = xyz
logpath = /var/log/named/query.log
бантайм = 1д
действие = %(действие_)с

Однако это запрещает только TCP-порт (по умолчанию). Чтобы также запретить порт UDP, мне нужно добавить еще одну запись:

[имя-xyz-udp]
включено = верно
порт = домен
протокол = UDP
фильтр = xyz
logpath = /var/log/named/query.log
бантайм = 1д
действие = %(действие_)с

Наличие одинаковых записей может не показаться излишним, однако у него есть недостаток, заключающийся в регистрации двойных записей для один "плохой" запрос к fail2ban.log такой файл:

fail2ban.filter [11619]: INFO [named-xyz-udp] Found a.b.c.d
fail2ban.filter [11619]: INFO [named-xyz] Found a.b.c.d

Как я могу просто запретить UDP/53 и TCP/53 одновременно с единственное правило в тюрьма.местный? А протокол = все линия не работает в моем случае.

фейл2бан версия v0.11.1.

Рейтинг:0
флаг co

А протокол = все линия не работает в моем случае.

Это зависит от действия запрета, которое вы используете. Что вы подразумеваете под "не работает"?

Для действий (например, iptables-allports принятие все) может быть достаточно установить это таким образом для другого действия (которое принимает несколько протоколов, например nftables), его можно установить с помощью протокол = tcp,udp (или любой другой разделитель, который им понадобится вместо запятой).
Для действий, которые не принимают несколько протоколов (например, iptables-мультипорт) нужно указать 2 действия, вот пример, работающий для последних версий fail2ban - https://github.com/fail2ban/fail2ban/blob/10cd81552538fa950cefc32787b9f82b5ee1b998/config/jail.conf#L748-L749

Для более старых версий fail2ban, которые не принимают интерполяцию %(по умолчанию/действие_)s или несколько параметров [...][...] вам нужно установить что-то вроде этого:

действие = %(action_)s[name=%(__name__)s-tcp, протокол="tcp"]
         %(action_)s[name=%(__name__)s-udp, протокол="udp"]

(или на fail2ban 0.9.x вообще заменить %(действие_)с с этими полное определение из раздела по умолчанию):

action = %(banaction)s[name=%(__name__)s-tcp, actionname=%(__name__)s-tcp, protocol="tcp", port="%(port)s", chain="%(chain )с"]
         %(banaction)s[name=%(__name__)s-udp, actionname=%(__name__)s-udp, protocol="udp", port="%(port)s", chain="%(chain)s "]
FedKad avatar
флаг cn
Извините, я не смог уследить за вашим ответом, так как я не эксперт по fail2ban. Что бы вы предложили для изменения первой записи (в моем вопросе)? Ввод двухстрочного `action =`, как вы предложили, дает ошибку: `option 'action' в разделе 'named-xyz' уже существует`
sebres avatar
флаг co
вам нужно указать 2 действия с одним параметром `action`, см. мой пример - так 2 строки, но вторая строка без `action =`, только с несколькими пробелами; и убедитесь, что вы еще не указали «действие» в разделе для тюрьмы «named-xyz».

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.