один из вариантов:
ядро компилиш со следующими опциями:
options IPFIREWALL #finger
options IPFIREWALL_VERBOSE #log
options IPFIREWALL_DEFAULT_TO_ACCEPT # можеш этого и не ставить но тогда придется настраивать файрвол, а тебе пока надо просто запустить чтобы все это работало
options IPFILTER #поддержка ipnat
options IPFILTER_LOG
редактируеш /etc/rc.conf
defaultrouter="xx.xx.xx.xx"
gateway_enable="YES"
firewall_enable="NO"
ipnat_enable="YES"
ipnat_program="/sbin/ipnat -CF -f"
ipnat_rules="/etc/ipnat.rules"
ipnat_flags=""
без всяких там routed
далее /etc/ipnat.rules
map rl0 10.0.0.0/24 -> 0.0.0.0/32 proxy port ftp ftp/tcp
map rl0 10.0.0.0/24 -> 0.0.0.0/32 portmap tcp/udp 40000:65000
map rl0 10.0.0.0/24 -> 0.0.0.0/32
перезагружаеш машину.
вот вроде и все на машине с виндой пишеш адрес шлюза 192.168.1.2 и должно все заработать.
примечание:
xx.xx.xx.xx адрес шлюза для твоего соединения с инетом т.е. ip шлюза твоего провайдера, указвать обязательно иначе твоя машина с free в инет выйти не сможет.