Вот мой конфиг:
В голову приходит только убрать проброс портов и добавить правило со skip to 1000 для пакетов, пришедших от нужного хоста. Где правило №1000 это ещё один НАТ на интерфейсе ng0 с проброшенным портом.#!/usr/local/bin/bash
Progress_service=\
"redirect_port tcp 10.44.44.215:22 43358 \
redirect_port tcp 10.44.44.215:51413 51413"
add="ipfw add"
allow="ipfw add allow"
deny="ipfw add deny"
wan="rl0"
lan="rl1"
tun="ng0"
ks="keep-state"
cs="ipfw add check-state"
deny_host=`cat /var/ipfw/host.deny`
ipfw -f flush
#$allow all from any to any
##################Bad boys:########################
for i in $deny_host
do
$deny ip from $i to any
$deny ip from any to $i
done
###################################################
$allow ip from any to any via lo0
$allow ip from any to any via $lan
$deny ip from 127.0.0.0/8 to any
$deny ip from any to 127.0.0.8/8
#$deny ip from any to 192.168.0.0/16 in recv $wan
#$deny ip from 192.168.0.0/16 to any in recv $wan
$deny ip from any to 172.16.0.0/12 in recv $wan
$deny ip from 172.16.0.0/12 to any in recv $wan
#$deny ip from any to 10.0.0.0/8 in recv $wan
#$deny ip from 10.0.0.0/8 to any in recv $wan
$deny ip from any to 169.254.0.0/16 in recv $wan
$deny ip from 169.254.0.0/16 to any in recv $wan
$deny ip from any to 192.168.0.0/16 in recv $tun
$deny ip from 192.168.0.0/16 to any in recv $tun
$deny ip from any to 172.16.0.0/12 in recv $tun
$deny ip from 172.16.0.0/12 to any in recv $tun
$deny ip from any to 10.0.0.0/8 in recv $tun
$deny ip from 10.0.0.0/8 to any in recv $tun
$deny ip from any to 169.254.0.0/16 in recv $tun
$deny ip from 169.254.0.0/16 to any in recv $tun
ipfw nat 1 config log if $wan deny_in
ipfw nat 2 config log if $tun deny_in $Progress_service
$add nat 1 all from any to any via $wan
$add nat 2 all from any to any via $tun