"Oskar Andreasson. Iptables Tutorial 1.1.19 " - читать интересную книгу автора

Эта проблема легко решается с помощью iptables-save и iptables-restore
Утилита iptables-save записывает набор правил в обычный текстовый файл в
особом формате. Утилита iptables-restore загружает набор правил из файла.
Главное преимущество этих утилит состоит в том, что они производят
сохранение/восстановление всего набора правил за одно обращение.
iptables-save "в один присест" получает из пространства ядра и записывает в
файл весь набор правил, а iptables-restore загружает из файла и переписывает
за одно обращение в пространство ядра набор правил для каждой таблицы. Или
другими словами - вместо того, чтобы обращаться огромное число раз к ядру
для того чтобы получить набор правил, а затем опять записать его в
пространство ядра не меньшее число раз, можно просто сохранить набор правил
в файл, а затем загружать его из файла, при этом число перемещений наборов в
ядро будет зависеть только от числа используемых таблиц.
Вы уже наверняка поняли, что эти утилиты могут представлять для вас
интерес, особенно если вам приходится загружать огромные наборы правил.
Однако использование этих утилит имеет и свои отрицательные стороны, которые
мы рассмотрим в следующем разделе.

5.2. И минусы

У вас может сложиться впечатление, что iptables-restore может
обрабатывать своего рода сценарии. Пока не может и вероятнее всего - никогда
не сможет. В этом и состоит главный недостаток iptables-restore. Чтобы было
более понятно - представьте себе случай, когда брандмауэр получает
динамический IP-адрес и вы хотите вставить его значение в свои правила во
время загрузки системы. Решить эту проблему с помощью iptables-restore
практически невозможно.
Как одно из решений можно предложить написать небольшой скрипт, который
определяет значение IP-адреса и затем вставляет его в набор правил
(например, с помощью sed) на место некоторого ключевого слова. Здесь вам
потребуется создать временный файл, в котором производятся изменения и
который затем загружается с помощью iptables-restore. Однако такой вариант
решения порождает свои проблемы - вам придется отказаться от утилиты
iptables-save поскольку она может затереть, созданную вручную, заготовку
файла с правилами для iptables-restore. Вобщем - довольно неуклюжее решение.
Еще один вариант - хранить в файле для iptables-restore только
статические правила, а затем с помощью небольшого скрипта добавлять правила
с динамическими параметрами. Конечно же вы уже поняли, что это решение такое
же неуклюжее как и первое. Вам придется смириться с тем, что
iptables-restore не очень хорошо подходит для случая с динамически
назначаемым IP-адресом и вообще для случаев, когда вам потребуется
динамически изменять набор правил в зависимости от конфигурации системы и
т.п..
Еще один недостаток iptables-restore и iptables-save в том, что их
функциональность не всегда соответствует описанной. Проблема состоит в том,
что не многие пользуются этими утилитами, еще меньше людей вовлечено в
процесс поиска ошибок в этих программах. Поэтому, при использовании
некоторых, вновь появившихся, критериев или действий вы можете столкнуться с
неожиданным поведением своих правил. Несмотря на возможное существование
некоторых проблем, я все же настоятельно рекомендую к использованию эти два