Сохранение номера цепочки IPtables — как мне сохранить первое правило наверху?

Сохранение номера цепочки IPtables — как мне сохранить первое правило наверху?

Краткое содержание

Я пытаюсь понять, как сохранить правило поверх цепочки в 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 возможности сделать это:

  1. либо вы создаете еще одну цепочку (например 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. Укажите собственный номер правила (по умолчанию 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 запустится после того, как ваши изменения будут внесены).

Связанный контент