Страница 1 из 1
Можно ли разбить pf.conf на несколько отдельных файлов?
Добавлено: 2008-10-22 0:01:10
vasyun
Есть задача натить несколько локальных сетей, каждую в свой белый IP-шник. Для некоторых из них требуется публиковать их внутренние сервисы (www, ssh, ftp и т.д), для некоторых не требуется. Как это делать вроде разобрался.
Если я правильно понял то весь конфиг PF обычно храниться в одном файле pf.conf, за исключением таблиц если используются. Предположим у меня клиентов(сетей) будет много, тогда для каждого нужно будет писать свои правила в pf.conf. В этом случае pf.config вырастет и вероятно будет трудно читаем. Можно ли как то разбить файл pf.config на несколько отдельных файлов, и в каждом отдельном файле рисовать правила для соответствующего клиента? А в основной конфиг просто подключать эти куски. Тогда создание и удаление правил для нового клиента будет проще.
Сейчас получается так, что для того чтобы из конфига pf.conf убрать все правила для отдельного клиента(сети) надо прыгать по конфигу и комментировать все строчки для этой сетки.
В IPTABLES можно было создать основной скрипт, из которого дергать скрипты для каждого клиента(локальной сетки). Тогда подключить или отключить такого клиента со всеми наборами правил можно было быстро - просто раскоментировав/закоментировав одно строчку в основном скрипте.
P.S. Надеюсь что не запутал своим вопросом понятно объяснил.
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.
оно?
Re: Можно ли разбить pf.conf на несколько отдельных файлов?
Добавлено: 2008-10-22 1:03:49
vasyun
Гость писал(а):пост не читал...
load anchor ?name? from ?file?
оно?
Неа.
Это все равно не избавит меня от того чтобы в pf.conf комментировать каждый anchor (для nat rdr pass) т.е. как минимум в трех местах.
Re: Можно ли разбить pf.conf на несколько отдельных файлов?
Добавлено: 2008-10-22 1:13:09
paradox
чет я наверное не совсем вьехал
может тогда чуток примеров?
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
попробуй портировать
Re: Можно ли разбить pf.conf на несколько отдельных файлов?
Добавлено: 2008-10-22 2:41:41
vasyun
На 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
Гость
Max Laier сейчас готовиться закомиттить обновление pf(4). Наверное к утру московского времени можно уже будет пощупать include и другие вкусности pf(4) из OpenBSD 4.4.
Re: Можно ли разбить pf.conf на несколько отдельных файлов?
Добавлено: 2008-12-12 11:59:32
vasyun
Спасибо! поглядим
Re: Можно ли разбить pf.conf на несколько отдельных файлов?
Добавлено: 2008-12-13 0:08:36
voider
хех

новые фичи это уже весело
