![Сохранение номера цепочки IPtables — как мне сохранить первое правило наверху?](https://rvso.com/image/1646009/%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%B0%20%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8%20IPtables%20%E2%80%94%20%D0%BA%D0%B0%D0%BA%20%D0%BC%D0%BD%D0%B5%20%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C%20%D0%BF%D0%B5%D1%80%D0%B2%D0%BE%D0%B5%20%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%20%D0%BD%D0%B0%D0%B2%D0%B5%D1%80%D1%85%D1%83%3F.png)
Краткое содержание
Я пытаюсь понять, как сохранить правило поверх цепочки в IPtables. Я хотел бы сохранить свою пользовательскую цепочку (как правило) поверх цепочки INPUT, то есть как первое правило в цепочке.
Настраивать
- пользовательская цепочка (которую я хочу сохранить поверх цепочки INPUT)
- fail2ban, который генерирует (я думаю, создает и удаляет) цепочки на основе статуса банов
Текущее поведение:
При настройке своей пользовательской цепочки я могу установить ее как правило номер 1. Однако со временем, с изменениями в fail2ban, пользовательская цепочка в конечном итоге перемещается вниз по цепочке INPUT.
Спасибо за помощь!Извините, если на этот вопрос уже был дан ответ. К сожалению, я не смог найти его в предложенных вопросах.
решение1
Fail2ban из-заэтотстрока (например, в iptables-multiport
) добавит правило в первое место в INPUT
цепочке, которое будет интерполироваться в эту строку обычным образом (например, простая sshd jail, IPv4 и т. д.):
# <iptables> -I <chain> -p <protocol> -m multiport --dports <port> -j f2b-<name>
iptables -I INPUT -p tcp -m multiport --dports ssh -j f2b-sshd
Итак, у вас есть 2 возможности сделать это:
- либо вы создаете еще одну цепочку (например
F2B
, ), добавляете ее после первой цепочки в INPUT и указываете ее имя в конфигурации fail2ban вместо INPUT. Например, создайте новую/etc/fail2ban/action.d/iptables-common.localи перезапишите егоchain
своим для всех цепочек fail2ban:
[Init]
chain = F2B
или укажите его имя в jail.local
, например в разделе по умолчанию или для каждой тюрьмы:
[DEFAULT]
banaction = %(known/banaction)s[chain=F2B]
banaction_allports = %(known/banaction_allports)s[chain=F2B]
- Укажите собственный номер правила (по умолчанию 1) в цепочке. Поэтому вместо того, чтобы задать цепочке значение
F2B
, используйтеchain = INPUT 2
в локальной общей конфигурации или как здесь вjail.local
:
[DEFAULT]
banaction = %(known/banaction)s[chain="INPUT 2"]
banaction_allports = %(known/banaction_allports)s[chain="INPUT 2"]
В этом случае fail2ban интерполирует вышеупомянутое правило добавления (для sshd jail) следующим образом:
- iptables -I INPUT -p tcp -m multiport --dports ssh -j f2b-sshd
+ iptables -I INPUT 2 -p tcp -m multiport --dports ssh -j f2b-sshd
В обоих случаях убедитесь (например, с помощью зависимостей служб), что цепочка F2B
и ваша собственная цепочка уже добавлены в iptables (fail2ban запустится после того, как ваши изменения будут внесены).