Фильтрация пакетов**Pácket Fílter** (PF) — файрвол, разрабатываемый в рамках проекта OpenBSD. Обладает высокой скоростью работы, удобством в конфигурировании и большими возможностями, включая поддержку IPv6. На данный момент используется, помимо OpenBSD, в NetBSD и FreeBSD, а также основанных на этих трёх MirOS BSD, DesktopBSD, pfSense и других. Начиная с версии 10.7 PF используется в Mac OS X. PF был портирован на Microsoft Windows и лёг в основу файрвола Core Force[1]. Для работы фаервола нужно изначально разрешить загрузку соответствующих модулей В /boot/loader.conf добавляем следующие строки ''pf_load="YES"\\ pflog_load="YES"'' Далее нужно разрешить загрузку соответствующих служб в /etc/rc.conf '' pf_enable="YES"\\ pflog_enable="YES"\\ pf_rules="/etc/pf.conf" '' Сам файл конфигурации состоит из следующих конструкций • Макроопределения • Таблицы • Параметры • Нормализация пакетов • Управление полосой пропускания • Преобразование адресов • Перенаправление • Фильтрация пакетов пример файла /etc/pf.conf '' interface="em0" \\ scrub in all\\ block in on $interface\\ #разрешить входящий трафик SSH и POP3 из локальной сети \\ pass in on $interface proto tcp from 192.168.1.0/24 to $interface port 22\\ pass in on $interface proto tcp from 192.168.1.0/24 to $interface port 110\\ #разрешить входящий трафик SMTP (25), HTTP (80) и HTTPS (443)\\ pass in on $interface proto tcp from any to $interface port 25\\ pass in on $interface proto tcp from any to $interface port 80\\ pass in on $interface proto tcp from any to $interface port 443\\ #разрешить входящие запросы к серверу DNS\\ pass in on $interface proto tcp from any to $interface port 53\\ pass in on $interface proto udp from any to $interface port 53\\ #разрешить исходящий трафик\\ pass out on $interface proto { tcp, udp } all\\ ''