Можно ли разбить pf.conf на несколько отдельных файлов?

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
vasyun
проходил мимо

Можно ли разбить pf.conf на несколько отдельных файлов?

Непрочитанное сообщение vasyun » 2008-10-22 0:01:10

Есть задача натить несколько локальных сетей, каждую в свой белый IP-шник. Для некоторых из них требуется публиковать их внутренние сервисы (www, ssh, ftp и т.д), для некоторых не требуется. Как это делать вроде разобрался.
Если я правильно понял то весь конфиг PF обычно храниться в одном файле pf.conf, за исключением таблиц если используются. Предположим у меня клиентов(сетей) будет много, тогда для каждого нужно будет писать свои правила в pf.conf. В этом случае pf.config вырастет и вероятно будет трудно читаем. Можно ли как то разбить файл pf.config на несколько отдельных файлов, и в каждом отдельном файле рисовать правила для соответствующего клиента? А в основной конфиг просто подключать эти куски. Тогда создание и удаление правил для нового клиента будет проще.
Сейчас получается так, что для того чтобы из конфига pf.conf убрать все правила для отдельного клиента(сети) надо прыгать по конфигу и комментировать все строчки для этой сетки.

В IPTABLES можно было создать основной скрипт, из которого дергать скрипты для каждого клиента(локальной сетки). Тогда подключить или отключить такого клиента со всеми наборами правил можно было быстро - просто раскоментировав/закоментировав одно строчку в основном скрипте.

P.S. Надеюсь что не запутал своим вопросом понятно объяснил.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Гость
проходил мимо

Re: Можно ли разбить pf.conf на несколько отдельных файлов?

Непрочитанное сообщение Гость » 2008-10-22 0:37:08

пост не читал...
pf.conf(5) писал(а):load anchor ?name? from ?file?
Loads the rules from the specified file into the anchor name.
оно?

vasyun
проходил мимо

Re: Можно ли разбить pf.conf на несколько отдельных файлов?

Непрочитанное сообщение vasyun » 2008-10-22 1:03:49

Гость писал(а):пост не читал...
load anchor ?name? from ?file?
оно?


Неа.
Это все равно не избавит меня от того чтобы в pf.conf комментировать каждый anchor (для nat rdr pass) т.е. как минимум в трех местах.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Можно ли разбить pf.conf на несколько отдельных файлов?

Непрочитанное сообщение paradox » 2008-10-22 1:13:09

чет я наверное не совсем вьехал

может тогда чуток примеров?

Гость
проходил мимо

Re: Можно ли разбить pf.conf на несколько отдельных файлов?

Непрочитанное сообщение Гость » 2008-10-22 1:36:34

Постараюсь на примере:

Код: Выделить всё

#/etc/pf.conf
WAN_INT_1="em0"
WAN_IP_1="X.X.X.X"
LAN_INT_1="vlan1"
LAN_IP_1="172.20.1.1"

WAN_INT_2="em0"
WAN_IP_2="Y.Y.Y.Y"
LAN_INT_2="vlan2"
LAN_IP_2="172.20.2.1"

rdr pass on $WAN_INT_1 proto tcp from any to $WAN_INT_1 port 2222 -> 172.20.1.5 port 22
rdr pass on $WAN_INT_2 proto tcp from any to $WAN_INT_2 port 2222 -> 172.20.2.5 port 22

nat on $WAN_INT_1 from { $LAN_INT_1:network } to any -> { $WAN_IP_1 }
nat on $WAN_INT_2 from { $LAN_INT_2:network } to any -> { $WAN_IP_2 }

block in all
pass from { $LAN_INT_1:network } to any keep state
pass from { $LAN_INT_2:network } to any keep state
А теперь попробуем убрать из конфига все правила для сети 172.20.2.0/24. Давайте не будем считать макросы, тогда получается что надо закоментировать 3 строчки.
А мне хотелось получить конфиг или скрипт, в котором я комментирую или удаляю одну строчку и тем самым исключаю все правила для этой сети 172.20.2.0/24

Возможно пример не самый удачный, но с него можно начать.

Гость
проходил мимо

Re: Можно ли разбить pf.conf на несколько отдельных файлов?

Непрочитанное сообщение Гость » 2008-10-22 1:54:55

vasyun писал(а):Это все равно не избавит меня от того чтобы в pf.conf комментировать каждый anchor (для nat rdr pass) т.е. как минимум в трех местах.
в openbsd есть:

Код: Выделить всё

     Additional configuration files can be included with the include keyword,
     for example:

           include "/etc/pf/sub.filter.conf"
http://marc.info/?l=openbsd-cvs&m=119233435413983

попробуй портировать

vasyun
проходил мимо

Re: Можно ли разбить pf.conf на несколько отдельных файлов?

Непрочитанное сообщение vasyun » 2008-10-22 2:41:41

На OpenBSD в случае если я использую к примеру такую схему

Код: Выделить всё

#/etc/pf.conf
include "/etc/pf/sub.filter1.conf"
include "/etc/pf/sub.filter2.conf"
Могу я использовать следующую последовательность?

Для первой сетки

Код: Выделить всё

#/etc/pf/sub.filter1.conf
rdr pass on $WAN_INT_1 proto tcp from any to $WAN_INT_1 port 2222 -> 172.20.1.5 port 22
nat on $WAN_INT_1 from { $LAN_INT_1:network } to any -> { $WAN_IP_1 }
pass from { $LAN_INT_1:network } to any keep state
Для второй сетки

Код: Выделить всё

#/etc/pf/sub.filter2.conf
rdr pass on $WAN_INT_2 proto tcp from any to $WAN_INT_2 port 2222 -> 172.20.2.5 port 22
nat on $WAN_INT_2 from { $LAN_INT_2:network } to any -> { $WAN_IP_2 }
pass from { $LAN_INT_2:network } to any keep state
Или я в этом случае нарушаю последовательность правил и применяться они не смогут.
Понятно что придется еще и макросы для каждого списка определить.

Гость
проходил мимо

Re: Можно ли разбить pf.conf на несколько отдельных файлов?

Непрочитанное сообщение Гость » 2008-12-11 0:20:46

Гость писал(а):

Код: Выделить всё

     Additional configuration files can be included with the include keyword,
     for example:

           include "/etc/pf/sub.filter.conf"
http://marc.info/?l=openbsd-cvs&m=119233435413983
Max Laier сейчас готовиться закомиттить обновление pf(4). Наверное к утру московского времени можно уже будет пощупать include и другие вкусности pf(4) из OpenBSD 4.4.

vasyun
рядовой
Сообщения: 41
Зарегистрирован: 2008-10-30 10:53:09

Re: Можно ли разбить pf.conf на несколько отдельных файлов?

Непрочитанное сообщение vasyun » 2008-12-12 11:59:32

Спасибо! поглядим

Аватара пользователя
voider
лейтенант
Сообщения: 830
Зарегистрирован: 2008-02-21 20:35:03
Откуда: msk

Re: Можно ли разбить pf.conf на несколько отдельных файлов?

Непрочитанное сообщение voider » 2008-12-13 0:08:36

хех :shock: новые фичи это уже весело :)