Hello, Andrey!

On Fri, Oct 25, 2013 at 09:08:17AM +0300
[email protected] wrote about "[freebsd] IPFW":
> Доброго времени суток.
> Не могу понять почему для XP/2003 нормально нат работает пинги ходят в мир и 
> сайтики открываются без проблем, а под win7 только пинг работает причем на 
> разных ноутбуках с win7 одно и тоже. В другой сети на win7 все ок.

Советы:
1. воспользуйтесь tcpdump и смотрите куда винда7 делает запросы и
почему они не работают. Проверьте днс-севера какие указаны.

2. В файерволе стремитесь к минимуму правил, правила 450-453 и тд
можно сократить в одно правило такого типа 

... ip from table(12) to any out xmit ..

А адреса внести в таблицу.

3. тоже с правилами 200,205,210,220 -- порты можно перечислить через
запятую и ограничиться одним только правилом.

Проврьте еще route print , ipconfig /all на комах где не работает.

Удачи.

> net.inet.ip.fw.one_pass: 1
> net.link.ether.ipfw: 1
> 
> 
> win7
> ${FwCMD} add 00452 nat 1 ip from 192.168.1.201 to any out xmit ${LanOut}
> 
> 2003
> ${FwCMD} add 00451 nat 1 ip from 192.168.1.200 to any out xmit ${LanOut}
> 
> XP
> ${FwCMD} add 00499 nat 1 ip from 192.168.1.250 to any out xmit ${LanOut}
> 
> 
> Правила IPFW
> #!/bin/sh
> FwCMD="/sbin/ipfw"
> LanOut="alc0"
> LanIn="fxp0"
> LanIn2="fxp1"
> 
> IpOut="193.238.aaa.bbb"
> NetOut="193.238.zzz.xxx"
> NetOutMask="29"
> 
> IpIn="192.168.1.240"
> NetIn="192.168.1.0"
> NetInMask="24"
> 
> IpIn2="172.16.0.1"
> NetIn2="172.16.0.0"
> NetInMask2="12"
> 
> ${FwCMD} -f flush
> 
> #arp
> ${FwCMD} add 5 allow mac-type 0x0806
> ${FwCMD} add 10 skipto 500 all from any to any layer2 in
> ${FwCMD} add 20 skipto 100 all from any to any not layer2 in
> ${FwCMD} add 30 skipto 100 all from any to any not layer2 out
> ${FwCMD} add 40 skipto 500 all from any to any layer2 out
> 
> ${FwCMD} add 00100 check-state
> 
> ${FwCMD} add 00101 count ip from any to any in via ${LanOut}
> ${FwCMD} add 00102 count ip from any to any out via ${LanOut}
> 
> ${FwCMD} add 00103 count ip from any to any in via ${LanIn}
> ${FwCMD} add 00104 count ip from any to any out via ${LanIn}
> 
> ${FwCMD} add 00105 count ip from any to any in via ${LanIn2}
> ${FwCMD} add 00106 count ip from any to any out via ${LanIn2}
> 
> #Allow any to any for lo0 and LanIn
> ${FwCMD} add 00115 allow ip from any to any via lo0
> 
> ${FwCMD} add 00116 deny ip from ${NetIn}/${NetInMask} to 
> ${NetIn2}/${NetInMask2} via ${LanIn}
> ${FwCMD} add 00117 deny ip from ${NetIn2}/${NetInMask2} to 
> ${NetIn}/${NetInMask} via ${LanIn}
> 
> ${FwCMD} add 00118 deny ip from ${NetIn2}/${NetInMask2} to 
> ${NetIn}/${NetInMask} via ${LanIn2}
> ${FwCMD} add 00119 deny ip from ${NetIn}/${NetInMask} to 
> ${NetIn2}/${NetInMask2} via ${LanIn2}
> 
> ${FwCMD} add 00120 allow ip from any to any via ${LanIn}
> ${FwCMD} add 00121 allow ip from any to any via ${LanIn2}
> 
> #Service on LanOut
> ${FwCMD} add 00200 allow tcp from any to ${IpOut} dst-port 2112 via ${LanOut} 
> keep-state
> ${FwCMD} add 00205 allow tcp from any to ${IpOut} dst-port 2332 via ${LanOut} 
> keep-state
> ${FwCMD} add 00210 allow tcp from any to ${IpOut} dst-port 80 via ${LanOut} 
> keep-state
> ${FwCMD} add 00215 allow udp from any to ${IpOut} dst-port 53 via ${LanOut} 
> keep-state
> ${FwCMD} add 00220 allow tcp from any to ${IpOut} dst-port 25 via ${LanOut} 
> keep-state
> 
> ${FwCMD} add 00290 allow tcp from any to ${IpOut} dst-port 48995-48998 via 
> ${LanOut} keep-state
> 
> ${FwCMD} add 00295 allow tcp from any to ${IpOut} 49152-65535 via ${LanOut} 
> keep-state
> 
> #Nat
> ${FwCMD} nat 1 config ip ${IpOut} log reset same_ports deny_in
> ${FwCMD} add 00400 nat 1 ip from any to ${IpOut} in recv ${LanOut}
> ${FwCMD} add 00410 nat 1 ip from ${IpOut} to any out xmit ${LanOut}
> ${FwCMD} add 00415 nat 1 ip from ${NetIn2}/${NetInMask2} to any out xmit 
> ${LanOut}
> ${FwCMD} add 00450 nat 1 ip from 192.168.1.235 to any out xmit ${LanOut}
> ${FwCMD} add 00451 nat 1 ip from 192.168.1.200 to any out xmit ${LanOut}
> ${FwCMD} add 00452 nat 1 ip from 192.168.1.201 to any out xmit ${LanOut}
> ${FwCMD} add 00453 nat 1 ip from 192.168.1.202 to any out xmit ${LanOut}
> ${FwCMD} add 00497 nat 1 ip from 192.168.1.248 to any out xmit ${LanOut}
> ${FwCMD} add 00498 nat 1 ip from 192.168.1.249 to any out xmit ${LanOut}
> ${FwCMD} add 00499 nat 1 ip from 192.168.1.250 to any out xmit ${LanOut}
> 
> ###### LAYER 2 #######
> #Allow any to any for lo0 and LanOut on Layer2
> ${FwCMD} add 00500 allow ip from any to me layer2 in recv ${LanOut}
> ${FwCMD} add 00505 allow ip from me to any layer2 out xmit ${LanOut}
> ${FwCMD} add 00510 allow ip from any to me layer2 in recv lo0
> ${FwCMD} add 00515 allow ip from me to any layer2 out xmit lo0
> 
> ${FwCMD} add 00600 allow ip from any to any layer2 via ${LanIn}
> ${FwCMD} add 00605 allow ip from any to any layer2 via ${LanIn2}
> 
> ###########
> ${FwCMD} add 65533 deny log logamount 0 ip from any to any not layer2
> ${FwCMD} add 65534 deny log logamount 0 ip from any to any layer2

-- 
 Lystopad Aleksandr 

Ответить