Перейти к содержимому

Как сохранить настройки iptables

  • автор:

Как сохранить 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-адресов и имен служб.

iptables-save-restore-001.png

Внимательный читатель заметит, что вывод команды показывает нам только таблицу filter и это действительно так. Как мы помним, filter - таблица по умолчанию и используется если мы явно не задали таблицу, чтобы просмотреть, скажем, таблицу nat, выполните:

iptables -t nat -L -vn

Где ключ -t позволяет указать интересующую таблицу.

iptables-save / iptables-restore

Это штатная утилита, выполняющая ту же самую задачу: сохранить правила iptables в файл и потом загрузить их оттуда. Использование предельно простое, чтобы сохранить правила используйте:

iptables-save > /etc/iptables/rules.v4

Результатом выполнения данной команды будет текстовый файл с набором всех используемых правил.

iptables-save-restore-002.png

Сначала идет имя таблицы, в нашем случае правила заданы только для 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, поэтому очень желательно, чтобы они к этому времени существовали. Внести их можно как интерактивно, так и с помощью скрипта.

iptables-save-restore-003.png

Одновременно с этим будут сохранены правила для 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 часов практики и доступ навсегда.

Дополнительные материалы:

  1. Основы iptables для начинающих. Часть 1. Общие вопросы
  2. Основы iptables для начинающих. Часть 2. Таблица filter
  3. Основы iptables для начинающих. Часть 3. Таблица nat
  4. Основы iptables для начинающих. Часть 4. Таблица nat - типовые сценарии использования
  5. Основы iptables для начинающих. Как сохранить правила и восстановить их при загрузке

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Подпишись на наш Telegram-канал

Или подпишись на наш Телеграм-канал:

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

iptables status

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

Можно просмотреть его

iptables после перезагрузки

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

iptables centos

Чтобы добавить новые правила можно выполнить (текущее состояние)

iptables-save > /etc/sysconfig/iptables

При старте система будет запускать сервис iptables и считав содержимое файла /etc/sysconfig/iptables подгрузит правила.

На практике пользоваться можно любым из описанных способов, использование iptables-persistent обычно подходящий вариант для Debian/Ubuntu, systemd для CentOS

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *