У меня есть несколько настраиваемых правил 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