The OpenNET Project / Index page

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

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

"Несколько вопросов по конфигу pf - не работает как надо :("  +/
Сообщение от UltraLaser email(ok) on 23-Ноя-09, 23:24 
Прошу помочь по ряду вопросов. Осваиваю файровол pf (во FreeBSD OpernBSD) и пишу свой первый кофиг. Получается пока плохо , но я не сдаюсь. Хотя временами думаю о жизни…А кстати предстоит вкусить плоды моего творчества юзверям в реальной сети в одной конторе. Компов 50. Если юзвери останутся без своего порно то боюсь начнутся массовые волнения в офисе. А не очень желаетльно :) Подскажите плиз по следующим вопросам:

1) По правилам NAT. Почему в большинстве конфигов основное правило трансляции записывают так
nat on $ext_if from $int_net to any ->($ext_if)

почему on  $ext_if ??? Ведь сначала трафик проходит через внутренний интерфейс затем выполняется трансляция, затем фильтрация затем роутинг, а затем уже трафик уходит в облачко через внешний интерфейс $ext_if. Т.е. в моей первой редакции правило было записано так

nat on $int_if from $int_net to any ->($ext_if)

Чего то я не понимаю – что означает on $ext_if – т.е я понимаю что означает – что там конкретно происходит – я видимо не очень догоняю этот момент.

2) Уж так вот вышло, но внешний айпишник (один всего) – т.е. гайтвей сети распределяется по DHCP. Нужно ли в КАЖДОМ правиле указывать ($ext_if) – т.е.  в круглых скобках. Для примера у меня например записано так

## 7.7. TCP porno browsing (правило для просмотра веб страниц пользователями)
table <tcp_udp> { tcp, udp}
pass out quick on $ext_if inet proto <tcp_udp> from any to any port www keep state
pass in quick $int_if from any port www to $int_net keep state

нужно ли заменять каждое $ext_if на ($ext_if) ?
Правильно ли написаны эти правила? Вернее спрошу так – какие ошибки в данных правилах – остальные (для smtp, pop, ftp итд) постараюсь сделать по аналогии – видимо я просто каких то базовых вещей не догоняю.

3) Правильно ли я понимаю что при анализе исходящего трафика правила фильтрации вообще не видят внутренний айпишник сети так как сначала выполняется NAT а потом уже фильтрацию. Т.е нельзя написать такое правило

$int_net=”192.168.0.1/24”
pass on $ext_if proto tcp from $int_net to any port www

потому что когда пакет дойдет до внешнего интерфейса то айпи в нем будет заменен на внешний айпи сети т.е на адрес гейтвея.  

Буду признателен за ответы, а то нескладуха с конфигом сильно огорчает  - спросил бы больше но боюсь что будет слишком много букв для чтения…
  

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

Оглавление

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


1. "Несколько вопросов по конфигу pf - не работает как надо :("  +/
Сообщение от vagif (ok) on 24-Ноя-09, 03:02 
>Если юзвери останутся без своего порно то боюсь начнутся массовые волнения в
>офисе.

порно в офисе - дело важное! ;)

>1) По правилам NAT. Почему в большинстве конфигов основное правило трансляции записывают
>так
>nat on $ext_if from $int_net to any ->($ext_if)

это можно перевести как - "навесить на внешний интерфейс NAT правило - если что-то приходит из внутренней сети в направлении наружу"

>видимо не очень догоняю этот момент.

представь картинку: INET  <=> ext_if <=> [ server ] <=> int_if <=> LAN
вот мы и вешаем правило на ext_if, чтобы оно смотрело и НАТило все пакеты, которые уходят наружу. Какоя смысл НАТить пакеты, который только пытаются зайти на сервер из int_if? (вдруг они наружу не хотят?) :)

>2) Уж так вот вышло, но внешний айпишник (один всего)

это нормально

>гайтвей сети распределяется по DHCP. Нужно ли в КАЖДОМ правиле указывать

не вижу связи между внешним IP и default gateway'ем, который выдается пользователям.
Внешний IP живет на ext_if, а default gateway для LAN должен жить на int_if. Вроде как их интересы никак не пересекаются...

>pass out quick on $ext_if inet proto <tcp_udp> from any to any port www keep state
>pass in quick $int_if from any port www to $int_net keep state

если все что тебе надо - это НАТить запросы во внешнюю сеть, то правилами fw можно вообще пренебречь. Просто пропиши
# default rule - pass from any to any
pass in  from any to any
pass out from any to any

и не заморачивайся.

>нужно ли заменять каждое $ext_if на ($ext_if) ?

вот, живой пример - nat on $ext_if from $int_net to any -> ($ext_if)
этого на все достаточно.

вот, примеры живых конфигов http://wiki.zeynalov.com/vagif:docs:freebsd:pf

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

2. "Несколько вопросов по конфигу pf - не работает как надо :("  +/
Сообщение от UltraLaser email(ok) on 24-Ноя-09, 17:02 
Спасибо большое за ответ  - что то начало проясняться.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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