Это старая версия документа.


Маскарадинг (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 # все осальное блокируем по умолчанию

Дополнительно