Перейти к основному содержимому
  1. Projects/

ipset-persistent — sysv init скрипт для ipset

·235 слов·2 минут· loading · loading ·
Sysadmin Linux Firewall
This project is not in active development anymore

Я пользуюсь Debian-like системами уже более 10 лет и на протяжении всего этого времени передо мной стоял вопрос, как же правильно сохранять правила iptables во время перезагрузки. Если в Centos уже давно прямо из коробки есть обвязка для работы с набором правил, то в Debian долгое время всё ограничивалось лишь статьей на их Wiki. И, хотя мои ортодоксальные коллеги всё еще пишут iptables-restore < /etc/iptables в /etc/rc.local, относительно недавно эта статья всё-таки обновилась и в ней появилось упоминание о пакете iptables-persistent, который включает в себя init-скрипт, который как раз и занимается тем, что сохраняет и восстанавливает наборы правил.

Однако у этого скрипта есть одна серьезная проблема: он не работает, если в правилах iptables используются наборы ipset — ведь эти наборы должны быть загружены раньше, чем правила. И тут три пути. Или возвращаться к варианту:

1ipset restore < /etc/ipset
2iptables-restore < /etc/iptables

…, или исправлять непосредственно /etc/init.d/iptables-persistent и готовиться к тому, что он будет ломаться при каждом обновлении, или написать дополнительный скрипт. Предлагаю третий вариант.

В ближайших планах собрать deb-пакет, однако пока устанавливается вручную:

 1# Clone repository to some directory:
 2git clone https://github.com/soar/ipset-persistent.git
 3
 4# Copy files to system:
 5sudo cp --parent etc/ipset/README /
 6sudo cp --parent etc/default/ipset-persistent /
 7sudo cp --parent etc/init.d/ipset-persistent /
 8
 9# Add to autostart:
10sudo update-rc.d ipset-persistent defaults
@soar
Автор
@soar
Senior SRE/DevOps engineer

Related

Удалённая переустановка linux на примере Debian
·1616 слов·8 минут· loading · loading
Sysadmin Linux
Что если есть только удаленный доступ и полностью распределенный жесткий диск?