В статье описана настрока и простой конфиг Packet Filter для сервера на котором крутятся DNS, e-mail, web сервисы.
Поддержка PF по умолчанию есть в ядре. Так что пересобирать оное не потребуется.
В /etc/rc.conf добавьте строки:pf_enable="YES"
pf_rules="etc/pf.conf"
Отредактируйте файл /etc/pf.conf, удалите всё содержимое добавьте строки:
tcp_services = "{ 22, 25, 80, 143, 443, 993 }" # Порты для SSH, SMTP, HTTP, IMAP, HTTPS, IMAPS
udp_services = "{ 53, 123 }" # Порты для DNS, NTP
icmp_types = "{ echoreq, unreach }" # эхо-ответ и ответ о недоступном ресурсе
set skip on lo0 # Разрешить все соединения по интерфейсу lo0
scrub in # Нормализация всего входящего трафика
block in all # Запретить все входящие соединения
pass out all keep state # Разрешить все соединения от нас
pass in proto tcp to port $tcp_services keep state # Разрешить доступ по ранее указанным tcp-портам
pass in proto udp to port $udp_services keep state # Разрешить доступ по ранее указанным udp-портам
pass in inet proto icmp icmp-type $icmp_types keep state # Разрешить icmp
Далее, в консоли введите:service pf start
pfctl -e
pfctl -f /etc/pf.conf
Или просто перезагрузитесь.