IvanI Posted February 15, 2007 Posted February 15, 2007 немогу сообразить как совместить freebsd 6.2 ng_netflow ng_nat ipfw шейпер на внутреннем интерфейсе нужен нетфлов в обе стороны, шейпер в обе стороны, на внешнем нат хочется обойтись минимальным количеством модулей может у кого есть наюроски или рабочий конфиг? Вставить ник Quote
IvanI Posted February 16, 2007 Author Posted February 16, 2007 собрал 2 варианта: ядро #cd /usr/src/sys/i386/conf #cp GENERIC ядро редактировать ядро собрать ядро со следующими опциями: options NETGRAPH options NETGRAPH_IPFW options LIBALIAS options NETGRAPH_NAT options NETGRAPH_NETFLOW options NETGRAPH_SPLIT options NETGRAPH_KSOCKET options DUMMYNET options HZ=1000 options IPFIREWALL_DEFAULT_TO_ACCEPT options TCP_DROP_SYNFIN options IPFIREWALL options IPFIREWALL_FORWARD #options IPFIREWALL_FORWARD_EXTENDED #в 6.2 нету #config ядро #cd ../compile/ядро #make depend #make #make install вариант 1 в нетграфе lan_if_="de1:" ngctl mkpeer lan_if_ tee lower right ngctl name lan_if_lower tee ngctl connect lan_if_ tee: upper left ngctl mkpeer tee: netflow right2left iface0 ngctl name tee:right2left netflow ngctl connect tee: netflow: left2right iface1 ngctl mkpeer netflow: ksocket export inet/dgram/udp ngctl msg netflow:export connect inet/192.168.20.33:4444 # экспорт ngctl msg netflow: setdlt { iface=0 dlt=12 } ngctl msg netflow: setifindex { iface=0 index=1000 } ngctl msg netflow: setdlt { iface=1 dlt=12 } ngctl msg netflow: setifindex { iface=1 index=1001 } ngctl mkpeer ipfw: nat 60 out ngctl name ipfw:60 nat ngctl connect ipfw: nat: 61 in ngctl msg nat: setaliasaddr 192.168.130.43 # внешний ИП вариант 2 в нетграфе ngctl mkpeer ipfw: tee 60 left ngctl name ipfw:60 tee ngctl mkpeer tee: nat right out ngctl name tee:right nat ngctl connect ipfw: nat: 61 in ngctl msg nat: setaliasaddr a.b.c.d ngctl mkpeer tee: netflow left2right iface0 ngctl name tee:left2right netflow ngctl connect tee: netflow: right2left iface1 ngctl mkpeer netflow: ksocket export inet/dgram/udp ngctl msg netflow:export connect inet/127.0.0.1:10000 ngctl msg netflow: setdlt { iface=0 dlt=12 } ngctl msg netflow: setifindex { iface=0 index=5 } ngctl msg netflow: setdlt { iface=1 dlt=12 } ngctl msg netflow: setifindex { iface=1 index=5 } фаервол ipfw -f flush ipfw -f pipe flush wan_if="de0" wan_adr="192.168.130.43" lan_if="de1" lan_adr="192.168.20.38" lan="192.168.0.0/16" inet_noshape="10.0.0.0/18" inet="10.0.0.0/16" ipfw add 1 allow ip from $lan to $lan_adr in via $lan_if #разрешен лан ип из лан сети на лан иф ipfw add 2 allow ip from $lan_adr to $lan out via $lan_if #разрешен лан ип из лан сети на лан иф ipfw add 3 netgraph 60 all from $inet to any out via $wan_if #нат на внешнем иф ipfw add 4 netgraph 61 all from any to $wan_adr in via $wan_if #нат на внешнем иф ipfw add 5 allow ip from any to any via lo #разрешено все на ло ipfw add 16 allow ip from any to $wan_adr in via $wan_if #разрешен ван ип на ван иф ipfw add 17 allow ip from $wan_adr to any out via $wan_if #разрешен ван ип на ван иф ipfw add 9 deny ip from 10.0.0.0/8 to any in via $wan_if #запрещены приватные сети на внешнем иф ipfw add 10 deny ip from $wan_adr to 10.0.0.0/8 out via $wan_if #запрещены приватные сети на внешнем иф ipfw add 11 deny ip from $lan to any in via $wan_if #запрещены приватные сети на внешнем иф ipfw add 12 deny ip from $wan_adr to $lan out via $wan_if #запрещены приватные сети на внешнем иф ipfw add 13 deny ip from 172.16.0.0/12 to any in via $wan_if #запрещены приватные сети на внешнем иф ipfw add 14 deny ip from $wan_adr to 172.16.0.0/12 out via $wan_if #запрещены приватные сети на внешнем иф ipfw add 41 allow ip from 10.0.3.160 to any in via $lan_if #инет+почта разрешена ipfw add 42 allow ip from 10.0.4.243 to any in via $lan_if #инет+почта разрешена ipfw add 43 allow ip from 10.0.1.82 to any in via $lan_if #инет+почта разрешена ipfw add 44 allow ip from 10.0.1.106 to any in via $lan_if #инет+почта разрешена ipfw add 45 allow ip from 10.0.6.37 to any in via $lan_if #инет+почта разрешена ipfw add 46 allow ip from 10.0.2.16 to any in via $lan_if #инет+почта разрешена ipfw add 49 deny tcp from $inet to any 25 in via $lan_if #почта запрещена остальным ipfw add 50 allow ip from $inet_noshape to any in via $lan_if #разрешено все для ношейп инет ipfw add 50 allow ip from any to $inet_noshape out via $lan_if #разрешено все для ношейп инет ipfw add 60 forward 192.168.20.14 ip from 192.168.20.1 to any #форвард инет серверу ipfw add 61 allow ip from 192.168.20.1 to any out via $lan_if #форвард инет серверу ipfw add 62 forward 192.168.20.14 ip from 10.0.192.0/18 to any #форвард на нат реальников ipfw add 63 allow ip from 10.0.192.0/18 to any out via $lan_if #форвард на нат реальников ipfw add 65000 deny ip from any to any #запрет всего ipfw pipe 70 config bw 1024Kbit/s queue 192KBytes ipfw add 70 pipe 70 ip from any to 10.0.131.64/26 out via $lan_if ipfw pipe 71 config bw 256Kbit/s queue 48KBytes ipfw add 71 pipe 71 ip from 10.0.131.64/26 to any in via $lan_if ipfw pipe 72 config bw 256Kbit/s queue 48KBytes ipfw add 72 pipe 72 ip from any to 10.0.131.0/28 out via $lan_if ipfw pipe 73 config bw 256Kbit/s queue 48KBytes ipfw add 73 pipe 73 ip from 10.0.131.0/28 to any in via $lan_if ipfw pipe 74 config bw 256Kbit/s queue 48KBytes ipfw add 74 pipe 74 ip from any to 10.0.131.192/26 out via $lan_if ipfw pipe 75 config bw 128Kbit/s queue 24KBytes ipfw add 75 pipe 75 ip from 10.0.131.192/26 to any in via $lan_if ipfw pipe 101 config bw 200Kbit/s queue 37KBytes 1 ipfw add 101 pipe 101 ip from any to 10.0.136.1 out via $lan_if ipfw pipe 2101 config bw 200Kbit/s queue 37KBytes 1 ipfw add 2101 pipe 2101 ip from 10.0.136.1 to any in via $lan_if ipfw pipe 102 config bw 200Kbit/s queue 37KBytes 1 ipfw add 102 pipe 102 ip from any to 10.0.136.2 out via $lan_if ipfw pipe 2102 config bw 200Kbit/s queue 37KBytes 1 ipfw add 2102 pipe 2102 ip from 10.0.136.2 to any in via $lan_if поробовать пока неуспел тока ядро собрал покритикуйте/подскажите грабли Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.