Название: rc.firewall под несколько интерфейсов в инет
Отправлено: Efendy от 30 Января 2012, 14:08:44
Возможно, кому-то пригодится. #!/bin/sh - f='/sbin/ipfw' ifOut='tun0 tun1 tun2'
ifVia='' ifRecv='' tmp_or='' for i in $ifOut do ifVia="${ifVia}${tmp_or}via $i" ifRecv="${ifRecv}${tmp_or}recv $i" tmp_or=' or ' done
${f} -f flush
# dns, www.liqpay.com, liqpay.com ${f} table 100 add 8.8.8.8 ${f} table 100 add 50.16.196.80 ${f} table 100 add 184.73.55.73
${f} add 50 allow tcp from any to me 22 ${f} add 51 allow tcp from me 22 to any
${f} add 110 allow ip from any to any via lo0 ${f} add 120 skipto 1000 ip from me to any ${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17 ${f} add 160 skipto 2000 ip from any to me
${f} add 200 skipto 500 ip from any to any { $ifVia }
${f} add 300 skipto 4500 ip from any to any in
${f} add 400 skipto 450 ip from any to any { $ifRecv } ${f} add 420 divert 1 ip from any to any ${f} add 450 divert 2 ip from any to any ${f} add 490 allow ip from any to any
${f} add 500 skipto 32500 ip from any to any in ${f} add 510 divert 1 ip from any to any ${f} add 540 allow ip from any to any
${f} add 1000 allow udp from any 53,7723 to any ${f} add 1010 allow tcp from any to any setup keep-state ${f} add 1020 allow udp from any to any keep-state ${f} add 1100 allow ip from any to any
${f} add 2000 check-state ${f} add 2010 allow icmp from any to any ${f} add 2020 allow tcp from any to any 80,443,5006 ${f} add 2050 deny ip from any to any { $ifVia } ${f} add 2060 allow udp from any to any 53,7723
${f} add 2100 deny ip from any to any
${f} add 4500 allow ip from any to "table(100)" ${f} add 32490 deny ip from any to any ${f} add 32500 allow ip from "table(100)" to any
Название: Re: rc.firewall под несколько интерфейсов в инет
Отправлено: poxy. от 30 Января 2012, 14:29:59
Пригодится, спасибо!
Название: Re: rc.firewall под несколько интерфейсов в инет
Отправлено: tom от 30 Января 2012, 21:29:47
Все гениальное просто :)
Название: Re: rc.firewall под несколько интерфейсов в инет
Отправлено: 0xbad0c0d3 от 30 Января 2012, 22:41:23
все гениальное есть в манах )))
Название: Re: rc.firewall под несколько интерфейсов в инет
Отправлено: garik24 от 12 Января 2013, 15:25:44
Может кому пригодится: Текущие актуальные адреса для работы liqpay у юзеров без авторизации, в т.ч. при оплате с пл. карты(ecommerce.liqpay.com). # dns, www.liqpay.com, liqpay.com, ecommerce.liqpay.com ${fwcmd} table 100 add 8.8.8.8 ${fwcmd} table 100 add 50.16.196.80 ${fwcmd} table 100 add 107.21.122.223 ${fwcmd} table 100 add 75.101.158.123
Название: Re: rc.firewall под несколько интерфейсов в инет
Отправлено: ankos от 24 Января 2013, 16:23:57
Возможно, кому-то пригодится. ifVia='' ifRecv='' tmp_or='' Прошу прощения за столь глупый вопрос, а сюда что нужно ставить?
Название: Re: rc.firewall под несколько интерфейсов в инет
Отправлено: Efendy от 24 Января 2013, 17:28:55
Ничего, это инициализация внутренних переменных. Такой стиль у башевых скриптов - все в куче как в славные времена
Название: Re: rc.firewall под несколько интерфейсов в инет
Отправлено: Rico-X от 24 Января 2013, 18:24:48
Ну раз такое дело вариант балансировки нагрузки на pf излеченный от болезни когда часть сайтов не пашет. set limit states 128000 set optimization aggressive ext_if1="vlan100" #Kanal1 ext_if2="vlan200" #Kanal2 ext_gw1="192.168.88.1" ext_gw2="192.168.89.1"
table <no_nat> const { 192.168.0.0/16 10.0.0.0/8 } scrub in all #Lechim trafik
nat on $ext_if1 from 10.0.0.0/8 to !<no_nat> -> { ($ext_if2) ($ext_if1) ($ext_if2) } round-robin sticky-address
pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to !<no_nat> pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to !<no_nat> Каналы не симметричны, по этому { ($ext_if2) ($ext_if1) ($ext_if2) } для симметричных лучше так { ($ext_if1) ($ext_if2) }
|