Все способы заставить iptables сохраняться не работают
Я установил правила в iptables несколько месяцев назад и использовал iptables-persistent, чтобы правила сохранялись при перезагрузке. Я только что обновил свои правила и пытаюсь заставить их сохраняться, но ничего не работает, они продолжают сбрасывать на более раннюю версию. Я пытался:
Создание cronjob, который запускается при перезагрузке И каждую минуту,
#!/bin/bash
iptables-restore -c < /home/amart219/iptables.backup
Я сохранил в файл, который предположительно является местоположением правил по умолчанию, и перенастроил iptables-persistent
iptables-save > /etc/iptables/rules.v4
dpkg-reconfigure iptables-persistent
Я поместил скрипт в каталог /etc/network/if-pre-up.d/, который говорит следующее:
#!/bin/bash
/sbin/iptables-restore < /home/amart219/iptables.backup
/sbin/ip6tables-restore < /home/amart219/iptables.backup
Ни одно из этих изменений не имеет значения. Насколько я понимаю, dpkg-переконфигурировать iptables-persistent является правильным методом, но все, что я пробую, работает. Я боюсь, что когда-то в прошлом я мог попытаться сделать их постоянными другим способом, который работал до установки iptables-persistent, но в таком случае я понятия не имею, как я мог это сделать. Я запустил: tail -500 /var/log/syslog сразу после перезагрузки, чтобы посмотреть, загрузила ли система что-нибудь, но я не вижу ничего, кроме обычных данных загрузки. На этом сервере нет заданий cron, кроме того, которое я создал, пытаясь восстановить настройку iptables. Я не знаю, в этом ли проблема или нет, но если бы это было так, я не знаю, как определить, откуда она может работать, чтобы изменить ее.
Если я вручную запускаю скрипт, который я настроил в cron для восстановления настроек iptables, он работает просто отлично, но не сохраняется после перезагрузки. Cronjob настроен правильно, на отдельном сервере у меня более 40 cronjobs, я знаком с процессом.
Какие-либо предложения? Я не разборчив в методе, мне просто нужно, чтобы он работал.
1 ответ
Я использовал строку "iptables-restore" в /etc/rc.local (протестировано на Debian 8 и Ubuntu 16.04), и она работала просто отлично.