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

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

  • автор:

Записки 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 на 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 359)
  • Медиа (66)
  • Мероприятия (39)
  • Мошенники (23)
  • Обзоры (831)
  • Обход запретов (34)
  • Опросы (3)
  • Скрипты (116)
  • Статьи (360)
  • Философия (125)
  • Юмор (18)

Наш Telegram

Социальные сети
Поделиться

Anything in here will be replaced on browsers that support the canvas element

  • Начни Стримить на Twitch: Первые Шаги в Мире Онлайн-Трансляций 30.10.2023

Введение в мир Twitch и стриминга. Добро пожаловать в увлекательный мир Twitch и стриминга! Если вы задумываетесь о том, чтобы начать свою собственную стриминговую карьеру на самой популярной платформе для игровых трансляций, то вам пригодится некоторая подготовка и настройка. Twitch ⎯ это онлайн-платформа, которая позволяет вам транслировать свою игру или другое содержимое в прямом эфире. […]

Цифровые сертификаты могут использоваться для различных целей. Они могут использоваться для защиты соединений с веб-сайтами, для шифрования сообщений электронной почты или для проверки личности пользователя. Выбор правильного формата сертификата необходим для обеспечения безопасности и сохранности данных. Когда речь идет о различных форматах сертификатов, важно выбрать тот, который соответствует вашим потребностям Выберите формат сертификата, совместимый с […]

Преобразование файла PFX (PKCS #12) в формат PEM (Privacy Enhanced Mail) достаточно просто на Linux и Unix-подобных системах. В этой статье мы рассмотрим, как преобразовать файл сертификата в формате PFX в файл PEM с помощью OpenSSL из командной строки. Что такое файл PFX? PFX (также PKCS#12) – это формат файла, содержащего сертификат(ы) и закрытый(ые) ключ(ы), […]

Одним из основных нововведений, появившихся в Podman, стала возможность запуска контейнеров без прав root. С точки зрения безопасности это было существенным улучшением, поскольку потенциально скомпрометированный контейнер, запущенный от имени root, представляет собой угрозу безопасности для хост-системы. Чтобы добиться аналогичного поведения, последние версии Docker поддерживают запуск демона docker в пользовательском контексте. �� Почему процессы в контейнерах […]

Small Form Factor Pluggable (SFP) – это компактный приёмопередатчик, который устанавливается в SFP порт коммутатора Ethernet. Модуль используется для присоединения платы сетевого устройства к оптическому волокну или витой паре. Модули SFP заменили устаревшие модули GBIC благодаря своим миниатюрным размерам. Это преимущество в размерах позволяет им эффективно работать в ограниченных сетевых средах, обеспечивая быстрый обмен данными […]

Как сохранить правила iptables после перезагрузки Ubuntu?

После перезагрузки Ubuntu 12.10 правила iptables «слетают». Знаю, что можно победить прописыванием правил в rc.local. Как альтернативу посоветовали юзать ferm. Что думает на эту тему опытный хабровчанин? Какой вариант предпочтительнее и где могут быть «подводные камни»?

  • Вопрос задан более трёх лет назад
  • 178712 просмотров

1 комментарий

Оценить 1 комментарий

Честно говоря дикий идеотизм - Смысл в том что нужно придумывать пути как восстановить правила при перезагрузке. И плять простой iptables-save не срабатывает. надо городить огород с востановлением правил либо через крон, либо на уровне загрузки.

Решения вопроса 1

Infra_HDC

    Делаем скрипт, выполняемый при поднятии интерфейса
nano -w /etc/network/if-up.d/00-iptables 

#!/bin/sh
iptables-restore < /etc/firewall.conf
ip6tables-restore < /etc/firewall6.conf

chmod +x nano -w /etc/network/if-up.d/00-iptables 
iptables-save >/etc/firewall.conf 
ip6tables-save >/etc/firewall6.conf 

Ответ написан более трёх лет назад
Нравится 14 2 комментария

Infra_HDC

ошибка в п.2, должно быть

chmod +x /etc/network/if-up.d/00-iptables 

Игорь @shanker Автор вопроса
Спасибо. То, что нужно!
Ответы на вопрос 11

в debian и ubuntu добавили пакет iptables-persistent
который использует iptables-save/iptables-restore

#service iptables-persistent
Usage: /etc/init.d/iptables-persistent

после настройки правил как нужно, сделать service iptables-persistent save и при следующей загрузке они будут применены

Ответ написан более трёх лет назад
Нравится 41 4 комментария

kissbohda

Лутшый ответ! Спасибо.

ve1ikiy

Огромное спасибо! 🙂

Inkognitoss

Александр Карпов @Inkognitoss

The service command supports only basic LSB actions (start, stop, restart, try-r estart, reload, force-reload, status). For other actions, please try to use syst emctl.

Александр Карпов: OS ?
в ubuntu 16.04, пакет заменили на netfilter-persistent и iptables-persistent это просто плагин к netfilter.
ну и собственно правила хранятся в файлах
/etc/iptables/rules.v4 и /etc/iptables/rules.v6 и при загрузке применяются.

#service netfilter-persistent
Usage: /etc/init.d/netfilter-persistent

инженер-программист
Ответ написан более трёх лет назад
Комментировать
Нравится 12 Комментировать
Можно установить iptables-persistent.
Ответ написан более трёх лет назад
Комментировать
Нравится 9 Комментировать

Если у вас не используется нетворк менеджер для поднятия сети, то можно прописать в конец /etc/network/interfaces
post-up iptables-restore < /etc/iptables.rules
Предварительно применив правила и сохранив их в этот самый файл iptables.rules коммандой $ iptables-save > /etc/iptables.rules

Ответ написан более трёх лет назад
Комментировать
Нравится 5 Комментировать

Имхо гораздо лучше иметь bash/sh файл, создающий правила в автозагрузке, чем пользоваться iptables-save и iptables-restore.
Ведь в bash файле не можно заменить одни и те же адреса/порты/интерфейсы/протоколы/диапазоны в разных строчках на переменные, можно будет при желании селать какой-нибудь цикл или включить роутинг в /proc/sys/net/ipv4/ip_forward (его логиченее объединить с правилами, ведь они без него могут не иметь смысла)

Ответ написан более трёх лет назад
Нравится 4 2 комментария
Скрипт с переменными и комментариями мне тоже кажется более наглядным.

AlGiorgio

Вы правы - best practice!

Gular

Так же, как в Debian. Имеется ввиду, что они одинаковы по умолчанию в этом плане.
Победить — путём создания файла с правилами и добавления его для исполнения в rc.local, или лучше — в автозагрузку, положив файл в init.d.

Как сохранить правила iptables в Ubuntu 20 / Debian?

Классический способ сохранения правил.
1. Сохраняем правила в файл:

2. Создаем скрипт в загрузке интерфейсов:

3. Прописываем восстановление правил:

4. Даем права на выполенение скрипта:

5. Перезагружаемся и проверяем.

М - 02.06.2021 Просмотры: 1 521

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

Используя данный сайт, Вы соглашаетесь с условиями Пользовательского Соглашения.
Изображения, которые относятся к записям данного сайта,
берутся из бесплатных стоков и используются согласно лицензии или правил использования изображений стоков.
Коммерческого использования таких изображений нет.

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

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