Alterator/AlteratorNetIptables: различия между версиями

Материал из ALT Linux Wiki
 
(не показано 17 промежуточных версий 3 участников)
Строка 1: Строка 1:
== alterator-net-iptables ==
== alterator-net-iptables >= 1.0 ==


'''Проект, по результатам разговора с vitty@'''


Состояние системы по умолчанию (заботится инсталятор):
Модуль хранит свое состояние в отдельном файле и из него настраивает систему "в одну сторону".
* service iptables не существует, все работает через etcnet.
 
* все интерфейсы считаются внешними, изначально закрытыми, firewall включен
Имеется скрипт iptables_helper (с достаточно человеколюбивым интерфейсом) умеющий читать и писать конфигурацию и настраивать систему, а также тривиальный модуль альтератора, который его использует.
* в /etc/net/ifaces/default/fw/iptables/filter/INPUT записано:
 
  -P DROP
=== Мы работаем со следующими параметрами: ===
-i lo -j ACCEPT
 
* режим работы (firewall/gateway)
* список внешних интерфейсов
* список открытых снаружи сервисов
* список открытых снаружи портов
* дополнительные опции (сейчас поддерживается только запись правил для ulogd)
 
=== В соответствии с этими параметрами производятся следующие настройки системы: ===
* iptables   -- включен всегда
* forwarding -- включен всегда
 
* {{path|/etc/net/ifaces/default/fw/iptables/filter/INPUT}}:
  -P ACCEPT
  -f -j DROP
  -f -j DROP
  -m state --state ESTABLISHED,RELATED -j ACCEPT
  -m state --state ESTABLISHED,RELATED -j ACCEPT
  что-то еще, кажется надо было открыть
  -i <интейрфейс> -p <протокол> --dport <порт> -j ACCEPT # для всех открытых сервисов и
* в /etc/net/ifaces/default/fw/iptables/filter/OUTPUT:
                                              # портов, для всех внешних интерфейсов
-i <интерфейс> -j DROP # для всех внешних интерфейсов
 
* {{path|/etc/net/ifaces/default/fw/iptables/filter/OUTPUT}}:
  -P ACCEPT
  -P ACCEPT
  -f -j DROP
  -f -j DROP
  -m state --state ESTABLISHED,RELATED -j ACCEPT (или такого тут не надо?)
  -m state --state ESTABLISHED,RELATED -j ACCEPT
* в /etc/net/ifaces/default/fw/options написано:
 
FW_TYPE="iptables"
* для каждой пары внутренних интерфейсов в {{path|/etc/net/ifaces/default/fw/iptables/filter/FORWARDING}}:
IPTABLES_HUMAN_SYNTAX=no
  -i $i1 -o $i2 -j DROP
* в /etc/net/ifaces/default/options:
  CONFIG_FW=yes


Модуль определяет текущее состояние:
* если режим работы gateway, то в {{path|/etc/net/ifaces/default/fw/iptables/nat/POSTROUTING}}:
* определяется default policy (сперва из /etc/net/ifaces/default/fw/options, потом из /etc/net/ifaces/default/fw/iptables/filter/INPUT).
-o <внешн.интерфейс> -j MASQUERADE # для каждой пары внутненний-внешний интерфейс
** Если ACCEPT - все интерфейсы считаются внутренними
** Если DROP - дополнительно определяем внутренние интерфейсы по строчкам -i <имя> -j ACCEPT
* определяем дополнительно открытые сервисы (группы портов) и отдельные порты - по строчкам вида '-p <протокол> --dport <порт> -j ACCEPT' (это уже есть в существующем модуле)


Модуль перезаписывает состояние:
=== Кроме того ===
* из /etc/net/ifaces/default/fw/iptables/filter/{INPUT/OUTPUT} стираются строчки, соделжащие '-P' '-j DROP', '-j ACCEPT' (строчка ULOGD при этом сохраняется, интересно, нужно ли тут сохранять какие-то еще чужие строчки?)
* service iptables не существует, все работает через etcnet + efw.
* туда же дописываются значения по умолчанию (указанные выше)
* перезаписываются значения по умолчанию в /etc/net/ifaces/default/fw/options и /etc/net/ifaces/default/options -- все это надо делать одним скриптом
* для всех внутренних интерфейсов пишется '-i <имя> -j ACCEPT'
* записываются строчки для всех дополнительно открытых наружу сервисов (без указания интерфейсов) '-p <протокол> --dport <порт> -j ACCEPT'


Интерфейс:
[[Категория:Sisyphus]]
* выбор внутренних интерфейсов
* выбор открытых наружу сервисов
* ввод открытых наружу дополнительных портов
[[category:sisyphus]]

Текущая версия от 17:35, 6 февраля 2009

alterator-net-iptables >= 1.0

Модуль хранит свое состояние в отдельном файле и из него настраивает систему "в одну сторону".

Имеется скрипт iptables_helper (с достаточно человеколюбивым интерфейсом) умеющий читать и писать конфигурацию и настраивать систему, а также тривиальный модуль альтератора, который его использует.

Мы работаем со следующими параметрами:

  • режим работы (firewall/gateway)
  • список внешних интерфейсов
  • список открытых снаружи сервисов
  • список открытых снаружи портов
  • дополнительные опции (сейчас поддерживается только запись правил для ulogd)

В соответствии с этими параметрами производятся следующие настройки системы:

  • iptables -- включен всегда
  • forwarding -- включен всегда
  • /etc/net/ifaces/default/fw/iptables/filter/INPUT:
-P ACCEPT
-f -j DROP
-m state --state ESTABLISHED,RELATED -j ACCEPT
-i <интейрфейс> -p <протокол> --dport <порт> -j ACCEPT # для всех открытых сервисов и 
                                              # портов, для всех внешних интерфейсов
-i <интерфейс> -j DROP # для всех внешних интерфейсов
  • /etc/net/ifaces/default/fw/iptables/filter/OUTPUT:
-P ACCEPT
-f -j DROP
-m state --state ESTABLISHED,RELATED -j ACCEPT
  • для каждой пары внутренних интерфейсов в /etc/net/ifaces/default/fw/iptables/filter/FORWARDING:
-i $i1 -o $i2 -j DROP
  • если режим работы gateway, то в /etc/net/ifaces/default/fw/iptables/nat/POSTROUTING:

-o <внешн.интерфейс> -j MASQUERADE # для каждой пары внутненний-внешний интерфейс

Кроме того

  • service iptables не существует, все работает через etcnet + efw.