Это старая версия документа.
Маскарадинг (FreeBSD pf)
собираем ядро с опциями:
device pf #PF OpenBSD packet-filter firewall device pflog #logging support interface for PF device pfsync #synchronization interface for PF
Автозагрузка /etc/rc.conf добавляем:
pf_enable="YES" pf_rules="/etc/pf.rules" pf_flags="" pflog_enable="YES" pflog_logfile="/var/log/pflog" pflog_flags=""
Файл настроек **pf.rules**:
ext_ip="19х.1хх.хх.хх" # внешний ip-адрес сервера int_if="rl1" # интерфейс смотрящий в локалку int_net_vpn="xx.yy.zz.ff" # внутренняя VPN-сеть local_net="..." # внутрення локалка int_ip="..." # внутренний ип в локалке
nat on rl0 from $int_net_vpn to any -> $ext_ip # собсно NAT
pass quick on lo0 all # разрешаем все на lo0
pass quick from $ext_ip to any # Разрешаем траф pass quick from any to $ext_ip # на внешнем ip
pass quick from $int_net_vpn to any # разрешаем любой траф pass quick from any to $int_net_vpn # по впн-сети
block in quick on $int_if proto { tcp udp } from $local_net to $int_ip port { 2 5 110 143 3128 3306 } # блокируем платные сервисы из локалки pass in quick on $int_if from $local_net to $int_ip
block in all # все осальное блокируем по умолчанию