Сохранение-востановление настроек iptables — брандмауэра Linux

iptables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана(брандмауэра) netfilter для ядер Linux версий 2.4 и 2.6. Для использования утилиты iptables требуются привилегиисуперпользователя (root).

Иногда под словом iptables имеется в виду и сам межсетевой экран netfilter.

iptables-save — сохранение iptables в файл

ptables-restore — восстановление iptables из файла

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

Вот пример с сайта Kubuntu.ru как это может быть использовано для настройки перенаправления пакетов между сетевыми картами (фовардинга forvarding)

Сетевая карточка eth0 подключенная с помощью PPPoE к интернету и
eth1 подключенная к сети с адресом 192.168.0.1 к которой подключена сеть с адресами 192.168.0.* в которой нужно раздать интернет.

Для начала включим форвардинг:

echo 1 > /proc/sys/net/ipv4/ip_forward

Чтобы форвардинг автоматически включался при запуске системы

Открываем файл:

sudo nano /etc/sysctl.conf

и добавляем в него строчку:

net.ipv4.ip_forward = 1

Затем включаем NAT

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Где ppp0 название вашего интерфейса через который выходите в интернет.

Чтобы NAT работал после перезагрузки делаем следующее:

сохраняем настройки iptables в файл

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

И добавляем в конец файла:

sudo nano /etc/networks/interfaces

эту строчку, для автоматической подгрузке правил

pre-up iptables-restore < /etc/iptables.up.rules

Так же в этот файл добавляем правила роутинга:

up route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1<br />
    up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0

Утилита iptables-save, как я уже упоминал, предназначена для сохранения текущего набора правил в файл, который затем может быть использован утилитой iptables-restore. Эта команда очень проста в использовании и имеет всего два аргумента.

iptables-save [-c] [-t table]


 

Первый аргумент -c (допустимо использовать более длинный вариант —counters) заставляет iptables-saveсохранить знчения счетчиков байт и пакетов. Это делает возможным рестарт брандмауэра без потери счетчиков, которые могут использоваться для подсчета статистики. По-умолчанию, при запуске без ключа , сохранение счетчиков не производится.

С помощью ключа -t (более длинный вариант —table) можно указать имя таблицы для сохранения. Если ключ -t не задан, то сохраняются все таблицы. Ниже приведен пример работы команды iptables-save в случае, когда набор не содержит ни одного правила.

Утилита iptables-restore используется для восстановления (загрузки) набора правил, который ранее был сохранен утилитой iptables-save. Набор правил утилита получает со стандартного ввода и не может загружать его из файла напрямую. Команда имеет следующий синтаксис:

iptables-restore [-c] [-n]

Ключ -c (более длинный вариант —counters) заставляет восстанавливать значения счетчиков.

Указание ключа -n (более длинный вариант —noflush) сообщает iptables-restore о том, что правила должны быть добавлены к имеющимся. По-умолчанию утилита iptables-restore (без ключа -n) очистит содержимое таблиц и цепочек перед загрузкой нового набора правил.

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

cat /etc/iptables-save | iptables-restore -c

В результате выполнения этой команды содержимое файла /etc/iptables-save будет прочитано утилитой cat и перенаправленно на стандартный ввод утилиты iptables-restore. Можно было бы привести еще целый ряд команд, с помощью которых можно организовать загрузку набора правил из файла, но это выходит за рамки темы, поэтому оставлю читателю возможность самому найти более удобный для него вариант.

После исполнения этой команды набор правил должен загрузиться и все должно работать. Если это не так, то скорее всего вы допустили ошибку при наборе команды.

 

 

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

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