В статье описана настрока и простой конфиг 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

Или просто перезагрузитесь.