Как сохранить IPTables правила
В этой статье я опишу несколько вариантов как сохранить 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
- Нажмите, чтобы открыть на Facebook (Открывается в новом окне)
- Нажмите, чтобы поделиться на Twitter (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Pinterest (Открывается в новом окне)
- Нажмите, чтобы поделиться на LinkedIn (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Tumblr (Открывается в новом окне)
- Нажмите, чтобы поделиться в Telegram (Открывается в новом окне)
- Ещё
Как навсегда сохранить правила брандмауэра iptables на Linux

Мануал
Автор cryptoparty На чтение 5 мин Опубликовано 26.08.2020
Я использую сервер Debian / Ubuntu Linux.
Как сохранить правила iptables на постоянной основе в Linux с помощью интерфейса командной строки?
Как сохранить правила IPv4 и IPv6 iptables на облачном сервере Debian Linux?
Постоянное сохранение правил брандмауэра iptables на Linux
Вам нужно использовать следующие команды, чтобы навсегда сохранить правила брандмауэра iptables:
- Команда iptables-save или ip6tables-save – сохраняет или выгружает содержимое таблиц IPv4 или IPv6 в легко анализируемом формате на экран или в указанный файл.
- Команда iptables-restore или команда ip6tables-restore – Восстановление правил и таблиц брандмауэра IPv4 или IPv6 из заданного файла на Linux.
Шаг 1 – Откройте терминал
Откройте приложение терминала и введите следующие команды.
Для входа на удаленный сервер с помощью команды ssh:
Вы должны ввести следующую команду от пользователя root, используя команду sudo или su.
Шаг 2. Сохраните правила брандмауэра Linux для IPv4 и IPv6.
Debian и Ubuntu Linux:
$ sudo /sbin/iptables-save > /etc/iptables/rules.v4
## IPv6 ##
$ sudo /sbin/ip6tables-save > /etc/iptables/rules.v6
$ sudo /sbin/iptables-save > /etc/sysconfig/iptables
## IPv6 ##
$ sudo /sbin/ip6tables-save > /etc/sysconfig/ip6tables
Отображение сохраненных правил на Linux
Мы можем отобразить сохраненный файл с помощью команды cat или выполнить поиск с помощью команды grep/egrep:
*mangle :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] COMMIT *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 10.8.0.0/24 -m policy --pol none --dir out -j MASQUERADE COMMIT *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p esp -j ACCEPT -A INPUT -p ah -j ACCEPT -A INPUT -p icmp --icmp-type echo-request -m hashlimit --hashlimit-upto 5/s --hashlimit-mode srcip --hashlimit-srcmask 32 --hashlimit-name icmp-echo-drop -j ACCEPT -A INPUT -p udp -m multiport --dports 21194 -j ACCEPT -A INPUT -p tcp -s 1xx.yy.zz.ttt,10.8.0.0/24,10.8.1.0/24 --dport 22 -m conntrack --ctstate NEW -j ACCEPT -A INPUT -p tcp --dport 3128 -d 10.8.0.1 -s 10.8.0.0/24,10.8.1.0/24 -m conntrack --ctstate NEW -j ACCEPT -A INPUT -d 172.xx.yyy.zzz -p udp --dport 53 -j ACCEPT -A INPUT -d 172.xx.yyy.z -p udp --dport 53 -j ACCEPT -A INPUT -i eth0 -m limit --limit 5/min -j LOG --log-prefix "[iptables denied] " --log-level 7 -A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j DROP -A OUTPUT -d 10.8.0.0/24 -m owner --gid-owner 15000 -j DROP -A FORWARD -s 10.8.0.0/24 -d 169.254.0.0/16 -j DROP -A OUTPUT -d 169.254.0.0/16 -m owner --gid-owner 15000 -j DROP -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -p tcp --dport 445 -j DROP -A FORWARD -p udp -m multiport --ports 137,138 -j DROP -A FORWARD -p tcp -m multiport --ports 137,139 -j DROP -A FORWARD -m conntrack --ctstate NEW -s 10.8.0.0/24 -m policy --pol none --dir in -j ACCEPT -A FORWARD -m limit --limit 5/min -j LOG --log-prefix "[iptables forward denied] " --log-level 7 COMMIT
Шаг 3. Восстановление правил брандмауэра Linux для IPv4 и IPv6.
Мы просто поменяем приведенные выше команды в обратном порядке для каждой операционной системы:
Шаг 4 – Установка пакета iptables-persistent для Debian или Ubuntu Linux
Обратите внимание, что следующая команда будет конфликтовать с интерфейсами iptables, такими как команда ufw или firewall-cmd. Избегайте использования следующих пакетов, если вы используете эти инструменты.
Нам нужно установить iptables-persistent.
Он будет действовать как загрузчик для правил Netfilter, плагина iptables netfilter-persistent, который является загрузчиком для конфигурации Netfilter с использованием архитектуры на основе плагинов.
Другими словами, автоматическая загрузка сохраненных правил iptables из вышеуказанных файлов.
Введите следующую команду apt или команду apt-get:
$ sudo apt install iptables-persistent
## или ##
$ sudo apt-get install iptables-persistent
Убедитесь, что службы включены на Debian или Ubuntu, используя команду systemctl:
$ sudo systemctl is-enabled netfilter-persistent.service
Если нет, то включите:
$ sudo systemctl enable netfilter-persistent.service
Проверим статус:
$ sudo systemctl status netfilter-persistent.service
● netfilter-persistent.service - netfilter persistent configuration Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; vendor preset: enabled) Drop-In: /etc/systemd/system/netfilter-persistent.service.d └─iptables.conf Active: active (exited) since Thu 2020-08-20 19:24:22 UTC; 3 days ago Docs: man:netfilter-persistent(8) Main PID: 577 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 4620) Memory: 0B CGroup: /system.slice/netfilter-persistent.service Aug 20 19:24:21 nixcraft-vpn-1 systemd[1]: Starting netfilter persistent configuration. Aug 20 19:24:21 nixcraft-vpn-1 netfilter-persistent[583]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start Aug 20 19:24:21 nixcraft-vpn-1 netfilter-persistent[583]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start Aug 20 19:24:22 nixcraft-vpn-1 systemd[1]: Finished netfilter persistent configuration.
Шаг 5 – Установите пакет iptables-services для RHEL / CentOS
По умолчанию RHEL / CentOS 7 или 8 поставляется с firewalld.
Если вам нужен старый добрый файловый брандмауэр, введите следующие команды:
# Отключение firewalld #
$ sudo systemctl stop firewalld.service
$ sudo systemctl disable firewalld.service
$ sudo systemctl mask firewalld.service
#Установка пакета##
$ sudo yum install iptables-services
$ sudo systemctl enable iptables
$ sudo systemctl enable ip6tables
$ sudo systemctl status iptables
● iptables.service - IPv4 firewall with iptables Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled) Active: active (exited) since Mon 2020-08-24 09:29:59 EDT; 3s ago Process: 8259 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS) Main PID: 8259 (code=exited, status=0/SUCCESS) Aug 24 09:29:59 centos-8-cloud.sweet.home systemd[1]: Starting IPv4 firewall with iptables. Aug 24 09:29:59 centos-8-cloud.sweet.home iptables.init[8259]: iptables: Applying firewall rules: [ OK ] Aug 24 09:29:59 centos-8-cloud.sweet.home systemd[1]: Started IPv4 firewall with iptables.
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий Отменить ответ

Поддержать нас
- Аудит ИБ (49)
- Вакансии (12)
- Закрытие уязвимостей (110)
- Книги (27)
- Мануал (2 385)
- Медиа (66)
- Мероприятия (39)
- Мошенники (23)
- Обзоры (835)
- Обход запретов (34)
- Опросы (3)
- Скрипты (122)
- Статьи (366)
- Философия (133)
- Юмор (19)
Наш Telegram

Социальные сети
Поделиться
Anything in here will be replaced on browsers that support the canvas element
- Как проверить IPv4-адреса в скрипте 25.12.2023
Проверка IP-адресов – распространенная задача в сетевом и системном администрировании. В этом уроке мы узнаем, как проверить IPv4-адреса с помощью скрипта оболочки. Это особенно полезно в ситуациях, когда нужно убедиться, что пользовательский ввод или данные из другого источника имеют правильный формат IPv4. IPv4 против IPv6: В чем разница между IPv4 и IPv6 Понимание формата адресов […]
Deep Packet Inspection (DPI) – это передовая техника сетевой фильтрации. Если традиционные методы мониторинга и фильтрации сети позволяют лишь поверхностно изучить заголовки пакетов, то DPI проникает глубже, тщательно анализируя фактическое содержание данных в пакетах. Такая детальная проверка позволяет получить полное представление о потоке данных, что дает возможность определить не только тип или категорию данных, но […]
Обратный инжиниринг, термин, часто ассоциируемый с технологическими инновациями и решением проблем, включает в себя сложный процесс раскрытия дизайна, структуры или функциональности продукта, системы или части технологии, чтобы понять их внутреннюю работу. Эта многогранная дисциплина играет ключевую роль в различных отраслях промышленности, способствуя инновациям, обеспечивая совместимость и способствуя продвижению вперед. Сегодня обратный инжиниринг услуги выполняют одни из лучших […]
Компания “Автозайм”: надежное залоговое кредитование в СПб и по всей России “Автозайм” представляет собой современный автоломбард, который оперирует в различных городах России, включая Санкт-Петербург – https://spb.carzaem.ru/autolombard. Компания специализируется на предоставлении кредитов под залог автомобилей, предлагая клиентам удобные и прозрачные условия. Основные преимущества Быстрый и простой процесс. Процедура получения займа в “Автозайм” максимально упрощена. Клиенты могут подать […]
Мы рассмотрим подписание коммитов и тегов ключом GPG, а также отправку и получение открытых ключей GPG на сервер ключей для проверки. Шпаргалка Неподписанный коммит: Подписанный коммит: Если ваши адреса электронной почты git и gpg-ключа отличаются, это приведет к неудаче, пока вы не настроите свой git signingkey Неподписанный тег: Подписанный тег: Переопределение параметров конфигурации автоподписания: Импорт […]
Записки IT специалиста
Основы iptables для начинающих. Как сохранить правила и восстановить их при загрузке
- Автор: Уваров А.С.
- 05.12.2021
Для тех, кто только начинает изучать iptables неприятной неожиданностью оказывается тот факт, что правила брандмауэра не сохраняются и не восстанавливаются при перезагрузке системы. Фактически это означает полностью открытый брандмауэр и такое положение дел нас, естественно, не устраивает. К счастью, в Linux существует несколько способов сохранения единожды введенных правил iptables, поэтому следует изучить их и выбрать наиболее подходящий для вашей конфигурации. А о всех плюсах и минусах мы расскажем в данной статье.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
В свое время один из основателей UNIХ Деннис Ритчи сказал: "UNIX прост. Но надо быть гением, чтобы понять его простоту." Все это в полной мере можно применить и к преемнику UNIX-систем - Linux и иногда эта простота ставит в тупик. Хорошим примером здесь является iptables - простой и мощный брандмауэр, уже не первый год, стоящий на страже сетевых рубежей системы. И когда выясняется, что он не умеет сохранять и восстанавливать правила, то многие испытывают весьма противоречивые ощущения.
Вопреки распространенному заблуждению iptables не является брандмауэром, а предоставляет удобный интерфейс к netfilter, который является настоящим брандмауэром Linux-систем, его задача - интерпретировать команды пользователя на более низкие уровни и вывести информацию оттуда в удобном для восприятия варианте. Единственный способ взаимодействия с iptables - это интерфейс командной строки - CLI. Мы можем создавать, изменять, удалять правила, а также получать информацию о состоянии брандмауэра, но в любом случае все взаимодействие строится по форме запрос - ответ. Реальную работу выполняет спрятанный далеко внутри системы netfilter, а iptables только лишь позволяет удобно общаться с ним.
Понимание этого во многом проливает свет на сложившуюся ситуацию, iptables - всего лишь интерфейс и своих настроек у него быть не может, но именно он позволяет передать правила сетевого взаимодействия в netfilter и получать от него удобочитаемые ответы и именно этим его свойством мы и воспользуемся.
Существует несколько способов сохранить введенные нами в iptables правила, а затем и восстановить их при загрузке системы. Разберем их подробнее.
Скрипты
Самый старый, но не потерявший эффективности способ. Если единственная возможность взаимодействия с iptables - это интерфейс командной строки, то скрипт - самый первый способ автоматизации, если мы не хотим постоянно повторять одни и те же действия вручную.
Скрипт для настройки iptables мы можем расположить где угодно, но лучше следовать стандартным расположениям Linux и разместить его в /etc. Создадим для этого отдельную директорию iptables, создадим в ней файл скрипта и сделаем его исполняемым:
mkdir /etc/iptables
touch /etc/iptables/iptables.rules
chmod +x /etc/iptables/iptables.rules
Теперь можем открыть его любым доступным редактором и внести минимальную конфигурацию брандмауэра, разрешающую только подключения по SSH:
#!/bin/sh
# Сбрасываем настройки брандмауэра
iptables -F
iptables -X# Разрешаем установленные и связанные соединения
iptables -A INPUT -i ens33 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT# Запрещаем не принадлежащие ни одному соединению пакеты
iptables -A INPUT -i ens33 -m conntrack --ctstate INVALID -j DROP# Разрешаем подключения по SSH
iptables -A INPUT -i ens33 -p tcp --dport 22 -j ACCEPT#Запрещаем входящие извне
iptables -A INPUT -i ens33 -j DROP
Здесь следует обратить ваше внимание на самую первую секцию - сброс настроек, в приведенном примере сброшены будут только настройки таблицы filter и если вы используете другие таблицы, то их также нужно будет сбросить, так для nat добавьте:
iptables -t nat -F
iptables -t nat -X
А для mangle:
iptables -t mangle -F
iptables -t mangle -X
Для чего это делается? Смысл в том, что данный скрипт может быть запущен как вручную, так и при перезапуске сетевых служб, а команда iptables -A просто добавляет правило в конец указанной цепочки и если не выполнять предварительной очистки, то итоговые правила могут стать бесконечно далеки от того, что задумал администратор.
Хорошо, но как теперь запускать данный скрипт? Для систем использующих ifupdown перейдем в /etc/network/interfaces и добавим в конце секции с нужным сетевым адаптером или вообще в самом конце файла:
pre-up /etc/iptables/iptables.rules
Данное правило выполнит указанный нами скрипт перед инициализацией сетевого интерфейса.
Все изменения в конфигурацию брандмауэра следует вносить в указанный скрипт, а для их применения достаточно выполнить:
/etc/iptables/iptables.rules
или перезагрузить систему.
Просмотреть текущее состояние брандмауэра можно командой:
iptables -L -vn
Ключ -v выводит дополнительную информацию и счетчики, а -n отвечает за вывод IP-адресов и портов в виде чисел, а не DNS-адресов и имен служб.
![]()
Внимательный читатель заметит, что вывод команды показывает нам только таблицу filter и это действительно так. Как мы помним, filter - таблица по умолчанию и используется если мы явно не задали таблицу, чтобы просмотреть, скажем, таблицу nat, выполните:
iptables -t nat -L -vn
Где ключ -t позволяет указать интересующую таблицу.
iptables-save / iptables-restore
Это штатная утилита, выполняющая ту же самую задачу: сохранить правила iptables в файл и потом загрузить их оттуда. Использование предельно простое, чтобы сохранить правила используйте:
iptables-save > /etc/iptables/rules.v4
Результатом выполнения данной команды будет текстовый файл с набором всех используемых правил.
![]()
Сначала идет имя таблицы, в нашем случае правила заданы только для filter, затем политики по умолчанию для цепочек (везде ACCEPT), за которыми следуют сами правила. Обратите внимание, что синтаксис записей несколько другой, если в скрипте мы писали:
iptables -A INPUT -i ens33 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
то в файле просто:
-A INPUT -i ens33 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Потому что скрипт сначала вызывал iptables, а потом уже передавал ему команду, в нашем же случае вызывать iptables нет необходимости.
Впоследствии данный файл можно редактировать, добавляя в него дополнительные правила, также можно делать это интерактивно, через командный CLI-интерфейс. С этим будет связан один тонкий момент, и мы вернемся к нему позже.
Для восстановления следует использовать:
iptables-restore < /etc/iptables/rules.v4
Куда прописать эту команду? Можно точно также в /etc/network/interfaces, в конце файла добавляем:
pre-up iptables-restore < /etc/iptables/rules.v4
А теперь зададимся вопросом: чтобы сохранить правила iptables их нужно предварительно ввести. Да, это можно сделать либо вручную, выполнив указанные в скрипте команды, либо выполнив сам скрипт, второе удобнее, особенно если у вас сложная конфигурация брандмауэра. Этот же способ позволяет просто и удобно перейти от скриптов к iptables-restore: загружаем систему, сохраняем правила через iptables-save и заменяем вызов скрипта на iptables-restore.
В некоторых материалах в сети также рекомендуют добавить в /etc/network/interfaces
post-down iptables-save > /etc/iptables/rules.v4
На первый взгляд - вполне грамотное решение, но не рекомендуем этого делать не подумав. Почему? Редко кто управляет брандмауэром интерактивно: добавляя, удаляя или изменяя записи через командную строку, потому что более удобно и наглядно это можно сделать, внося изменения непосредственно в файл. Однако если вы после этого выключите или перезагрузите систему, то все ваши изменения будут перезаписаны текущим состоянием брандмауэра и будут потеряны.
Поэтому лучше ограничиться только iptables-restore, а если вы все-таки внесли изменения интерактивно, то можно сразу после этого вручную выполнить iptables-save.
iptables-persistent
Время не стоит на месте, все течет, все меняется. На смену старому доброму ifupdown приходят новые системы: NetworkManager, netplan, systemd-networkd и прописывать вызов скриптов или iptables-restore в их конфигурацию становится проблематичным занятием, если вообще возможным. Но и разработчики тоже держат руку на пульсе, в Debian и Ubuntu появился новый пакет - iptables-persistent, который позволяет сохранять и автоматически загружать правила брандмауэра, не оглядываясь на используемую систему инициализации сети.
Установить его очень просто:
apt install iptables-persistent
В процессе установки будет предложено сохранить текущие правила iptables, поэтому очень желательно, чтобы они к этому времени существовали. Внести их можно как интерактивно, так и с помощью скрипта.
![]()
Одновременно с этим будут сохранены правила для IPv6 и в итоге в директории /etc/iptables у вас будет два набора правил для четвертой и шестой версии протоколов. Синтаксис файла ничем не отличается от того, что создает iptables-save и точно также его можно редактировать, внося новые правила.
Также в системе появляется новая служба - netfilter-persistent, которая позволяет удобно управлять брандмауэром, так если вы внесли изменения в файл с правилами и хотите их применить, то выполните:
netfilter-persistent reload
Для сохранения текущей конфигурации отдайте команду:
netfilter-persistent save
А если вам надо полностью очистить конфигурацию брандмауэра, то наберите:
netfilter-persistent flush
Это удобно если вам нужно проверить, не является ли брандмауэр причиной каких-либо проблем, быстро сбрасываем конфигурацию, проверяем и загружаем ее заново.
Заключение
Какой из трех предложенных вариантов является наиболее предпочтительным? Если мы говорим о современных системах, то это iptables-persistent, который позволяет полностью автоматизировать процесс и вообще более не беспокоиться о правилах брандмауэра. Но это решение доступно только пользователям Debian или Ubuntu.
Также не стоит списывать со счетов скрипты или iptables-save / iptables-restore, эти методы продолжают работать и делают это просто и надежно. В любом случае помните, что Linux предоставляет множество путей решений одной и той же задачи и выбирайте решение исходя из собственной ситуации, требований и имеющихся знаний, и опыта.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Дополнительные материалы:
- Основы iptables для начинающих. Часть 1. Общие вопросы
- Основы iptables для начинающих. Часть 2. Таблица filter
- Основы iptables для начинающих. Часть 3. Таблица nat
- Основы iptables для начинающих. Часть 4. Таблица nat - типовые сценарии использования
- Основы iptables для начинающих. Как сохранить правила и восстановить их при загрузке
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
![]()
![]()
Или подпишись на наш Телеграм-канал:
iptables после перезагрузки, способы сохранения правил iptables
При помощи iptables можно настроить желаемые политики безопасности и гибко управлять трафиком (например, перенаправляя все запросы, поступающие на 80 и 443 порты на порт, на котором работает прокси-сервер в системе).
По умолчанию все правила системного фильтра трафика добавляются в работающей системе и сбрасываются при перезагрузке.
Способы сохранения правил iptables после перезагрузки
iptables часто используется при настройке, среди прочего, OpenVPN и Squid. Для корректной работы пакетов необходимо обеспечить сохранение заданных правил после перезапуска системы.
Существует несколько способов реализовать сохранение правил после перезагрузки:
- Первый способ универсален и будет работать на всех системах (синтаксис правил задающих сетевые настройки может отличаться)
Прежде всего сохраняем существующие правила в файл iptables-save > /tmp/iptables.txt
Затем открываем для редактирования файл с сетевыми настройками и в конец файла дописываем строку, которая будет обеспечивать восстановление правил при подъеме сетевого интерфейса
- Второй способ заключается в использовании специальной утилиты — iptables-persistent.
Она доступна для установки в стандартным репозиториях Debian, для других дистрибутивов утилита может быть недоступна
Устанавливается стандартным способом:
apt-get install iptables-persistent
Правила iptables необходимо создать, затем выполнить следующую команду
service iptables-persistent start
В возникшем диалоге будет задан вопрос относительно необходимости сохранения правил после перезагрузки, следует дать положительный ответ
iptables-persistent работает как демон и загружается при старте системы. Правила iptables после перезагрузки будут подгружаться автоматически.
Можно очистить список правил
service iptables-persistent flush
Можно остановить сервис iptables-persistent в системе.
- Третий способ — использовать systemd. Подходит для современных систем CentOS в которых сервисами управляет systemd.
Есть ли соответствующий сервис в системе можно проверить выполнив такую команду
systemctl status iptables

При запросе статуса видно путь к Unit файлу systemd.
Можно просмотреть его

В Unit файле указан путь /etc/sysconfig/iptables, по нему сохраняются правила

Чтобы добавить новые правила можно выполнить (текущее состояние)
iptables-save > /etc/sysconfig/iptables
При старте система будет запускать сервис iptables и считав содержимое файла /etc/sysconfig/iptables подгрузит правила.
На практике пользоваться можно любым из описанных способов, использование iptables-persistent обычно подходящий вариант для Debian/Ubuntu, systemd для CentOS