Alterator/AlteratorNetIptables

Материал из ALT Linux Wiki

alterator-net-iptables

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

Состояние системы по умолчанию (заботится инсталятор):

  • service iptables не существует, все работает через etcnet.
  • все интерфейсы считаются внешними, изначально закрытыми, firewall включен
  • в /etc/net/ifaces/default/fw/iptables/filter/INPUT записано:
-P DROP
-i lo -j ACCEPT
-f -j DROP
-m state --state ESTABLISHED,RELATED -j ACCEPT
что-то еще, кажется надо было открыть
  • в /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/options написано:
FW_TYPE="iptables"
IPTABLES_HUMAN_SYNTAX=no
  • в /etc/net/ifaces/default/options:
CONFIG_FW=yes

Модуль определяет текущее состояние:

  • определяется default policy (сперва из /etc/net/ifaces/default/fw/options, потом из /etc/net/ifaces/default/fw/iptables/filter/INPUT).
    • Если ACCEPT - все интерфейсы считаются внутренними
    • Если DROP - дополнительно определяем внутренние интерфейсы по строчкам -i <имя> -j ACCEPT
  • определяем дополнительно открытые сервисы (группы портов) и отдельные порты - по строчкам вида '-p <протокол> --dport <порт> -j ACCEPT' (это уже есть в существующем модуле)

Модуль перезаписывает состояние:

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

Интерфейс:

  • выбор внутренних интерфейсов
  • выбор открытых наружу сервисов
  • ввод открытых наружу дополнительных портов