Назад | Перейти на главную страницу

Резервное копирование моих пользовательских правил iptables, кроме правил fail2ban

Что у меня есть

У меня есть несколько настраиваемых правил iptables, блокирующих порты для всех, кроме моих доверенных IP-адресов. Вот как я их делал раньше:

iptables-save > /etc/iptables.conf
cat > /etc/network/if-up.d/iptables << EOF
#!/bin/sh
iptables-restore < /etc/iptables.conf
EOF
chmod +x /etc/network/if-up.d/iptables 

Затем я установил и настроил fail2ban. Все нормально работает.

Что я хочу

Скажем, я добавляю новое правило доверенного IP-адреса. Он появляется в iptables-save вывод, но есть также правила fail2ban, так как он работает уже некоторое время.

Мне нужно как-то разделить и сделать резервную копию моих пользовательских правил, а также оставить правила / цепочки fail2ban и т. Д. одни, потому что они все равно будут восстановлены.

Что я пробовал

Первое, что приходит в голову, проходит iptables-save через grep и отфильтровывая каждую строку, содержащую f2b-*, но это не кажется чистым или элегантным, и я не уверен, насколько он надежен.

Этот ответ предлагает создать новую цепочку, но iptables-save не может быть ограничен конкретными цепочками, только таблицы, и те кажется сдержанным.

Очистка правил fail2ban перед созданием резервной копии тоже не кажется хорошей идеей.

Я застрял, искал несколько часов безрезультатно, пожалуйста, помогите.

Это зависит (по крайней мере, от действий, которые вы используете в fail2ban).
Вы можете попробовать что-то вроде этого:

iptables-save | grep -vP '^(?:(-A f2b-|:f2b-)|-A INPUT\b.* -j f2b-)'

Он должен работать в общем случае.
И этот, чтобы проверить, есть ли что-то с f2b префикс пока есть:

iptables-save | grep -vP '^(?:(-A f2b-|:f2b-)|-A INPUT\b.* -j f2b-)' | grep f2b