Интернет магазин китайских планшетных компьютеров



Компьютеры - Packet Filter - Порядок работы

11 мая 2011


Оглавление:
1. Packet Filter
2. Архитектура
3. Порядок работы
4. Таблицы адресов
5. Блоки правил



Фильтр обрабатывает сетевые пакеты в один или два цикла обработки.

Собственно обработка пакета происходит согласно набору правил. В финале обработки пакет либо отбрасывается, либо пропускается. Каждое правило состоит из набора условий и набора указаний, выполняемых при удовлетворении набора условий. Правила бывают трёх видов:

match
Если пакет удовлетворяет условиям правила, то указания из данного правила выполняются моментально. match-правила обычно используются для NAT, журналирования трафика, QoS и так далее.
block
Если пакет не удовлетворяет условиям правила, то он помечается как подлежащий блокировке. PF позволяет как просто отбросить пакет, так и сгенерировать ICMP-сообщение об ошибке.
pass
Если пакет удовлетворяет условиям правила, то он помечается как подлежащий пропуску далее.

Указания, записанные для block- и pass-правил, выполняются после завершения прохода по набору правил. Если для block- или pass-правила сделана соответствующая пометка, то при удовлетворении пакетом условий данного правила, проход по набору правил будет прерван с выполнением соответствующих указаний. Такой порядок позволяет задать серию правил, постепенно сужающих область применения, что выглядит более естественно, чем обратный порядок. Если ни одно block- или pass-правило не подошло, то пакет пропускается: это мера защиты от случайной ошибки при конфигурировании сетевого экрана.

Правила могут включать в себя следующие указания:

нормализация
сборка фрагментированных и отбрасывание заведомо некорректных пакетов, а также другие операции, упрощающие дальнейшую обработку;
трансляция
перенаправление трафика на уровнях 2 и 3 модели OSI, с поддержкой NAT и пулов адресов назначения;
приоритезация
принудительное выставление типа обслуживания пакета, помещение пакета в ту или иную очередь ALTQ;
фильтрация
принятие окончательного решения о пропуске или блокировке сетевого пакета.

Возможности фильтрации

PF умеет фильтровать пакеты по следующим параметрам:

  • Сетевой адрес источника и получателя пакета
  • Сетевой интерфейс, на котором обрабатывается пакет, а также на котором он изначально появился в системе
  • Корректность маршрута, с которого пришёл пакет
  • Флаги
  • Биты типа обслуживания
  • Тип и код ICMP
  • Теги пакетов
  • Локальный пользователь
  • Различные счётчики соединений
  • Вероятность

Последний параметр позволяет создавать правила, которые срабатывают «иногда», что помогает бороться с DDoS-атаками.

Теги назначаются правилами PF. У каждого пакета может быть не более одного тега. Правилом можно установить/заменить тег, но нельзя убрать существующий. Тег сохраняется у пакета на всё время прохождения по сетевому стеку.

PF также позволяет переопределить используемую таблицу маршрутизации, за счёт чего можно переносить пакеты между доменами маршрутизации. Разумеется, это имеет смысл только для входящего трафика, для которого маршрут ещё не определён стандартными средствами.

Для правил можно указывать метки. Одна и та же метка может соответствовать нескольким правилам. Метки позволяют лучше идентифицировать правила из пользовательского пространства, а также отключать встроенную оптимизацию набора правил для определённых правил; последнее может быть нужно, например, для биллинговых систем.

PF не только умеет проводить фильтрацию с учётом контекста, но поддерживает три варианта работы в этом режиме:

keep state
простой режим, запоминается только соответствие пар сетевых адресов и портов; этот режим применим не только к TCP, но и к UDP.
modulate state
более сложный режим, в котором PF самостоятельно выбирает начальные значения счётчиков пакетов TCP; это обеспечивает улучшенную защиту в случаях, когда одна из сторон выбирает плохие с точки зрения вероятности угадывания значения этих счётчиков.
synproxy state
в этом режиме PF самостоятельно устанавливает TCP-соединение с другой стороной, и только после этого соответствующие пакеты отсылаются инициатору; это обеспечивает защиту от атак типа SYN-флуд с подделкой адреса отправителя.

По умолчанию все pass-правила учитывают контекст, а относящиеся к TCP ещё и проверяют флаги SYN-пакета. Это сделано поскольку позволяет заметно сократить объём правил в типичных ситуациях. При этом можно принудительно отказаться от этих возможностей для конкретного правила или всего их набора. Следует также учитывать, что если пакет не попал ни под одно pass-правило, то никаких проверок и создания контекста не происходит.



Просмотров: 4313


<<< NPF
Shorewall >>>