Пакетный фильтр PF

Автор работы: Пользователь скрыл имя, 24 Марта 2014 в 00:48, доклад

Описание

Пакетный Фильтр (с этого места именуемый PF) это OpenBSD реализация для фильтрации TCP/IP трафика и преобразования сетевых адресов. PF также способен нормализовать и ограничивать TCP/IP трафик и предоставлять контроль над полосой пропускания и приоритезацией пакетов.

Работа состоит из  1 файл

10 Пакетный фильтр PF.docx

— 26.30 Кб (Скачать документ)

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

 

 

 

 

 

Домашнее задание (эссе №10)

По дисциплине: «Информационные таможенные технологии»

на тему: «Пакетный фильтр PF»

 

 

 

 

 

Выполнила: студентка 4-ого курса

группа 4440

Баллы___________________________

Подпись__________________________

«____»___________________2013 год

 

Санкт-Петербург

2013

 

Пакетный фильтр PF

Пакетный Фильтр (с этого места именуемый PF) это OpenBSD реализация для фильтрации TCP/IP трафика и преобразования сетевых адресов. PF также способен нормализовать и ограничивать TCP/IP трафик и предоставлять контроль над полосой пропускания и приоритезацией пакетов.

PF состоит из двух частей: собственно фильтра пакетов и утилиты, которая предоставляет интерфейс для управления межсетевым экраном. Фильтр полностью работает в контексте ядра операционной системы, взаимодействие с ним осуществляется через системный вызов ioctl.

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

 

Порядок работы:

Фильтр обрабатывает сетевые пакеты в один (при посылке пакета с того же компьютера, на котором стоит фильтр, на другой компьютер, или наоборот) или два (при пересылке внутри компьютера или когда компьютер с фильтром исполняет роль сетевого шлюза) цикла обработки.

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

 

Таблицы адресов:

Одной из самых интересных возможностей PF является работа с таблицами адресов:

    1. Таблицы могут содержать как IPv4-, так и IPv6-адреса, вместе с маской подсети для каждого;
    2. Записи в таблице могут быть быть помечены как исключение, что позволяет кратко описывать сложную топологию (см. ниже);
    3. Поиск по таблице происходит быстрее, чем линейный поиск по набору адресов (и заметно быстрее, чем перебор правил, различающихся лишь адресами в одном и том же параметре);
    4. Таблицы могут быть произвольным образом изменены без необходимости перезагружать правила;
    5. По каждой записи в таблице может вестись статистика;
    6. Посредством опции фильтрации overload в выбранную таблицу могут помещаться адреса, превышающие те или иные ограничения на количество соединений;
    7. Записи в таблицах могут быть автоматически удалены по достижении указанного времени их существования.

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

Более того, путём использования пометок об исключении адресов (диапазонов адресов) можно путём всего трёх записей в таблице указать такую конфигурацию: в таблицу входит диапазон 10.0.0.0/8, кроме 10.0.3.192/26, плюс ещё входит 10.0.3.211. Соответствующие записи в таблицу можно заносить в любом порядке, PF будет их использовать в соответствии с их префиксами (маской подсети).

 

Блоки правил:

Правила можно объединять в блоки (anchors в оригинальной документации). При этом можно для каждого блока задавать общие параметры, которые будут действовать для всех правил в блоке.

Блоки обрабатываются наравне с правилами и могут вкладываться друг в друга. При этом содержимое блоков может изменяться независимо друг от друга, а также от общего списка правил. Последний, по сути, является тем же блоком.

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

 

Список использованной литературы

  1. Серова Л. И., Марковская Л. Н. Документационное обеспечение управления. Учебное пособие. Санкт-Петербург, 2010;
  2. http://library.tuit.uz/skanir_knigi/book/deloproizvodstvo/deloproizvodstvo.htm
  3. http://tolgas.ru:8080/edt/ef_eo/edt4399/2.htm [электронный ресурс];
  4. http://emag.iis.ru/arc/infosoc/emag.nsf/BPA/c216856412487c2fc3256d7400441374 [электронный ресурс].

 


Информация о работе Пакетный фильтр PF