В этой статье я опишу несколько вариантов как сохранить IPTables правила, чтобы они загружались при запуске операционной системы.
Самый лучший вариант, это установить iptables-persistent, например в Ubuntu это можно сделать так:
apt install iptables-persistent
Убедимся что сервис запускается при старте системы:
systemctl is-enabled netfilter-persistent.service
systemctl enable netfilter-persistent.service
Потом просто добавляем правила в системе и сохраним их в файлы которые загрузятся при запуске операционной системы, например в Ubuntu 18 так:
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
В Ubuntu 16 так:
service iptables-persistent save
Второй вариант, это добавить IPTables правила в файл /etc/rc.local и они выполнятся при запуске операционной системы.
Третий вариант, это создать скрипт (Ctrl+X для выхода из редактора nano, y/n и Enter для сохранения или отмены изменений):
nano -w /etc/network/if-up.d/00-iptables
chmod 744 /etc/network/if-up.d/00-iptables
Сохранить текущие IPTables правила в файлы:
mkdir /etc/iptables/
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
И добавить в скрипт:
#!/bin/sh
iptables-restore < /etc/iptables/rules.v4
ip6tables-restore < /etc/iptables/rules.v6
Смотрите также мои статьи:
Настройка IPTables
Скрипт быстрой настройки IPTables
Решение: Нет файла /etc/rc.local в Ubuntu 18