ipset-persistent - sysv init скрипт для загрузки наборов ipset перед запуском iptables-persistent
Я пользуюсь Debian-like системами уже более 10 лет и на протяжении всего этого времени передо мной стоял вопрос, как же правильно сохранять правила iptables во время перезагрузки. Если в Centos уже давно прямо из коробки есть обвязка для работы с набором правил, то в Debian долгое время всё ограничивалось лишь статьей на их Wiki. И, хотя мои ортодоксальные коллеги всё еще пишут iptables-restore < /etc/iptables в /etc/rc.local , относительно недавно эта статья всё-таки обновилась и в ней появилось упоминание о пакете iptables-persistent , который включает в себя init-скрипт, который как раз и занимается тем, что сохраняет и восстанавливает наборы правил.
Однако у этого скрипта есть одна серьезная проблема: он не работает, если в правилах iptables используются наборы ipset – ведь эти наборы должны быть загружены раньше, чем правила. И тут три пути: или возвращаться к варианту
ipset restore < /etc/ipset iptables-restore < /etc/iptables
или исправлять непосредственно /etc/init.d/iptables-persistent и готовиться к тому, что он будет ломаться при каждом обновлении, или написать дополнительный скрипт. Предлагаю третий вариант.
GitHub - soar/ipset-persistent
https://github.com/soar/ipset-persistent
В ближайших планах собрать deb-пакет, однако пока устанавливается вручную:
# Clone repository to some directory: cd /home/username git clone https://github.com/soar/ipset-persistent.git ./ # Copy files to system: sudo cp --parent etc/ipset/README / sudo cp --parent etc/default/ipset-persistent / sudo cp --parent etc/init.d/ipset-persistent / # Add to autostart: sudo update-rc.d ipset-persistent defaults
PS: На данный момент я связался с мейнтейнером пакета iptables-persistent – Jonathan Wiltshire, который пообещал мне рассмотреть возможность добавления этого пакета в официальный репозиторий.
ipset-persistent – sysv init скрипт для загрузки наборов ipset перед запуском iptables-persistent was originally published on soar.name