====== IPFW ======
===== Теория =====
Краткое резюме из статьи((см. ссылку ниже)) Александра Сысоева о работе сетевого стека.
==== Стек ====
* Существует два прохода трафика: 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
===== Пример =====
===== Ссылки =====
* [[http://nuclight.livejournal.com/124348.html|Вадим Гончаров]]
* [[http://alexandr.sysoev.ru/node/122|Александр Сысоев]]
* [[http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls-ipfw.html|Руководство пользователя]]
* [[http://ipfw.ru/ipfw.html| man ipfw]]