PF: Scrub (Packet Normalization)
Нормализация трафика нужна для того, чтобы исключить неопределённость с тем куда направляется пакет. Кроме того, при нормализации собираются вместе фрагментированные пакеты, происходит защита операционных систем от некоторого вида атак и отбрасываются TCP пакеты с невозможным сочетанием флагов. Простейшая директива выглядит так: scrub in all.
scrub in all раскрывается в scrub in all fragment reassemble
Это приводит к нормализации всего входящего трафика на всех интерфейсах.
Одна из возможных причин для неиспользования нормализации — использование NFS. Некоторые не OpenBSD платформы используют странные пакеты — фрагментированные, но с выставленным битом «нефрагментировано», которые должны отбрасываться пакетным фильтром при нормализации. Эту проблему можно разрешить при использовании опции no-df. Другая причина может состоять в том, что некоторые многопользовательские сетевые игры блокируются пакетным фильтром с запущенным нормализатором. Во всех остальных случаях, кроме приведённых весьма необычных ситуаций, нормализация трафика крайне желательна.
Синтаксис директивы scrub весьма напоминает синтаксис правил фильтрации (см. Раздел C.2.1.4, «Фильтрация пакетов»). Как и в случае с NAT трансляцией, первое правило выигрывает. Перед директивой scrub можно употреблять ключевое слово no, чтобы указанные пакеты не нормализовались.
Scrub имеет следующие опции:
- no-df: Очищает бит «нефрагментировано» из заголовка IP. Про некоторые операционные системы известно, что они выставляют этот бит на фрагментированных пакетах при работе с NFS. Нормализатор будет отбрасывать такие пакеты, если не указана данная опция. Поскольку некоторые операционные системы генерируют такие пакеты с нулевым идентификатором IP, рекомендуется употреблять данную опцию вместе с опцией random-id.
- random-id: Замещать идентификатор IP случайным значением для компенсации некоторых систем использующих предсказуемые идентификаторы. Опция может применяться только к нефрагментированным пакетам.
- min-ttl num: Выставить минимальный TTL в пакете IP.
- max-mss num Выставить максимальный размер сегмента в заголовке IP.
- fragment reassemble: Буферизовать входящий трафик и собирать вместе фрагментированные пакеты перед отправкой на правила фильтра. Выигрыш в том, что фильтр имеет дело с заведомо нефрагментированным трафиком и видит пакет целиком. Проигрыш в расходе памяти и замедлении прохождения пакетов через пакетный фильтр.
- fragment crop: В норме, при фрагментации IP пакетов они должны нарезаться на части без перехлёстов. Если фрагменты повторяются или накладываются, это не нормальная ситуация. В таком случае можно сделать одно из двух: либо повторы выкинуть, а накладывающиеся фрагменты обрезать, либо выкинуть и то и другое по параноидальным соображениям. Первое делает опция fragment crop, второе — fragment drop-ovl. В обоих случаях пакеты не буферизируются как в случае fragment reassemble.
- fragment drop-ovl: Выбрасывать пакеты в которых происходят повторы и наложения (см. пояснение в предыдущей опции).
- reassemble tcp: Нормализация соединений TCP на основе таблицы состояний. При использовании данной опции нельзя указывать направление in/out. Осуществляется следующая нормализация:
- Ни одна из сторон не может занижать TTL. Это нужно для предотвращения атак на брандмауэр, когда злоумышленник занижает TTL с целью замусорить таблицу состояний. TTL выставляется в наивысшее значение случившееся во время коннекта.
- Выставляется случайный timestamp в заголовке IP, с тем, чтобы злоумышленник не мог догадаться как много машин находится за шлюзом с NAT.
Examples: scrub in on fxp0 all fragment reassemble min-ttl 15 max-mss 1400 scrub in on fxp0 all no-df scrub on fxp0 all reassemble tcp
Крупнейшая в Европе школа английского языка
Промокоды, акции и подарки, чтобы Ваше обучение было не только интересным, но и выгодным. Закажите пробный урок уже сейчас!
skyeng.ru
Онлайн школа английского языка
Английский по скайпу от 680р за урок, без заучивания правил. Эффективно! Удобно! Выгодно! Начните обучение прямо сейчас.
melene.ru
Школа английского языка по Skype
Персональные занятия по разумным ценам. Бесплатные ресурсы для студентов: разговорные клубы, блог, вебинары, книги, тест на определение уровня английского. Пробный урок бесплатно!
englex.ru