The OpenNET Project / Index page

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

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

"FreeBsd PF - нстройка правил"  +/
Сообщение от Hlf (ok) on 06-Ноя-10, 19:00 
Приветствую.
Дело в следующем: чтоб долго не расписывать что к чему выкладываю rc.conf и pf.conf

Проблема в том что с данным конфигом всем можно всё (
Подскажите в чем я ошибся - не пойму вроде правила правильно расписал....

Rc.conf

defaultrouter="***.***.***.149"
gateway_enable="YES"
hostname="bsd"
ifconfig_re0="inet ***.***.2.150 netmask 255.255.255.252" # интерфейс  к провайдеру
ifconfig_rl0="inet ***.***.24.17 netmask 255.255.255.240" # смотрит в сеть 1
ifconfig_rl1="inet ***.***.88.241 netmask 255.255.255.248" # смотрит в сеть 2

pf_enable="YES"
pf_rules="/etc/pf.conf"

---------------------------------------------------------------------------------

Pf.conf

ext_if="re0"
lan_if_1="rl0"
lan_if_2="rl1"

inet_proto = "{tcp, udp}"
allowed_ports="{ 443, 1494, 80, 1935, 3128, 8080, 1433, 1104, 2562, 1407 }


Allowed_networks="{ ***.***.***.***/32, ***.***.***.0/24, } #разрешенные Ip и сети

# разрешаем сети подключеной к интерфейсу rl0 доступ к Allowed networks через интерфейс re0

pass in on $ext_if inet proto $inet_proto from $Allowed_networks to ***.***.24.0/28 port $allowed_ports keep state
pass out on $ext_if inet proto $inet_proto from ***.***.24.0/28 to $Allowed_networks port $allowed_ports keep state

#разрешаем одному ip из сети подключеной к интерфейсу rl0 всё

pass in on $ext_if inet proto $inet_proto from any to ***.***.24.18/32 port $allowed_ports keep state
pass out on $ext_if inet proto $inet_proto from ***.***.24.18/32 to any port $allowed_ports keep state

#разрешаем машинке из сети подключеной к интерфейсу rl1 всё

pass in on $ext_if inet proto $inet_proto from any to ***.***.88.243/32 port $allowed_ports keep state
pass out on $ext_if inet proto $inet_proto from ***.***.***.243/32 to any port $allowed_ports keep state


всё

применяем правила - ок
проверяю - все ip из всех сетей имеют полный выход в инет....

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

Оглавление

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


1. "FreeBsd PF - нстройка правил"  +/
Сообщение от Кирилл_Н (ok) on 06-Ноя-10, 19:27 
>[оверквотинг удален]
> pass out on $ext_if inet proto $inet_proto from ***.***.24.18/32 to any port
> $allowed_ports keep state
> #разрешаем машинке из сети подключеной к интерфейсу rl1 всё
> pass in on $ext_if inet proto $inet_proto from any to ***.***.88.243/32 port
> $allowed_ports keep state
> pass out on $ext_if inet proto $inet_proto from ***.***.***.243/32 to any port
> $allowed_ports keep state
> всё
> применяем правила - ок
> проверяю - все ip из всех сетей имеют полный выход в инет....

добавьте
block in all
block out all
перед первым правилом

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

3. "FreeBsd PF - нстройка правил"  +/
Сообщение от mef (ok) on 06-Ноя-10, 19:31 
> добавьте
> block in all
> block out all
> перед первым правилом

порядок правил в данном случае не важен, если не используется конструкция quick.

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

4. "FreeBsd PF - нстройка правил"  +/
Сообщение от Aquarius (ok) on 06-Ноя-10, 21:01 
>> добавьте
>> block in all
>> block out all
>> перед первым правилом
> порядок правил в данном случае не важен, если не используется конструкция quick.

как это не важен, если исполняется последнее подходящее правило?

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

5. "FreeBsd PF - нстройка правил"  +/
Сообщение от Hlf (ok) on 06-Ноя-10, 22:11 
>>> добавьте
>>> block in all
>>> block out all
>>> перед первым правилом
>> порядок правил в данном случае не важен, если не используется конструкция quick.
> как это не важен, если исполняется последнее подходящее правило?

А вот тут начинается самое интересное
Если я ставлю правила block первыми или последними - инета нет по всем моим сетям

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

7. "FreeBsd PF - нстройка правил"  +/
Сообщение от mef (ok) on 06-Ноя-10, 22:27 
> А вот тут начинается самое интересное
> Если я ставлю правила block первыми или последними - инета нет по
> всем моим сетям

pfctl -sr что показывает?
Попробуй временно убрать in и out.

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

8. "FreeBsd PF - нстройка правил"  +/
Сообщение от Hlf (ok) on 06-Ноя-10, 22:40 
>> А вот тут начинается самое интересное
>> Если я ставлю правила block первыми или последними - инета нет по
>> всем моим сетям
> pfctl -sr что показывает?
> Попробуй временно убрать in и out.

Если убрать правила block - инет появляется.
Но игнорит акцесслист, у всех есть полный доступ в обе стороны
pfctl показывает, что все правила работают как и должно быть)

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

9. "FreeBsd PF - нстройка правил"  +/
Сообщение от mef (ok) on 06-Ноя-10, 22:45 
> Если убрать правила block - инет появляется.
> Но игнорит акцесслист, у всех есть полный доступ в обе стороны
> pfctl показывает, что все правила работают как и должно быть)

А in и out если убрать?

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

11. "FreeBsd PF - нстройка правил"  +/
Сообщение от Кирилл_Н (ok) on 07-Ноя-10, 10:39 
>>> А вот тут начинается самое интересное
>>> Если я ставлю правила block первыми или последними - инета нет по
>>> всем моим сетям
>> pfctl -sr что показывает?
>> Попробуй временно убрать in и out.
> Если убрать правила block - инет появляется.
> Но игнорит акцесслист, у всех есть полный доступ в обе стороны
> pfctl показывает, что все правила работают как и должно быть)

А инет у вас пропадает при добавлении блока в начале потому, что не разрешён никакой трафик на lan_if_1 и lan_if_2. Может вы выложили не весь конфиг?

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

12. "FreeBsd PF - нстройка правил"  +/
Сообщение от Hlf (ok) on 07-Ноя-10, 13:07 
>[оверквотинг удален]
>>>> Если я ставлю правила block первыми или последними - инета нет по
>>>> всем моим сетям
>>> pfctl -sr что показывает?
>>> Попробуй временно убрать in и out.
>> Если убрать правила block - инет появляется.
>> Но игнорит акцесслист, у всех есть полный доступ в обе стороны
>> pfctl показывает, что все правила работают как и должно быть)
> А инет у вас пропадает при добавлении блока в начале потому, что
> не разрешён никакой трафик на lan_if_1 и lan_if_2. Может вы выложили
> не весь конфиг?

А то что в правилах прописано пропускать через ext_if сеть подключенную к lan_if
разве не должно работать ?

# разрешаем сети подключеной к интерфейсу rl0 доступ к Allowed networks через интерфейс re0

pass in on $ext_if inet proto $inet_proto from $Allowed_networks to ***.***.24.0/28 port $allowed_ports keep state
pass out on $ext_if inet proto $inet_proto from ***.***.24.0/28 to $Allowed_networks port $allowed_ports keep state

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

14. "FreeBsd PF - нстройка правил"  +/
Сообщение от Кирилл_Н (ok) on 07-Ноя-10, 13:51 
>[оверквотинг удален]
>> не весь конфиг?
> А то что в правилах прописано пропускать через ext_if сеть подключенную к
> lan_if
> разве не должно работать ?
> # разрешаем сети подключеной к интерфейсу rl0 доступ к Allowed networks через
> интерфейс re0
> pass in on $ext_if inet proto $inet_proto from $Allowed_networks to ***.***.24.0/28 port
> $allowed_ports keep state
> pass out on $ext_if inet proto $inet_proto from ***.***.24.0/28 to $Allowed_networks port
> $allowed_ports keep state

При запросе на соединение из локальной сети пакет сначала появится на локальном интерфейсе сервера как входящий, а только потом уйдёт с внешнего интерфейса сервера. Т.е. как минимум для интернета изнутри вам надо разрешить входящий траф на внутренних интерфейсах и исходящий на внешних. Обратный траф будет попадать под состояения, созданные keep state.

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

15. "FreeBsd PF - нстройка правил"  +/
Сообщение от Hlf (ok) on 07-Ноя-10, 14:06 
> При запросе на соединение из локальной сети пакет сначала появится на локальном
> интерфейсе сервера как входящий, а только потом уйдёт с внешнего интерфейса
> сервера. Т.е. как минимум для интернета изнутри вам надо разрешить входящий
> траф на внутренних интерфейсах и исходящий на внешних. Обратный траф будет
> попадать под состояения, созданные keep state.

Если я правильно понял мне надо перед правилом которое я создал для сети
добавить правило которое пропускает весь трафик внутреннего интерфейса на внешний ?
А первой строкой прописать правила block in и out ?


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

16. "FreeBsd PF - нстройка правил"  +/
Сообщение от Кирилл_Н (ok) on 07-Ноя-10, 14:16 
>> При запросе на соединение из локальной сети пакет сначала появится на локальном
>> интерфейсе сервера как входящий, а только потом уйдёт с внешнего интерфейса
>> сервера. Т.е. как минимум для интернета изнутри вам надо разрешить входящий
>> траф на внутренних интерфейсах и исходящий на внешних. Обратный траф будет
>> попадать под состояения, созданные keep state.
> Если я правильно понял мне надо перед правилом которое я создал для
> сети
> добавить правило которое пропускает весь трафик внутреннего интерфейса на внешний ?
> А первой строкой прописать правила block in и out ?

В pf выполняется последнее совпавшее правило. Поэтому разрешить внутренний траф вам надо где-нибудь после block all. И трафик из внутренней подсети будет идти не на внешний интерфейс, а куда угодно в интернет. Т.е. вам после блокирующего правила надо добавить правило, разрешающее на внутреннем интерфейсе весь входящий траф из внутренней подсети куда угодно (или куда угодно кроме самого сервера, если вам не надо изнутри попадать на сервер).

pass in on $lan_if_1 inet from ($lan_if_1)  to any keep state

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

хороший ман. почитайте:
http://www.opennet.dev/base/net/pf_faq.txt.html

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

10. "FreeBsd PF - нстройка правил"  +/
Сообщение от Aquarius (ok) on 07-Ноя-10, 09:02 
>>>> добавьте
>>>> block in all
>>>> block out all
>>>> перед первым правилом
>>> порядок правил в данном случае не важен, если не используется конструкция quick.
>> как это не важен, если исполняется последнее подходящее правило?
> А вот тут начинается самое интересное
> Если я ставлю правила block первыми или последними - инета нет по
> всем моим сетям

ну все верно:
когда есть правила block, разрешено только то, что разрешено правилами pass
а когда их нет, разрешено все

предлагаю подумать, к какой стороне относятся указанные порты в ваших правилах (отдельно для правил in и для out)

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

6. "FreeBsd PF - нстройка правил"  +/
Сообщение от mef (ok) on 06-Ноя-10, 22:26 
>>> добавьте
>>> block in all
>>> block out all
>>> перед первым правилом
>> порядок правил в данном случае не важен, если не используется конструкция quick.
> как это не важен, если исполняется последнее подходящее правило?

Да, важен. Другое хотел сказать.

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

2. "FreeBsd PF - нстройка правил"  +/
Сообщение от mef (ok) on 06-Ноя-10, 19:30 
А где правило block?
keep state кстати можно убрать, сейчас все правила по-умолчанию keep state. Еще можно сделать вместо просто pass - pass quick.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "FreeBsd PF - нстройка правил"  +/
Сообщение от Hlf (ok) on 07-Ноя-10, 13:20 
В связи с тем что сеть должна работать - временно установил cisco 2621, пусть маршрутизит (через циску всё заработало как из пушки).
А FreeBsd буду поднимать на Vmware с аналогичным конфигом, и разбираться детально.
При удачном исходе выложу работающий конфиг - можт кому будет интересно.


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

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

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




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

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