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

Iptables centos 7 где хранятся правила

  • автор:

Где сохраняются правила iptables и как их сохранить?

В каждом дистрибутиве Linux путь к сохраненным правилам может отличаться. И бывает так, что мы не знаем куда же сохранить правила, чтобы после перезагрузки сервера они тоже загрузились. Самый быстрый способ найти файл сохраненных правил — воспользоваться systemctl.

Выполняем:

# 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 Thu 2020-10-15 13:47:02 MSK; 1 weeks 0 days ago Main PID: 897 (code=exited, status=0/SUCCESS) Tasks: 0 Memory: 0B CGroup: /system.slice/iptables.service

Сервис iptables находится в /usr/lib/systemd/system/iptables.service.

Открываем iptables.service:

# cat /usr/lib/systemd/system/iptables.service [Unit] Description=IPv4 firewall with iptables Before=network-pre.target Wants=network-pre.target Before=ip6tables.service After=syslog.target AssertPathExists=/etc/sysconfig/iptables [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/libexec/iptables/iptables.init start ExecReload=/usr/libexec/iptables/iptables.init reload ExecStop=/usr/libexec/iptables/iptables.init stop Environment=BOOTUP=serial Environment=CONSOLETYPE=serial StandardOutput=syslog StandardError=syslog [Install] WantedBy=basic.target

В содержимом нам нужна строка AssertPathExists, в которой и указан путь к файлу, в который IPTABLES сохраняет правила. В моём случае путь до файла /etc/sysconfig/iptables.

После внесения изменений в правила iptables, сохраняем правила в этот файл:

iptables-save > /etc/sysconfig/iptables

Как сохранить правила iptables

Рабочую копию правил Netfilter хранит в пространстве ядра linux. Ядро по умолчанию разрешает все подключения, что мы видим при выполнении команды iptables с опцией -L При этом все изменения правил, сделанные нами во время работы операционной системы, автоматически обычно никуда не сохраняются при выключении компьютера. Поэтому после очередного включения вы обнаруживаете, что настроенных правил опять нет и везде установлены политики по умолчанию — ACCEPT.

Примечание: На практике это значит, что ваш компьютер по умолчанию открыт к любому доступу извне для любой машины, для этого только необходима работающая программа, которая будет отвечать по порту, к которому захочет подключиться любой удаленный компьютер. В этой статье мы рассмотрим как сохранить правила iptables.

Конечно, заново настраивать каждый раз после перезагрузки компьютера набор правил межсетевого экрана не выгодно, поэтому нам необходимы средства сохранения и восстановления параметров брандмауэра после включения нашей машины. Наиболее распространенных вариантов решения этой проблемы два:

  • С помощью утилиты iptables-save и загружать их с помощью iptables-restore;
  • С помощью утилиты iptables-persistent (данный вариант возможен в операционных системах Debian и Ubuntu).

Сохранить правила можно в любую доступную директорию, но лучше, конечно, использовать для этого системную директорию, например, директорию для конфигурационных файлов /etc/ или под-папку в ней, например, /etc/iptables-conf/

Table of Contents

  • Как сохранить правила iptables
  • Как загрузить правила iptables
  • Автозагрузка правил iptables
    • 1. Загрузка правил с помощью скрипта
    • 2. Автозагрузка правил iptables-persistent

    Как сохранить правила iptables

    Для сохранения правил межсетевого экрана Netfilter в linux можно использовать пакет iptables-save. Данный пакет записывает текущую конфигурацию в файл с указанным именем. Существуют две версии данного пакета:

    • iptables-save для протокола IPv4;
    • ip6tables-save для протокола IPv6.

    Синтаксис команд одинаковый, поэтому мы рассмотрим вариант ipv4.

    iptables-save [ -m modprobe ] [ -c ] [ -t таблица ] [ -f имя файла ]

    • -m modprobe: Указывает путь к программе modprobe. По умолчанию iptables-save проверяет /proc/sys/kernel/modprobe для определения пути к исполняемому файлу. modprobe — утилита управления модулями ядра. Существует несколько вариантов данной утилиты. Данный параметр можно проигнорировать;
    • -c: включает в поток вывода программы все счетчики количества переданных байтов и пакетов;
    • -t таблица: выводит в поток вывода только одну таблицу, которая была явно указана. При отсутствии флага выводит все таблицы настроек firewall;
    • -f имя файла: Указывает имя файла записи настроек. Если файл не указан, то вывод происходит в поток вывода на экран STDOUT.

    В самом простом варианте команда будет выглядеть, например, следующим образом:

    sudo iptables-save -f /etc/iptables-conf/iptables_rules.ipv4

    Вы можете использовать свою папку, имя файла и расширение. Возможно использование другого синтаксиса данной команды:

    sudo iptables-save > /etc/iptables-conf/iptables_rules2.ipv4

    В данном варианте команды iptables-save выводит оформленные правила в поток вывода на экран STDOUT, который мы перенаправляем в указанный нами файл. Предварительно необходимо создать директорию /etc/iptables-conf/:

    sudo mkdir /etc/iptables-conf/

    Просмотреть содержимое каталога можно с помощью команды:

    ls -la /etc/iptables-conf/

    Как загрузить правила iptables

    Для ручного восстановления настроек можно использовать вызов утилиты iptables-restore. Она восстанавливает настройки брандмауэра Netfilter с указанного файла или из потока ввода STDIN, если файл не задан явно. Рассмотрим синтаксис iptables-restore:

    iptables-restore [ -chntvV ] [ -w секунды ] [ -W миллисекунды ] [ -M modprobe ] [ -T таблица ] [ имя файла ]

    • -c: восстанавливает значения всех счетчиков пакетов и байтов;
    • -n: позволяет не сбрасывать содержимое правил обновляемой таблицы правил iptables. Если не указан — все текущие правила обновляемой таблицы сбрасываются. Получается, что правила из файла дописываются в конец таблиц рабочей конфигурации, если указан этот параметр;
    • -t: происходит только сборка и тестирование набора правил из файла, без обновление рабочей таблицы правил iptables;
    • -v: выводит дополнительную отладочную информацию в течении восстановления набора правил;
    • -V: выводит номер версии программы;
    • -w секунды: дождаться монопольной блокировки фильтра пакетов ядра linux xtables. Применяется, чтобы предотвратить одновременное выполнение нескольких экземпляров утилиты. Опция заставляет ждать программу в течении некоторого времени возможности монопольной блокировки xtables;
    • -W миллисекунды: интервал ожидания для каждой попытки запуска пакета в монопольном режиме. Часто многие приложения системы критичны к времени запуска и выполнения, поэтому длительное ожидания для монопольной блокировки xtables часто является неприемлемым. Данный параметр в миллисекундах задает максимальное время такого ожидания. По умолчанию равно 1 секунде. Применяется только совместно с ключом -w;
    • -M modprobe: Указывает путь к программе modprobe. По умолчанию iptables-restore проверяет /proc/sys/kernel/modprobe для определения пути к исполняемому файлу. modprobe — утилита управления модулями ядра. Существует несколько вариантов данной утилиты. Данный параметр можно проигнорировать;
    • -T таблица: Восстанавливает только таблицу правил с указанным именем, даже если поток данных содержит другие таблицы;
    • имя файла: путь до файла с восстанавливаемыми таблицами правил в файловой системе

    Вот пример команды iptables-restore:

    sudo iptables-restore -vV /etc/iptables-conf/iptables_rules.ipv4

    Или вариант восстановления правил из файла без сброса содержимого текущих таблиц Netfilter:

    sudo iptables-restore -nvV /etc/iptables-conf/iptables_rules.ipv4

    Автозагрузка правил iptables

    1. Загрузка правил с помощью скрипта

    Сохраненные правила с помощью утилиты iptables-save можно восстанавливать с помощью скрипта, запускаемого при каждом запуске операционной системы. Для этого необходимо выполнить следующие действия:

    Сохранить набор правил межсетевого экрана с помощью команды:

    sudo iptables-save -f /etc/iptables-conf/iptables_rules.ipv4

    Для запуска набора правил при старте операционной системы перед включением сетевого интерфейса мы создаем новый файл с помощью команды:

    sudo vi /etc/network/if-pre-up.d/iptables

    Заметим — в сети есть много вариантов места размещения скрипта на локальной машине, но я считаю именно размещение в папке if-pre-up.d наиболее верным, так как при этом скрипт будет выполнятся перед включением сетевого интерфейса. Добавляем в данный файл следующий скрипт:

    Сохраняем файл iptables Ctrl+O. Выходим из editor Ctrl+X. Устанавливаем необходимые права для созданного файла:

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

    Перезагружаем компьютер и проверяем результат для таблицы filter с помощью команды:

    sudo -t filter iptables -L

    Для обеспечения безопасности необходимо, чтобы конфигурация iptables применялась до запуска сетевых интерфейсов, сетевых служб и маршрутизации. Если данные условия не будут соблюдены — появляется окно уязвимости между загрузкой операционной системы и правил защиты межсетевого экрана. Для реализации такого варианта защиты можно использовать пакет iptables-persistent.

    2. Автозагрузка правил iptables-persistent

    По умолчанию данный пакет не установлен в операционной системе. Данный вариант реализации автозапуска конфигурации возможен в операционных системах Debian, Ubuntu. Для установки пакета требуется выполнить команду:

    sudo apt-get install iptables-persistent

    Этот пакет впервые стал доступен в Debian (Squeeze) и Ubuntu (Lucid). Используемые этим пакетом правила iptables хранятся в следующих директориях:

    • /etc/iptables/rules.v4 для набора правил протокола IPv4;
    • /etc/iptables/rules.v6 для набора правил протокола IPv6.

    Но они должны быть сохранены в понятном утилите iptables-persistent виде.

    Требования к формату данных файлах не задокументированны, что создает некоторые сложности для создания этих файлов вручную. Их можно создать с помощью dpkg-reconfigure:

    sudo dpkg-reconfigure iptables-persistent

    Или можно использовать iptables-save и ip6tables-save:

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

    sudo ip6tables-save > /etc/iptables/rules.v6

    Если мы были внимательны при установке пакета, то мы должны были заметить в Debian 10 и последних версиях Ubuntu пакет-зависимость для iptables-persistent: netfilter-persistent, устанавливаемых с нужным нам пакетом. Можно по адресу https://packages.ubuntu.com посмотреть содержимое пакета iptables-persistent, и мы заметим, что на текущий момент пакет называется iptables-persistent, а основные файлы уже относятся к пакету netfilter-persistent.

    Утилита netfilter-persistent тоже позволяет управлять автозагрузкой правил. Вот её синтаксис:

    sudo netfilter-persistent [ действие ]

    Где [действие] может принимать следующие значения:

    • start — вызывает все плагины с параметром start, для загрузки правил в netfilter;
    • stop — если настроена конфигурация сброса настроек Netfilter при остановке плагина, сбрасывает все настройки firewall на значения по умолчанию. Иначе просто выдает предупреждение;
    • flush — плагины вызываются с параметром flush, что приводит к сбросу правил межсетевого экрана на значения по умолчанию;
    • save — вызывает плагины с параметром save, позволяя сохранить значения правил брандмауэра в файлы на диске;
    • reload — не задокументированный параметр, возникали случаи когда параметр start не срабатывал, помогал вызов этого параметра для загрузки правил из файла на диске;

    Значит, чтобы сохранить правила мы можем вызвать следующую команду:

    sudo netfilter-persistent save

    Для загрузки же сохраненных правил мы можем использовать команду:

    sudo netfilter-persistent start

    Замечание: После установки netfilter-persistent система при использовании iptables и формата хранения файлов, связанного с ним, начинает при работе выдавать предупреждение

    # Warning: iptables-legacy tables present, use iptables-legacy to see them.

    Это связано с наличием новой утилиты настройки и редактирования правил Netfilter — nftables, для миграцию на эту утилиту старых правил iptables можно использовать автоматический транслятор правил iptables-translate. Но это уже тема для отдельной статьи.

    Выводы

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

    Записки 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?

    Centos 7
    Перепробовал разные способы которые предлагают в интернете, однако после перезапуска системы, настройки iptables сбрасываются.
    Какой способ используете вы? Centos свежая.

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

    6 комментариев

    Оценить 6 комментариев

    в centos 7 firewallcmd вроде используется вместо iptables. В centos 6: /etc/init.d/iptables save
    Еще можно напрямую записать в /etc/sysconfig/iptables

    Inkognitoss

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

    Роман Соколов: ну вот я записал напрямую, рестартанул сервак и не работает. точно правила должны подсасываться из /etc/sysconfig/iptables??

    Александр Карпов: смотрите iptables -S Возможно правила неправильно прописаны, поэтому не срабатывают.

    Inkognitoss

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

    мне кажется, что люди чего-то недопонимают, когда говорят, что можно через /etc/sysconfig/iptables сохранить настройки при перезапуске. В итоге я использовал firewallcmd чтобы победить проблему. Жаль только потраченное время на нерабочие советы. Спасибо тебе!

    martin74ua

    Руслан Федосеев @martin74ua

    ну так если вы используете firewall - то им и сохраняйте. Лично я его сношу и использую обычный iptables-service

    Александр Карпов: Хорошо, пожалуйста.
    Решения вопроса 2
    lucky_devil @lucky_devil
    В CentOS есть сервис /etc/systemd/system/iptables.service в котором написано следующее:

    [Service] Type=oneshot ExecStart=/sbin/iptables-restore /etc/iptables/iptables.rules ExecReload=/sbin/iptables-restore /etc/iptables/iptables.rules ExecStop=/etc/iptables/flush-iptables.sh

    Поэтому, при перезапуске ваши правила iptables восстанавливаются из /etc/iptables/iptables.rules , а не из /etc/sysconfig/iptables

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

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

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