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)