Во первых Вы должны установить FreeBSD
Во вторых:
Откомпилировать ядро с опциями:device pf
device pflog
device pfsync
Добавить в /etc/rc.conf
gateway_enable="YES"
pf=YES
pf_rules="/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""
В /etc/pf.conf
#интерфейс смотрящий во внешнюю сеть например rl1
ext_if_1="rl1"
##интерфейс смотрящий во внутренюю сеть например rl0
int_if="rl0"
table <users> persist file "/etc/users"
nat on $ext_if_1 inet from <users> to any -> $ext_if_1
pass on $ext_if_1 all
pass on $int_if all
Добавить в /etc/users Внутрение адреса Например:
192.168.10.146/24
Запуск:
#устанавливаем gate по умолчанию ХХХ.ХХХ.ХХХ.ХХХ-это ИП
route add default ХХХ.ХХХ.ХХХ.ХХХ
pfctl -d
pfctl -e
pfctl -f /etc/pf.conf
Все...
Далее копаем маны и Гугл по поводу:
pf - то, с помощью чего все и происходит...
FreeBSD,FreeBSD Handbook
PF: Пакетный фильтр:
http://www.dreamcatcher.ru//docs/pf.html
http://dreamcatcher.ru/docs/pf-faq-part2-rus.html
https://www.opennet.ru/base/net/pf_faq.txt.html