Alterator/AlteratorNetIptables: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 4: | Строка 4: | ||
Модуль хранит свое состояние в отдельном файле и из него | Модуль хранит свое состояние в отдельном файле и из него настраивается система "в одну сторону". | ||
* список | |||
* список открытых | Имеется скрипт iptables_helper (с достаточно человеколюбивым интерфейсом) умеющий читать и писать конфигурацию и настраивать систему, а также тривиальный модуль альтератора, который его использует. | ||
* список открытых | |||
* | Мы работаем со следующими настройками: | ||
* режим работы (firewall/gateway) | |||
* список внешних интерфейсов | |||
* список открытых снаружи сервисов | |||
* список открытых снаружи портов | |||
* дополнительные опции (сейчас поддерживается только запись правил для ulogd) | |||
В соответствии с этими параметрами производятся следующие настройки: | В соответствии с этими параметрами производятся следующие настройки: | ||
* iptables -- включен всегда | * iptables -- включен всегда | ||
* forwarding -- включен всегда | * forwarding -- включен всегда | ||
* {{path|/etc/net/ifaces/default/fw/iptables/filter/INPUT}} перезаписывается: | * {{path|/etc/net/ifaces/default/fw/iptables/filter/INPUT}} перезаписывается: | ||
Строка 27: | Строка 25: | ||
-m state --state ESTABLISHED,RELATED -j ACCEPT | -m state --state ESTABLISHED,RELATED -j ACCEPT | ||
-i lo -j ACCEPT | -i lo -j ACCEPT | ||
-i <интейрфейс> -p <протокол> --dport <порт> -j ACCEPT # для всех открытых сервисов и портов, для всех внешних интерфейсов | |||
-i <интерфейс> -j DROP # для всех внутренних интерфейсов | -i <интерфейс> -j DROP # для всех внутренних интерфейсов | ||
* {{path|/etc/net/ifaces/default/fw/iptables/filter/OUTPUT}} перезаписывается: | * {{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 | ||
* для каждой пары внутренних интерфейсов в {{path|/etc/net/ifaces/default/fw/iptables/filter/FORWARDING}}: | |||
-i $i1 -o $i2 -j DROP | |||
* если | * если режим работы gateway, то в {{path|/etc/net/ifaces/default/fw/iptables/nat/POSTROUTING}}: | ||
-o <внешн.интерфейс> -j MASQUERADE # для каждой пары внутненний-внешний интерфейс | |||
Версия от 17:20, 6 февраля 2009
alterator-net-iptables
Проект, по результатам разговора с vitty@
Модуль хранит свое состояние в отдельном файле и из него настраивается система "в одну сторону".
Имеется скрипт iptables_helper (с достаточно человеколюбивым интерфейсом) умеющий читать и писать конфигурацию и настраивать систему, а также тривиальный модуль альтератора, который его использует.
Мы работаем со следующими настройками:
- режим работы (firewall/gateway)
- список внешних интерфейсов
- список открытых снаружи сервисов
- список открытых снаружи портов
- дополнительные опции (сейчас поддерживается только запись правил для ulogd)
В соответствии с этими параметрами производятся следующие настройки:
- iptables -- включен всегда
- forwarding -- включен всегда
- /etc/net/ifaces/default/fw/iptables/filter/INPUT перезаписывается:
-P DROP -f -j DROP -m state --state ESTABLISHED,RELATED -j ACCEPT -i lo -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 # для каждой пары внутненний-внешний интерфейс
Устаревшее
Процедура сброса состояния системы (в частности, при инсталляции)
- из /etc/net/ifaces/default/fw/iptables/filter/{INPUT/OUTPUTШаблон:) стираются строчки, содержащие "-P", "-j DROP", "-j ACCEPT"' (строчка "ULOGD" при этом сохраняется, интересно, нужно ли тут сохранять какие-то ещё чужие строчки?)
- в /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
- таким образом все порты на всех интерфейсах закрыты, firewall включён
Модуль определяет текущее состояние
- определяется 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' (это уже есть в существующем модуле)
Модуль перезаписывает состояние
- происходит сброс конфигурационных файлов в начальное состояние (см. выше)
- в INPUT для всех внутренних интерфейсов пишется '-i <имя> -j ACCEPT'
- в INPUT записываются строчки для всех дополнительно открытых наружу сервисов (без указания интерфейсa) '-p <протокол> --dport <порт> -j ACCEPT'
- перезагружаем правила: efw restart
Интерфейс
- выбор внутренних интерфейсов
- выбор открытых наружу сервисов
- ввод открытых наружу дополнительных портов
Кроме того
- service iptables не существует, все работает через etcnet + efw.