вторник, 6 марта 2018 г.

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

  Есть система Debian. При выключении/перезагрузке системы правила брандмауэра iptables исчезают. Надо чтобы сохранялись.
  В старой моей FedoraCore был прекрасный файл /etc/sysconfig/iptables откуда при старте брались правила брандмауэра. В Debian поначалу я такого не нашел.
  В стандартном репозитории есть пакет netfilter-persistent который решает нашу проблему. После его установки в папке /etc/iptables создает файлы rules.v4 и rules.v6 для правил соответственно IPv4 и IPv6. Это файлы формата iptables-restore/iptables-save, поэтому в них всегда можно записать текущую конфигурацию брандмауэра командой "iptables-save /etc/iptables/rules.v4".
  В папке автозагрузки появляется демон netfilter-persistent, который при старте системы автоматом подгружает правила. Для него доступны стандартные действия start,restart,stop
  Пример файла rules.v4 Здесь создаются цепочки LO для обработки собственных пакетов и LAN для обработки пакетов из локальной сети. Для сети разрешается установка исходящих соединений. Установка входящих соединений запрещается. По умолчанию запрещаем пакеты которые не подпадают под правила.

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:LO - [0:0]
:LAN - [0:0]

-A INPUT -s 127.0.0.0/8 -i lo -j LO
-A OUTPUT -d 127.0.0.0/8 -o lo -j LO

-A LO -j ACCEPT

-A INPUT -i eth+ -j LAN
-A OUTPUT -o eth+ -j LAN
-A LAN -m state --state RELATED,ESTABLISHED -j ACCEPT
-A LAN -o eth+ -m state --state NEW -j ACCEPT
-A LAN -i eth+ -m state --state NEW -j DROP

COMMIT

Пример файла rules.v6 На этом компьютере IPv6 не используется, поэтому все запрещаем

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
COMMIT