IPA_IPFW(8) IPA_IPFW(8)
НАИМЕНОВАНИЕ
ipa_ipfw -- IPA модуль учёта трафика для FreeBSD IP Firewall
ОПИСАНИЕ
ipa_ipfw это IPA модуль учёта, обладающий следующими свойствами:
- Модуль разработан для учёта трафика при помощи байтовых счётчи-
ков правил FreeBSD IP Firewall (включая IPFW2);
- Модуль распознаёт переполнение байтовых счётчиков IP Firewall
правил;
- Возможно суммировать и вычитать статистику байтовых счётчиков IP
Firewall правил;
- Возможно различать IP Firewall правила с одинаковыми номерами;
- IP Firewall правила могут быть динамически добавлены или уничто-
жены в системе, модуль будет корректно работать в такой ситуа-
ции.
Перед чтением следующего параграфа необходимо прочитать в документации
к IP Firewall как устанавливать IP Firewall правила для подсчёта тра-
фика.
Имя системы учёта -- ipfw.
ФОРМАТ КОНФИГУРАЦИОННОГО ФАЙЛА
Конфигурация модуля интегрирована в ipa.conf(5). Конфигурационный пре-
фикс модуля -- ``ipfw''.
Чтобы получать статистику трафика некоторого IP Firewall правила,
используйте параметр ipfw:rules:
ipfw:rules = [-]номер[.подномер];
Этот параметр должен быть расположен в секции rule.
В оригинальном формате IP Firewall правила присутствует только один
номер правила. Дополнительный подномер может быть добавлен чтобы раз-
личать правила с одинаковыми номерами, первое правило с некоторым номе-
ром имеет подномер равный 0, второе правило с таким же номером имеет
подномер 1 и т.д. Если подномер не указан, то он считается равным 0.
Понятие подномер в IP Firewall правиле является новым и не упоминается
в странице документации ipfw(8).
Перед номером IP Firewall правила может быть поставлен знак `-', в этом
случае модуль будет вычитать статистику этого правила.
Несколько IP Firewall правил, разделённые пробелами, могут быть указаны
в параметре ipfw:rules, в этом случае их статистика будет суммироваться
или вычитаться, в зависимости от знака перед номером правила.
Параметр ipfw:maxchunk позволяет безопасно очищать таблицу IP Firewall
правил или уничтожать и добавлять одни и те же правила во время работы
ipa(8):
ipfw:maxchunk = <bytes>;
Этот параметр должен быть расположен в секциях global и rule.
Если старое значение байтового счётчика больше чем новое значение этого
же счётчика некоторого IP Firewall правила и если различие (учитывая
переполнение) между ними больше чем значение параметра ipfw:maxchunk,
то модуль берёт абсолютное значение байтового счётчика этого правила
как прирост статистики этого правила.
Слишком малое значение параметра ipfw:maxchunk может привести к непра-
вильным результатам. Значение этого параметра должно быть больше чем
различие между байтовыми счётчиками любого IP Firewall правила, указан-
ного в правиле в ipa.conf(5), в течении времени обновления базы данных.
Было бы лучше проверять некоторые переменные в структурах ядра IP Fire-
wall и определять было ли изменено IP Firewall правило. Но таких пере-
менных нет в структурах ядра IP Firewall (на момент написания этой
страницы документации), поэтому необходимо использовать параметр
ipfw:maxchunk.
Модуль всегда отправляет лог-сообщение, когда IP Firewall правило пере-
полняется или вероятно было изменено (это проверяется при помощи пара-
метра ipfw:maxchunk) и когда IP Firewall правило добавляется в или уни-
чтожается из IP Firewall таблицы ядра. Возможно подавить эти сообщения
используя параметр ipfw:quiet:
ipfw:quiet = <value>;
Этот параметр может быть расположен в секциях global и rule.
По умолчанию значение этого параметра равно нулю, это означает, что все
предупреждающие сообщения посылаются в лог. Если значение этого пара-
метра имеет бит 0x1, то лог-сообщение не посылается если какое-то IP
Firewall правило переполнилось. Если значение этого параметра имеет
бит 0x2, то лог-сообщение не посылается если какое-то IP Firewall пра-
вило было добавлено или уничтожено.
Параметр ipfw:debug помогает отладить модуль:
ipfw:debug = <level>;
Этот параметр должен быть расположен отдельно.
Разрешены только два значения для уровня отладки: 0 и 1. По умолчанию
значение этого параметра равно 0, это означает, что отладка отключена.
Пример:
ac_mod "ipa_ipfw.so";
global {
/* ... */
ac_list = ipfw;
ipfw:quiet = 3;
ipfw:maxchunk = 1G;
}
rule 1 {
/* ... */
ipfw:rules = 100 200.1 300;
}
rule 2 {
/* ... */
ipfw:rules = 100 -200 300.0 300.1;
ipfw:maxchunk = 500M;
}
Первое правило наследует параметр ipfw:maxchunk из секции global, оба
правила наследуют параметр ipfw:quiet из секции global.
ДРУГИЕ ИСТОЧНИКИ
ipfw(8)
СОВМЕСТИМОСТЬ
IP Firewall впервые появился в FreeBSD 2.0-RELEASE. IPFW2 появился
летом 2002 г. Этот модуль должен работать с FreeBSD начиная с версии
3.0-RELEASE.
АВТОР
Andrey Simonenko <simon@comsys.ntu-kpi.kiev.ua>
НЕДОРАБОТКИ
Если вы проинсталлируете новое ядро FreeBSD с изменённым IP Firewall
API, то необходимо пересобрать этот модуль.
Если вы обнаружите какие-либо ошибки, то, пожалуйста, сообщите мне по
email.
4 января 2008 г. IPA_IPFW(8)