Вот решил таким образом...
Кому интересно могу объяснить что да как...
Надо конечно отсортировать правила но пока времени нет.
Немогу ничего сказать насчёт правильности правил, но конфа работает и это главное... рассудите....
---------------------/etc/rc.conf
firewall_enable="YES"
firewall_type="CLOSED"
firewall_logging="YES"
natd_enable="YES"
natd_interface="sis0"
natd_flags=" -m -s -u -punch_fw 5000:5200"
--------------------------------ournet='192.168.10.0/24'
uprefix='192.168.10'
ifout='sis0'
ifuser='xl0'
ports=pop3,ftp
vse=192.168.10.11
vip2=192.168.10.10
vip=192.168.10.100,192.168.10.101
allowedports="22,25,53,110,143"
natusers="192.168.10.7,192.168.10.28,192.168.10.101"
icq_users="192.168.10.66,192.168.10.53"
msn_users="192.168.10.66,192.168.10.53"
icq_port="5190,5180,5181"
msn_port="1863,443"
jabber="5222,5223,7777"
allowed_nets="10.220.134.0/24,10.220.138.0/24"
ipfw add 50 divert natd all from ${natusers} to any ${allowedports},${jabber},${icq_port},${msn_port} out via sis0
ipfw add 51 divert natd all from ${icq_users} to any ${icq_port} out via sis0
ipfw add 52 divert natd all from ${msn_users} to any ${msn_port} out via sis0
ipfw add 53 divert natd icmp from ${natusers} to any out via sis0
ipfw add 54 divert natd all from ${natusers} to any ftp,1024-65535 out via sis0
ipfw add 60 divert natd all from any to 10.220.138.220 in via sis0
${fwcmd} add 97 allow all from any to me ssh
#${fwcmd} add 200 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${fwcmd} add 210 allow all from 10.220.138.221 to me
${fwcmd} add 220 allow all from me to 10.220.138.221
${fwcmd} add 230 drop all from any to me 3128 via ${ifout}
${fwcmd} add 300 allow ip from any to any via lo0
${fwcmd} add 310 allow tcp from me to any keep-state via ${ifout}
${fwcmd} add 320 allow icmp from any to any
${fwcmd} add 330 allow udp from me to any domain keep-state
${fwcmd} add 340 allow udp from any to me domain
${fwcmd} add 350 allow ip from me to any
${fwcmd} add 49 fwd 127.0.0.1,3128 tcp from ${ournet} to any http out via ${ifout}
${fwcmd} add 400 allow all from 192.168.10.0/24 to any 5222,5223,5269,10015,5262,7777 via sis0
${fwcmd} add allow all from any to me http,https,ssh,ftp,smtp,pop3,5222,5223,5269,10015,5262,7777
#${fwcmd} add deny all from any to me via sis0
#${fwcmd} add 1000 allow all from ${ournet} to me
ipfw pipe 1 config mask dst-ip 0xffffffff bw 19Kbit/s
ipfw pipe 11 config mask src-ip 0xffffffff bw 19Kbit/s
ipfw queue 1 config pipe 1 weight 50 queue 20 mask dst-ip 0xffffffff
ipfw queue 11 config pipe 11 weight 50 queue 20 mask src-ip 0xffffffff
ipfw pipe 2 config mask dst-ip 0xffffffff bw 33Kbit/s
ipfw pipe 22 config mask src-ip 0xffffffff bw 33Kbit/s
ipfw queue 2 config pipe 2 weight 50 queue 20 mask dst-ip 0xffffffff
ipfw queue 22 config pipe 22 weight 50 queue 20 mask src-ip 0xffffffff
ipfw pipe 3 config mask dst-ip 0xffffffff bw 256Kbit/s
ipfw pipe 33 config mask src-ip 0xffffffff bw 256Kbit/s
ipfw queue 3 config pipe 3 weight 100 queue 40 mask dst-ip 0xffffffff
ipfw queue 33 config pipe 33 weight 100 queue 40 mask src-ip 0xffffffff
ipfw add reject tcp from any to any tcpflags fin, syn, rst, psh, ack, urg
ipfw add reject tcp from any to any tcpflags !fin, !syn, !rst, !psh, !ack, !urg
ipfw add reject log tcp from any to any not established tcpflags fin
ipfw add deny log ip from any to any not verrevpath in via sis0
ipfw add count all from any to any
${fwcmd} add 1001 queue 3 all from ${allowed_nets} to ${natusers} via sis0
${fwcmd} add 1002 queue 33 all from ${natusers} to ${allowed_nets} via sis0
${fwcmd} add 1003 queue 2 all from any to ${natusers} via sis0
${fwcmd} add 1004 queue 22 all from ${natusers} to any via sis0
${fwcmd} add 1005 pass all from ${natusers} to any
${fwcmd} add 1006 pass all from any to ${natusers}
>>
>>Можно конечно сделать и так как ты хочешь, чтобы нат действовал только
>>на определенные адреса и протоколы.
>>В этом случае правила нат будут:
>>ipfw add 50 divert natd tcp from 192.168.10.5 to any dst-port 5190,80,110,25
>>out via sis0
>>ipfw add 60 divert natd all from any to ${ipout} in via
>>sis0
>>Где ${ipout} - твой внешний IP