IPFW
Теория
Краткое резюме из статьи1) Александра Сысоева о работе сетевого стека.
Стек
- Существует два прохода трафика: IN и OUT.
- Система, исходя из правил маршрутизации, помечает, какому сетевому итерфейсу соответствует трафик. Таким образом, логически на каждом сетевом интерфейсе мы имеем два направления трафика.
- При поступлении в каждый из проходов трафика он попадает на правила фильтрации firewall-а, согласно которым и обрабатывается.
- Правила firewall-а могут выводить трафик из прохода, запускать в проход во второй раз (при смене информации в пакете), а также убивать его.
- При выходе трафика из прохода, он либо отправляется на сетевой интерфейс, либо обрабатывается и направляется в другой проход.
NAT
- NAT разделяет трафик на входящий и исходящий: из прохода OUT трафик маскируется, из IN - демаскируется.
- NAT позволяет запускать несколько своих экземпляров с собственными таблицами.
- После применения NAT-фильтрации выйти из текущего прохода firewall-а
net.inet.ip.fw.one_pass=1
- После применения NAT-фильтрации снова попасть в проход для прохождения СЛЕДУЮЩИХ правил
net.inet.ip.fw.one_pass=0
Включение IPFW
В /etc/rc.conf:
firewall_enable="YES"
Там же указываются дополнительные опции:
- NAT:
firewall_nat_enable="YES"
- логирование:
firewall_logging="YES"
- режим фильтрации:
firewall_type="тип(open, closed,...)"
в этом случае применяются стандартные настройки firewall-а указанного типа,
- скрипт обработки:
firewall_script="путь к скрипту"
вместо стандартных правил
В /etc/sysctl.conf:
- метод прохождения:
net.inet.ip.fw.one_pass=1
- уровень логирования:
net.inet.ip.fw.verbose_limit=5
Пример
Ссылки
1)
см. ссылку ниже