Биллинговая система Nodeny

Главная категория => Общий раздел => Тема начата: Efendy от 30 Января 2012, 14:08:44



Название: 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) }