>Прошу помощи. С радостью приму советы по поводу того, что я может
>быть вообще не так делаю Компилируйте новое ядро с поддержкой pf
device pf
device pflog
device pfsync
Содержимое /etc/pf.conf
ext_if="tun0"
int_if="rl1"
ext_addr="1.2.3.87"
int_addr="192.168.5.254"
table <allow_ip> {192.168.5.1, 192.168.5.2, 192.168.5.5, 192.168.5.201}
table <allow_rdp> {182.12.48.208/28, 182.102.37.208/28}
scrub in all
nat on $ext_if from $int_if:network to any -> ($ext_if)
rdr on $ext_if proto tcp from <allow_rdp> to ($ext_if) port 3389 -> 192.168.5.1 port 3389
block all
pass on {lo, gif0} all
pass on $int_if inet proto icmp all
pass on $int_if proto {tcp, udp} from <allow_ip> to any
pass on $int_if proto {tcp, udp} from any to <allow_ip>
pass on $ext_if proto {tcp, udp} from <allow_ip> to any
pass on $ext_if proto {tcp, udp} from any to <allow_ip>
pass on $ext_if inet proto icmp icmp-type {0, 3, 4, 8, 11, 12}
pass on $ext_if proto {esp, ipencap, ah} all
pass in on $ext_if proto tcp from any to ($ext_if) port 22 keep state
pass in on $ext_if proto tcp from <allow_rdp> to ($ext_if) port 80 keep state
pass out on $ext_if proto { tcp, udp } all flags S/SA keep state
Файрволл вполне работоспособный с натом нет проблем. Конфигурация самого pf весьма прозрачна, фильтр удобен и быстр. Обратит е внимание, что в правилах внешний ИП не фигурирует.