Код: Выделить всё
#!/bin/sh
ipfw='/sbin/ipfw -q'
flush='/sbin/ipfw -q -f flush'
flushnat='/sbin/ipfw -q -f nat flush'
flushpipe='/sbin/ipfw -q pipe flush'
pipe='/sbin/ipfw -q pipe'
#traffmeter='/usr/local/TraffMeter/ipacctd.sh'
${flush}
${flushnat}
${flushpipe}
worknet='172.17.12.0/22' - рабочая сеть
usernet='172.16.0.0/24' - домашняя сеть
vpn='192.168.10.0/24' - адреса получают клиенты при подключении впн
vpn1='192.168.1.14/32' - такой адрес получает отдельный клиент
bibl='192.168.168.0/24' - еще одна сеть
vlans200='172.20.0.0/19' - куча вланов, выделил как одну подсеть
vlan20='10.0.0.0/24' - еще один влан
ng0ip=`ifconfig ng0 inet | grep inet | awk '{print $2}'` - чтобы вычленить адрес динамически выдаваемый
ng0gw=`ifconfig ng0 inet | grep inet | awk '{print $4}'`- чтобы вычленить gateway для адреса динамически выдаваемый
ng2ip=`ifconfig ng1 inet | grep inet | awk '{print $2}'`- чтобы вычленить адрес динамически выдаваемый
ng2gw=`ifconfig ng1 inet | grep inet | awk '{print $4}'`- чтобы вычленить gateway для адреса динамически выдаваемый
#local
${ipfw} add 10 allow icmp from any to any
${ipfw} add allow all from any to any via lo0
${ipfw} add deny all from any to 127.0.0.0/8
${ipfw} add deny all from 127.0.0.0/8 to any
${ipfw} add 12 allow all from me to any keep-state
${ipfw} add 40 allow all from 192.168.10.15/32 to any via ng*
${ipfw} add 40 allow all from any to 192.168.10.15/32 via ng*
${ipfw} add 40 allow all from 172.20.4.251/32 to 172.17.12.0/22
${ipfw} add 40 allow all from 172.17.12.0/22 to 172.20.4.251/32
${ipfw} add 41 allow all from 172.17.12.236/32 to me keep-state
#vse ko mne
${ipfw} add 50 allow all from ${vlan20},${vlans200},${usernet},${worknet},${bibl},${vpn} to me
${ipfw} add 51 allow all from me to ${vlan20},${vlans200},${usernet},${worknet},${bibl},${vpn}
${ipfw} add 52 allow all from 192.168.10.0/24 to ${vlan20},${vlans200},${usernet},${worknet},${bibl},${vpn}
${ipfw} add 53 allow all from ${vlan20},${vlans200},${usernet},${worknet},${bibl},${vpn} to 192.168.10.0
#запрет общения между интерфейсами
${ipfw} add 800 deny all from ${vlan20},${vlans200},${usernet},${worknet},${bibl},${vpn} to any
#mts 3g
${ipfw} add 811 allow all from 192.168.1.14/32 to any via ${ng1ip}
${ipfw} add 812 allow all from any to 192.168.1.14/32 via ${ng1ip}
#10 - local
#20 - inet
#30 - deny
#############################################################################
${ipfw} add 10000 deny all from table\(30\) to any
${ipfw} add 10001 deny all from any to table\(30\)
${ipfw} add 12000 allow all from table\(20\) to any via ng*
${ipfw} add 12000 allow all from any to table\(20\) via ng*
#############################################################################
#NAT from
${ipfw} nat 1 config log ip ${ng0ip} reset same_ports deny_in
${ipfw} add 13000 nat 1 ip from 192.168.10.15/32 to any out via ng0
${ipfw} add 13001 nat 1 ip from any to 192.168.10.15/32 in via ng0
