The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"3 провайдера + PF + маршрутизация"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Информационная безопасность (Firewall и пакетные фильтры)
Изначальное сообщение [ Отслеживать ]

"3 провайдера + PF + маршрутизация"  +/
Сообщение от quadroarte (ok) on 03-Авг-10, 22:02 
ifconfig
Локалка
re0: inet 192.168.10.254 netmask 0xffffff00 broadcast 192.168.10.255

1-провайдер (какой-то местный провайдер)
re1: inet "DHCP"

2-провайдер (yota-street)
re2: inet "DHCP"

3-провайдер (Адсл)
re3: inet 210.20.10.35 netmask 0xfffffff8 broadcast 217.27.139.39

Фаерволл стоит "PF"

Посоветуйте, как грамотнее сделать маршрутизацию или какие написать правила в фаерволле.
Если требуется такая схема:

1-провайдер — сидит вся подсеть 192.168.10.0/24
2-провайдер — сидит только 192.168.10.230 - 192.168.10.240
3-провайдер — сидит только 192.168.10.2 - 192.168.10.8

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "3 провайдера + PF + маршрутизация"  +/
Сообщение от reader (ok) on 03-Авг-10, 23:52 
route-to
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "3 провайдера + PF + маршрутизация"  +/
Сообщение от quadroarte (ok) on 06-Авг-10, 14:27 
прошелся по темам, почитал. не работает. Не подскажете, где я ошибся?

isp1="re1"        #akado
isp1_gw="192.168.1.1"

isp2="re2"         #yota    
isp2_gw="10.133.251.1"

isp3="re3"        #prov
isp3_gw="210.20.10.33"

#range of users
table <users> persist { 192.168.10.230 }

lan="re0"
office="192.168.10.0/24"


# Scrub
scrub in all
scrub all reassemble tcp

# nat

nat on $isp3 from $office to any -> ($isp3)

#nat on $isp1 from $office to any -> ($isp1)
nat on $isp2 from $office to any -> ($isp2)
nat on $isp1 from <users> to any -> ($isp1)

rdr pass on $lan proto tcp from $office to any port 80 -> ($lan) port 3128

# block all
block log all

#pass quick all keep state
# allow localhost
pass log quick on lo

# pass icmp
pass quick proto icmp

# pass out
pass out quick keep state

# allow ssh
pass in quick proto tcp from any to any port 22 keep state


# allow office
pass in quick on $lan proto tcp from $office to any port 1985 keep state
pass in quick on $lan from $office to any keep state


#route-to & reply-to

pass out on $isp1 route-to ( $isp1 $isp1_gw ) inet from $isp1 to <users>
pass in on $isp1 reply-to ( $isp1 $isp1_gw ) inet proto tcp from any to <users> flags S/SA keep state

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "3 провайдера + PF + маршрутизация"  +/
Сообщение от reader (ok) on 06-Авг-10, 15:06 
>[оверквотинг удален]
># allow office
>pass in quick on $lan proto tcp from $office to any port
>1985 keep state
>pass in quick on $lan from $office to any keep state
>
>
>#route-to & reply-to
>
>pass out on $isp1 route-to ( $isp1 $isp1_gw ) inet from $isp1 to <users>
>pass in on $isp1 reply-to ( $isp1 $isp1_gw ) inet proto tcp from any to <users> flags S/SA keep state

http://www.opennet.dev/openforum/vsluhforumID1/76063.html
http://www.opennet.dev/openforum/vsluhforumID1/88785.html
http://www.openbsd.ru/files/etc/pf-dual.conf

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "3 провайдера + PF + маршрутизация"  +/
Сообщение от rusdis email(ok) on 06-Авг-10, 23:27 
>>#route-to & reply-to
>>
>>pass out on $isp1 route-to ( $isp1 $isp1_gw ) inet from $isp1 to <users>
>>pass in on $isp1 reply-to ( $isp1 $isp1_gw ) inet proto tcp from any to <users> flags S/SA keep state
>

IMCHO нужно смотреть tcpdump на требуемых интерфейсах, вполне возможно какое-то правило срабатывает раньше. + смотреть pflog.

Я бы еще обратил внимание на то, где ловить пакеты, например в моем случае
все запросы в сети приходят на интерфейс $int_admin.

#это правило разрешает входящий трафик на внутреннем интерфейсе из сети <in_host>, этот трафик ходит по маршрутам по умолчанию
pass    in              on $int_admin                   from    <in_host>       to      any             flags S/SA keep state

#!!! Вот ЗДЕСЬ говорим, что трафик от хоста $newserv пришедший на ВНУТРЕННИЙ интерфейс int_admin удовлетворяющий условиям (источник $newserv) направлять на интерфейс $ext_nl со шлюзом $gw_nl, который не является маршрутом по умолчанию.
pass in on $int_admin route-to     { ($ext_nl $gw_nl) }      proto tcp from $newserv to {!<no_kiev>, !<webmoney>, !<my_host>} flags S/SA modulate state


#  основные "выпускаюшие" правила на внешнем интерфейсе
pass out on $ext_nl proto tcp from any to any flags S/SA modulate state
pass out on $ext_nl proto { udp, icmp } from any to any keep state

Думаю должно быть как-то так.


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "3 провайдера + PF + маршрутизация"  +/
Сообщение от quadroarte (ok) on 09-Авг-10, 13:34 
>[оверквотинг удален]
>pass in on $int_admin route-to     { ($ext_nl $gw_nl) }      proto tcp from $newserv to {!<no_kiev>, !<webmoney>, !<my_host>} flags S/SA modulate state
>
>
>#  основные "выпускаюшие" правила на внешнем интерфейсе
>pass out on $ext_nl proto tcp from any to any flags S/SA
>modulate state
>pass out on $ext_nl proto { udp, icmp } from any to
>any keep state
>
>Думаю должно быть как-то так.

а можешь скинуть, пожалуйста, весь конфиг пф и pfctl -sn?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "3 провайдера + PF + маршрутизация"  +/
Сообщение от quadroarte (ok) on 09-Авг-10, 15:15 
>>[оверквотинг удален]
>># allow office
>http://www.opennet.dev/openforum/vsluhforumID1/76063.html
>http://www.opennet.dev/openforum/vsluhforumID1/88785.html
>http://www.openbsd.ru/files/etc/pf-dual.conf

спасибо, но так до меняи не доходит = ( я ни как не могу избавить от того, что трафик идет через default gateway который указан в rc.conf

вот пришел к такому виду пф

ext_if_a            = "sk0"            #akado
ext_gw_a            = "192.168.1.1"

ext_if_b            = "re1"         #yota    
ext_gw_b            = "10.133.251.1"

ext_if_c            = "sk1"            #bitway
ext_gw_c            = "240.25.1.30"

int_if                = "re0"


set skip on lo
# Scrub
scrub in

# nat
nat on $ext_if_a inet from !(self) -> ($ext_if_a:0)
nat on $ext_if_b inet from !(self) -> ($ext_if_b:0)
nat on $ext_if_c inet from !(self) -> ($ext_if_c:0)

rdr pass on $int_if proto tcp from 192.168.10.0/24 to any port 80 -> ($int_if) port 3128

block on { $ext_if_a $ext_if_b $ext_if_c }
block return on { $ext_if_a $ext_if_b $ext_if_c } inet proto tcp

# allow ssh
pass in quick proto tcp from any to any port 22 keep state


pass out route-to ($ext_if_a $ext_gw_a) inet from ($ext_if_a)
pass out route-to ($ext_if_b $ext_gw_b) inet from ($ext_if_b)
pass out route-to ($ext_if_c $ext_gw_c) inet from ($ext_if_c)
pass out inet from { $ext_if_a $ext_if_b $ext_if_c} to (self:network)

pass in quick from ($ext_if_a:network) tagged EXT_IF_A
pass in quick reply-to ($ext_if_a $ext_gw_a) tagged EXT_IF_A
pass in quick from ($ext_if_b:network) tagged EXT_IF_B
pass in quick reply-to ($ext_if_b $ext_gw_b) tagged EXT_IF_B
pass in quick from ($ext_if_c:network) tagged EXT_IF_C
pass in quick reply-to ($ext_if_c $ext_gw_c) tagged EXT_IF_C

pass in on $ext_if_a reply-to ($ext_if_a $ext_gw_a) inet proto icmp \
    to ($ext_if_a) icmp-type echoreq code 0
pass in on $ext_if_a inet proto icmp from ($ext_if_a:network) \
    to ($ext_if_a) icmp-type echoreq code 0
pass in on $ext_if_b reply-to ($ext_if_b $ext_gw_b) inet proto icmp \
    to ($ext_if_b) icmp-type echoreq code 0
pass in on $ext_if_b inet proto icmp from ($ext_if_b:network) \
    to ($ext_if_b) icmp-type echoreq code 0
pass in on $ext_if_c reply-to ($ext_if_c $ext_gw_c) inet proto icmp \
        to ($ext_if_c) icmp-type echoreq code 0
pass in on $ext_if_c inet proto icmp from ($ext_if_c:network) \
        to ($ext_if_c) icmp-type echoreq code 0

и не хтает правил, которые заставят

пользователя 192.168.10.20 ходить через 1 шлюз
пользователя 192.168.10.22 ходить через 3 шлюз
пользователя 192.168.10.21 ходить через 2 шлюз

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "3 провайдера + PF + маршрутизация"  +/
Сообщение от reader (ok) on 09-Авг-10, 17:03 
>[оверквотинг удален]
>code 0
>pass in on $ext_if_c inet proto icmp from ($ext_if_c:network) \
>        to ($ext_if_c) icmp-type echoreq
>code 0
>
>и не хтает правил, которые заставят
>
>пользователя 192.168.10.20 ходить через 1 шлюз
>пользователя 192.168.10.22 ходить через 3 шлюз
>пользователя 192.168.10.21 ходить через 2 шлюз

правила для них на внутреннем интерфейсе пишите


http://www.opennet.dev/base/sec/pf_extended.txt.html#top5

....
      pass in on $int_if route-to \
        { ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin \
        from $lan_net to any keep state

Опция route-to используется для приема трафика на внутреннем интерфейсе и назначения ему внешнего сетевого интерфейса и шлюза, таким образом обеспечивая балансировку. Обратите внимание, что опция route-to должна быть указана в каждом правиле, предназначенном для балансировки трафика. Ответные пакеты приходят на тот интерфейс, с которого ушел запрос и они будут перенаправлены во внутрь как обычно.

Для гарантии того, что пакеты с $ext_if1 всегда направляются к $ext_gw1 (и соответственно для $ext_if2 к $ext_gw2), в правилах можно указать следующее:


      pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 \
        to any
      pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 \
        to any

....

там же и про тэгирование пакетов читайте

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "3 провайдера + PF + маршрутизация"  +/
Сообщение от rusdis (ok) on 10-Авг-10, 15:06 
+1
Опция route-to используется для приема трафика на внутреннем интерфейсе и назначения ему внешнего сетевого интерфейса и шлюза,...

замените
pass out route-to ($ext_if_a $ext_gw_a) inet from ($ext_if_a)
на
pass in on $int_if route-to ($ext_if_a $ext_gw_a) inet from (ТРАФИК ИЗ СЕТИ КОТОРЫЙ НУЖНО ОТПРАВИТЬ ЧЕРЕЗ ИНТЕРФЕЙС $ext_if_a) keep state

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "3 провайдера + PF + маршрутизация"  +/
Сообщение от quadroarte (ok) on 11-Авг-10, 14:21 
>+1
>Опция route-to используется для приема трафика на внутреннем интерфейсе и назначения ему
>внешнего сетевого интерфейса и шлюза,...
>
>замените
>pass out route-to ($ext_if_a $ext_gw_a) inet from ($ext_if_a)
>на
>pass in on $int_if route-to ($ext_if_a $ext_gw_a) inet from (ТРАФИК ИЗ СЕТИ
>КОТОРЫЙ НУЖНО ОТПРАВИТЬ ЧЕРЕЗ ИНТЕРФЕЙС $ext_if_a) keep state

Спасибо, всем откликнувшимся.
До сих пор бьюсь.
Задачу решить не могу.

Уже перепробовал все предложенные варианты, возможно я туплю...

Есть ли у кого время он-лайн обсудить это?
отблагодарю

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "3 провайдера + PF + маршрутизация"  +1 +/
Сообщение от Кирилл_Н (ok) on 11-Авг-10, 15:37 
>Есть ли у кого время он-лайн обсудить это?
>отблагодарю

делал что-то подобное. пиши в аську - чем смогу помогу. 339683075

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "3 провайдера + PF + маршрутизация"  +/
Сообщение от rusdis (ok) on 11-Авг-10, 18:18 
1. Уберите все правила, и начните отлаживать с внутреннего интерфейса.

2. Для отладки используйте  tcpdump -i <re0, pflog0 и т.д.>
в правилах добавляйте по очереди логирование
pass in log quick  on $int from any to any keep state

3. Не пишите сразу много правил, начните с минимально необходимых.

4. не забывайте что маршрутизировать нужно приходящий трафик на внутреннем интерфейсе плюс нужно разрешить входящий/исходящий трафик на выпускающих интерфейсах. Иначе трафик завернутый на выпускающий интерфейс не выйдет из него.

5. После изменений правил не забывайте делать команду
pfctl -F nat -f /etc/pf.conf
pfctl -F rules -f /etc/pf.conf

6. Не зацикливайтесь на этой праблеме, сходите на пляж, отвлекитесь на недельку, дайте время себе осознать принцип работы правил в PF.

7. Почитайте http://www.openbsd.org/faq/pf/ru/pools.html Load Balance Outgoing Traffic

8. Скачайте с сайта http://house.hcn-strela.ru/BSDCert/ Учебный курс, там есть большой раздел посвященный pf.

9. Если нужно рулить трафиком ИНИЦИИРОВАННЫЙ САМИМ СЕРВЕРОМ, то делается это немного по другому. см http://www.opennet.dev/openforum/vsluhforumID10/4433.html#6


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "3 провайдера + PF + маршрутизация"  +/
Сообщение от quadroarte (ok) on 11-Авг-10, 19:32 
Всем огромное спасибо. Мне очень помог  Кирилл_Н (ok) on 11-Авг-10, 15:37 ,
Конфигарация стала следующая, Но проблема осталась только в SQUID, как его заставить работать на 3-х шлюзах, что бы ограничивал трафик на 3 шлюзах.


set skip on lo
# Scrub
scrub in

table <int_a> persist file "/etc/pf/int_a.conf"
table <int_b> persist file "/etc/pf/int_b.conf"
table <int_c> persist file "/etc/pf/int_c.conf"

# nat
nat on $ext_if_a inet from !(self) -> ($ext_if_a:0)
nat on $ext_if_b inet from !(self) -> ($ext_if_b:0)
nat on $ext_if_c inet from !(self) -> ($ext_if_c:0)

#rdr pass on $int_if proto tcp from $int_if:network to any port 80 -> ($int_if) port 3128

#block in all
#block out all


pass in on $int_if route-to ($ext_if_a $ext_gw_a) proto tcp from <int_a> to any flags S/SA keep state
pass in on $int_if route-to ($ext_if_a $ext_gw_a) proto { udp, icmp } from <int_a> to any keep state

pass in on $int_if route-to ($ext_if_b $ext_gw_b) proto tcp from <int_b> to any flags S/SA keep state
pass in on $int_if route-to ($ext_if_b $ext_gw_b) proto { udp, icmp } from <int_b> to any keep state

pass in on $int_if route-to ($ext_if_c $ext_gw_c) proto tcp from <int_c> to any flags S/SA keep state
pass in on $int_if route-to ($ext_if_c $ext_gw_c) proto { udp, icmp } from <int_c> to any keep state

pass in on $int_if proto tcp from $int_if:network to ($int_if) flags S/SA keep state
pass in on $int_if proto { udp, icmp } from $int_if:network to ($int_if) keep state

pass out on $int_if proto tcp from ($int_if) to $int_if:network flags S/SA keep state
pass out on $int_if proto { udp, icmp } from ($int_if) to $int_if:network keep state

pass out on $ext_if_a proto tcp from <int_a> to any flags S/SA keep state
pass out on $ext_if_a proto { udp, icmp } from <int_a> to any keep state
pass out on $ext_if_b proto tcp from <int_b> to any flags S/SA keep state
pass out on $ext_if_b proto { udp, icmp } from <int_b> to any keep state
pass out on $ext_if_c proto tcp from <int_c> to any flags S/SA keep state
pass out on $ext_if_c proto { udp, icmp } from <int_c> to any keep state

pass out on $ext_if_a proto tcp from self to any flags S/SA keep state
pass out on $ext_if_a proto { udp, icmp } from self to any keep state


/etc/pf/int_a.conf
/etc/pf/int_b.conf
/etc/pf/int_c.conf

тут я прописываю нужные мне адреса и работает как все задуманно.
И вот конфиг сквида, который предстоит побороть.
Но при этом в PF у меня нету правила для сквида

rdr pass on $int_if proto tcp from 192.168.0.0/24 to any port 80 -> ($int_if) port 3128


конфиг сквида


cat /usr/local/etc/squid/squid.conf
# squid config file with cached

# network
http_port 8080
http_port 3128 intercept
forwarded_for off
visible_hostname gw.local

# acl
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl clients src 192.168.10.0/24


acl QUERY urlpath_regex cgi-bin \? chat
acl blocked url_regex "/usr/local/etc/squid/blocked"
acl Vip src 192.168.10.2 192.168.10.3


# access
http_access deny manager all
http_access allow Vip
http_access deny blocked
http_access allow clients
http_access deny all
icp_access allow clients
icp_access allow Vip
icp_access deny all
miss_access allow clients
miss_access allow Vip
miss_access deny all

# cache and log
hierarchy_stoplist cgi-bin ? chat
no_cache deny QUERY
cache_dir ufs /usr/local/squid/cache 10000 16 256
cache_access_log /usr/local/squid/logs/access.log
cache_log /usr/local/squid/logs/cache.log
cache_store_log /usr/local/squid/logs/store.log
negative_ttl 1 minutes
cache_effective_user squid
cache_effective_group squid
cache_mem 256 MB
maximum_object_size 100 MB
logfile_rotate 30


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "3 провайдера + PF + маршрутизация"  +/
Сообщение от quadroarte (ok) on 11-Авг-10, 20:58 
решил добавить как написанно в мануалах

acl subnet1 src 192.168.10.230/255.255.255.240
acl subnet2 stc 192.168.10.52/255.255.255.240
tcp_outgoing_address 192.168.1.1 subnet1
tcp_outgoing_address 10.133.251.1 subnet2


не пашет, лог пишет


Aug 11 20:54:57  squid: Bungled squid.conf line 16: acl subnet2 stc 192.168.10.52

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

14. "3 провайдера + PF + маршрутизация"  +/
Сообщение от rusdis (ok) on 11-Авг-10, 21:25 
1. вам же писал я
>замените
>pass out route-to ($ext_if_a $ext_gw_a) inet from ($ext_if_a)
>на
>pass in on $int_if route-to ($ext_if_a $ext_gw_a) inet from (ТРАФИК ИЗ СЕТИ

стало
pass in on $int_if route-to ($ext_if_a $ext_gw_a) proto tcp from <int_a> to any flags S/SA keep state

2. Если вы хотите чтобы все запросы которые идут от разных клиентов к прокси, шли каждый через свой шлюз, то это ИМХО значительно усложняет задачу и вам нужно смотреть
>9. Если нужно рулить трафиком ИНИЦИИРОВАННЫЙ САМИМ СЕРВЕРОМ, то делается это немного по
>другому. см http://www.opennet.dev/openforum/vsluhforumID10/4433.html#6

как мне кажется уто уже лишнее, трафик от сервера будет идти в шлюз по умолчанию.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

15. "3 провайдера + PF + маршрутизация"  +/
Сообщение от quadroarte (ok) on 12-Авг-10, 10:12 
2. Если вы хотите чтобы все запросы которые идут от разных клиентов
>к прокси, шли каждый через свой шлюз, то это ИМХО значительно
>усложняет задачу и вам нужно смотреть
>>9. Если нужно рулить трафиком ИНИЦИИРОВАННЫЙ САМИМ СЕРВЕРОМ, то делается это немного по
>>другому. см http://www.opennet.dev/openforum/vsluhforumID10/4433.html#6
>
>как мне кажется уто уже лишнее, трафик от сервера будет идти в
>шлюз по умолчанию.

спасибо.
А разве нельзя заставить просто фильтровать трафик?
но не управлять им


Может вообще отказать от сквида.
У меня задача, все запросы которые идут на http, https блокировать к социальным сетям и другим сайтам, а так же есть группа пользователей которая может ходить на эти сайты.

И торренты их блокировать красиво для разных пользователей, а отдельной группе дать доступ.

А сквид, у меня только по именам сайтов это все блочит.


Вот если бы задача стояла бы просто заблокировать, я бы перенаправил трафик и проблема была бы решена.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

16. "3 провайдера + PF + маршрутизация"  +/
Сообщение от quadroarte (ok) on 12-Авг-10, 12:55 
а могу я оставить в том виде в котором сейчас у меня работает PF, т.к. он полностью решил мою проблему с натом.

У меня только не решен вопрос с 80 портом, может можно заставить по такой же аналогии работать сквид, что бы он группы пользователей направлял через определенный шлюз

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

17. "3 провайдера + PF + маршрутизация"  +/
Сообщение от rusdis (ok) on 12-Авг-10, 16:20 
см http://download.bsdmag.org/en/BSD_04_2010.pdf
FreeBSD Firewall with Transparent Proxy Server, DHCP Server and Name Server

# Redirect all www traffic to squid proxy server
rdr on $int inet proto tcp from $lan to any port $www -> $gw port 3128

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

18. "3 провайдера + PF + маршрутизация"  +/
Сообщение от quadroarte (ok) on 29-Авг-10, 17:14 
Проблемы продолжаются, только уже с самой операционной системой - )

дело было так:
1 сутки --
            все нормально, дальше я настраивал Yota которая работает по dhcp
            после получения адресов через dhclient, на третий раз появилась ошибка


            Fatal trap 12: page fault while in kernel node cpuid * 1; apic id = 61

            http://imglink.ru/show-image.php?id=7f99b9de8bb5333ccfb5256e...

            полетела файловая система, пару раз в синг юзере fsck -y и проблема ушла

2 сутки
            
           прошла неделя без проблем.
           далее опять  Fatal trap 12

И теперь если грузиться с новым конфигом, то все номально.
Если применить новый конфиг pfctl -f или же через rc.conf или rc.local

сразу фатал трап вылетает.
Поменял сетевые карты, проблема осталась.


FreeBSD server.local 8.0-RELEASE-p2 FreeBSD 8.0-RELEASE-p2 #1: Wed Mar 17 18:43:23 MSK 2010     root@server.local:/usr/obj/usr/src/sys/GATE  i386

rc.conf

# LAN
ifconfig_re0="inet 192.168.10.1 netmask 255.255.255.0"

# Akado
ifconfig_stge0="inet 192.168.1.253 netmask 255.255.255.0"

# Yota
ifconfig_stge1="DHCP"

# Bitway
ifconfig_stge2="inet 210.20.10.34 netmask 255.255.255.248"

keymap="ru.koi8-r"
sshd_enable="YES"
zabbix_agentd_enable="YES"
# pf
pf_enable="YES"
pf_rules="/etc/pf.conf.backup"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""

# squid
squid_enable="YES"

# dns
named_enable="YES"

# ipfw
firewall_enable="YES"
firewall_type="open"
firewall_logging="YES"


конфиг pf.conf


ext_if_a            = "stge0"            #akado
ext_gw_a            = "192.168.1.1"

ext_if_b            = "stge1"             #yota    
ext_gw_b            = "10.116.124.1"

ext_if_c            = "stge2"            #bitway
ext_gw_c            = "210.20.10.33"

int_if                = "re0"


set skip on lo
# Scrub
scrub in
table <usersquid> persist file "/etc/pf/usersofsquid"
table <int_a> persist file "/etc/pf/int_a.conf"
table <int_b> persist file "/etc/pf/int_b.conf"
table <int_c> persist file "/etc/pf/int_c.conf"

# nat
nat on $ext_if_a inet from !(self) -> ($ext_if_a:0)
nat on $ext_if_b inet from !(self) -> ($ext_if_b:0)
nat on $ext_if_c inet from !(self) -> ($ext_if_c:0)

#rdr pass on $int_if proto tcp from $int_if:network to any port 80 -> ($int_if) port 3128
rdr pass on $int_if proto tcp from <usersquid> to any port 80 -> ($int_if) port 3128


#block in all
#block out all

pass in on $ext_if_c proto tcp from any to ($ext_if_c) port 22 flags S/SA keep state
pass in on $ext_if_c reply-to ($ext_if_c $ext_gw_c) proto tcp from any to ($ext_if_c) port 22 flags S/SA keep state

pass in on $int_if route-to ($ext_if_a $ext_gw_a) proto tcp from <int_a> to any flags S/SA keep state
pass in on $int_if route-to ($ext_if_a $ext_gw_a) proto { udp, icmp } from <int_a> to any keep state

pass in on $int_if route-to ($ext_if_b $ext_gw_b) proto tcp from <int_b> to any flags S/SA keep state
pass in on $int_if route-to ($ext_if_b $ext_gw_b) proto { udp, icmp } from <int_b> to any keep state

pass in on $int_if route-to ($ext_if_c $ext_gw_c) proto tcp from <int_c> to any flags S/SA keep state
pass in on $int_if route-to ($ext_if_c $ext_gw_c) proto { udp, icmp } from <int_c> to any keep state

pass in on $int_if proto tcp from $int_if:network to ($int_if) flags S/SA keep state
pass in on $int_if proto { udp, icmp } from $int_if:network to ($int_if) keep state

pass out on $int_if proto tcp from ($int_if) to $int_if:network flags S/SA keep state
pass out on $int_if proto { udp, icmp } from ($int_if) to $int_if:network keep state

pass out on $ext_if_a proto tcp from <int_a> to any flags S/SA keep state
pass out on $ext_if_a proto { udp, icmp } from <int_a> to any keep state
pass out on $ext_if_b proto tcp from <int_b> to any flags S/SA keep state
pass out on $ext_if_b proto { udp, icmp } from <int_b> to any keep state
pass out on $ext_if_c proto tcp from <int_c> to any flags S/SA keep state
pass out on $ext_if_c proto { udp, icmp } from <int_c> to any keep state

pass out on $ext_if_a proto tcp from self to any flags S/SA keep state
pass out on $ext_if_a proto { udp, icmp } from self to any keep state

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

19. "3 провайдера + PF + маршрутизация"  +/
Сообщение от quadroarte (ok) on 01-Сен-10, 12:01 
попробовал убрать из rc.conf всю загрузку PF
и в ручную
pfctl -f /etc/pf.conf.new
pfctl -e
и опять fatal trap 12
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру