Оптимизация набора правил PF

                                                   Опция ruleset-optimization включает или устанавливает режим для оптимизатора набора правил. По умолчанию настройка для ruleset-optimization  в OpenBSD 4.1 эквивалентна none, что означает, что набор правил, который загружен не оптимизирован. В OpenBSD

4.2   и далее, по умолчанию является основным, а это значит, что, когда  набор правил загружен, оптимизатор делает следующие вещи:

·                  Удаляет дублирующиеся правила

·                  Удаляет правила, которые являются подмножеством других правил

·                  Осуществляет  слияние  в  таблицах  при  необходимости  (типичное   rule-to-table

оптимизирующие  пропускающие,  перенаправления  или  блокирующие   правила

основанные на идентичных критериях кроме источника и/или целевых адресов)

·                  Изменяет порядок правил повышая производительность

Например, скажем вы имеет макрос tcp_services = { ssh, www, https } комбинированный с правилом pass proto tcp from any to self port $tcp_services. В другом месте набора правил, у вас есть другое правило, которое говорит pass proto tcp from any to self port ssh. Второе правило явно является подмножеством  первого, а значит они могут быть объединены в одно. Другая распространенная комбинация имеем pass rule like pass proto tcp from any to int_if:network port $tcp_services с  каким-то идентичным правлом, где  целевые  адреса находятся в том же диапазоне, что и все в int_if сети.С          установленным          ruleset- optimization,  оптимизатор  анализирует   загруженный  набор  правил  по  отношению  к фактическому сетевому трафику с целью определения оптимального порядка и быстроты правил.

Вы также можете установить значение опции оптимизации из командной строки с pfctl:

$ sudo pfctl -o basic

Этот пример включает оптимизацию набора правил в режим basic.

С  оптимизацией  могут  удаляться  или  упорядочиваться  правила,  что  значимо  для некоторых статистических данных, – главным образом ряд  оценок в правилах может измениться таким образом, что некоторые могут быть трудно предсказуемыми. Однако в большинстве случаев, эффект незначителен.

Оптимизация                                                                              Опция optimization определяет профили для обработки состояния тайм-аутов. Возможные значения: normal, high-latency, satellite, aggressive, conservation. Рекомендуется иметь по умолчанию в значении normal, если у  вас  очень специфические потребности. Значения high-latency и satellite  являются синонимами, где состояния истекают более медленно, чтобы   компенсировать  потенциально  состояние  high-latency.  А  установка   aggressive состояния истекают раньше, чтобы сохранить память. Это может, в принципе, повышать риск  откидывания простаивающих-но-действительных  соединений,  если  ваша  система близка  к  пределу  нагрузки  трафика,  но   неофициальные  данные  показывают,  что настройки  aggressive  оптимизации   редко,  если  вообще  используется,  препятствует разрешенному трафику.

Установка   сonservative   предназначена   для   того,   чтобы   сохранить    состояния простаивающих соединений, за счет некоторого дополнительного использования памяти.

Фрагментарная сборка                                                             Опция  fragment  reassembly  связаная  с  отменой  была  значительно  переработана  в OpenBSD    4.6,    введения    нового    набора    сборки,    возможность    включить    или выключитьсборку фрагментированных пакетов.  По  умолчанию  set  reassemble  on,  что означает фрагменты собраны и собранные пакеты где, нет фрагментированного бита были

установлены в отдельные фрагменты, которые будут иметь очищенный бит.

Очистка вашего трафика                                                          Следующие  две особенности, которые мы будем обсуждать, скраб и  антиспуф,  часть общей темы: они обеспечивают автоматизированную защиту  от потенциально опасных помех в вашем сетевом трафике. Вместе они обычно упоминаются в качестве инструмента

для «гигиены сети», потому, что они дезинфицируют значительную часть сети.

Нормализация пакета со скрабом                                           В   PF  до  версии  OpenBSD  4.5  включительно,  ключевое  слово  scrub   активирует нормализацию сетевого трафкиа. Со скрабом, фрагментированные пакеты будут собраны, а недействительные фрагменты такие как  перекрывающиеся фрагменты удаляются, так

что в результате пакет, является полным и недвусмысленным.

Включение srub предоставляет меры по защите от определенных видов атак, основанных на неправильной обработке фрагментов пакетов1. Количество дополняющих вариантов, но

простейшая форма подходит для большинства конфигураций.

scrub in

Для того, чтобы некоторые сервисы работали со скрабом, должны быть  установлены конкретные параметры. Один из часто цитируемых примеров некоторые NFS реализации, которые не будут работать со скрабом вообще, если вы используете не-df параметр, чтобы очистить нефрагментированный бит в любых пакетах, которые имеют установленный бит. Некоторые  комбинации   сервисов,  ОС  и  сетевых  конфигураций  может  нуждаться  в некоторых более экзотических опциях скраба.

В OpenBSD 4.6, скраб был понижен из материала автономных правил, чтобы  сделать действующим вы могли бы прикрепить, чтобы передавать или соответствовать правилам

(введением соответствия является одним из основных новых функций PF в OpenBSD 4.6).

Еще  одним  важным  событием  в  том  же  переписывании  кода  скраба  было  то,  что многочисленные  варианты  пакетных  сборок  были  ликвидированы   в   пользу  вновь собранных вариантов, которые просто  включают сборку  или  выключают. С  помощью нового синтаксиса скраба, вам нужно поставить по крайней мере одну опцию в скобках. Следующий  вариант  работает  достаточно  хорошо  в  нескольких  сетях  с  которыми  я работаю:

match in all scrub (no-df max-mss 1440)

Это очищает нефрагментированный бит и устанавливаем максимальны размер сегмента в 1440 байт.

Другие варианты тоже возможны, и  даже если  список  вариантов скраба  несколько сократились в версии OpenBSD 4.6, вы должны иметь возможность для удовлетворения

различных   специфических   потребностей,   просмотрите   страницы   man   и   сделайте

несколько экспериментов. Если вам понадобится для отладки проблемы связанной тесно со   скрабом,   изучите   pf.conf   man   страницу   и   проконсультируйтесь   с   гуру   по соответствующим спискам рассылки.

Источник: Книга о PF, by Peter N.M. Hansteen, Перевод выполнил Михайлов Алексей aka iboxjo

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий