список, или таблица в pf для устройств. не для адресов. как.

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
carharot
рядовой
Сообщения: 29
Зарегистрирован: 2012-09-22 17:59:34

список, или таблица в pf для устройств. не для адресов. как.

Непрочитанное сообщение carharot » 2012-09-25 15:45:42

Всем привет.

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

Под Linux я это решал так:

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

VPNTCP="5900 5901 3283 20165 3389 51413"
for i in $VPNTCP;
do
echo -n "$i "
$IPT -A ppp_vpn_f -p tcp --dport $i -j ACCEPT
done
$IPT -A ppp_vpn_f -p icmp --icmp-type 8 -m state --state NEW -j ACCEPT
#
$IPT -N ppp_vpn_i
$IPT -A INPUT -i ppp+ -j ppp_vpn_i
$IPT -A ppp_vpn_i -i ppp0 -j RETURN
#
$IPT -A ppp_vpn_i -p icmp --icmp-type 8 -m state --state NEW -j ACCEPT
расчет был на то, что ppp0 - это всегда туннельное соединение с провайдером, а не для моей сети vpn.

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

$IPT -N ppp_vpn_i
$IPT -A INPUT -i ppp+ -j ppp_vpn_i
$IPT -A ppp_vpn_i -i ppp0 -j RETURN
но фик с ним, с ppp0. Инет я получаю по ppp, а впн сетка развернута посредством mpd. Поэтому конфликтов там не будет даже, если задействовать эдакий макос, со значением "ng*". Но pf не умееет "*". Возможно ли обойтись без доп скриптов тут? Одни конфигом pf.conf, люди.

Хостинговая компания 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/

Аватара пользователя
carharot
рядовой
Сообщения: 29
Зарегистрирован: 2012-09-22 17:59:34

Re: список, или таблица в pf для устройств. не для адресов.

Непрочитанное сообщение carharot » 2012-09-25 17:20:38

Блин. Нифига не найду, как это делать. Есть еще вот такая дока http://house.hcn-strela.ru/BSDCert/BSDA ... pcs02.html
Ну все! оговаривается. Но, только не этот момент.

pimlab
прапорщик
Сообщения: 483
Зарегистрирован: 2007-10-09 11:31:03

Re: список, или таблица в pf для устройств. не для адресов.

Непрочитанное сообщение pimlab » 2012-09-25 21:19:53

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

 pf.conf
if_vpn = " ng "
vpn_port = "{ 80 , 3128 }"
......
pass on $if_vpn proto {tcp udp} from {$if_vpn} port $vpn_port to any 
............
как то так или я не понял чего вам надо

Аватара пользователя
carharot
рядовой
Сообщения: 29
Зарегистрирован: 2012-09-22 17:59:34

Re: список, или таблица в pf для устройств. не для адресов.

Непрочитанное сообщение carharot » 2012-09-26 12:10:17

ng интерфейсов порядка 20 штук. иногда подключаются новый пользователи и интерфейсов становится около 50. постоянно кто-то отключается, подключается.

ng, без цифры - это и есть возможность не указывать все мыслимые и немыслимые цифры после "ng"?

если так, то здорово. попробую.

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: список, или таблица в pf для устройств. не для адресов.

Непрочитанное сообщение skeletor » 2012-09-26 12:18:31

Где-то встречал в сети, что действительно, можно указать просто ng, но на практике это не работает. Нашёл ещё такое решение

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

vpn_if="{ ng0, ng1 }"
pass on vpn_if ...
Заметьте, в pass-правиле vpn_if без ‘$’ вначале. У меня как-то срабатывало через раз.
Либо последний вариант: использовать up/down скрипты в mpd + якоря в pf. Это уже точно сработает.

Аватара пользователя
carharot
рядовой
Сообщения: 29
Зарегистрирован: 2012-09-22 17:59:34

Re: список, или таблица в pf для устройств. не для адресов.

Непрочитанное сообщение carharot » 2012-09-26 12:57:26

Спасибо.

А где-нибудь оговорено, что так можно делать. без "$".

У меня так почему-то доступа нет. хотя, по логам как бы и нет блокировок.
Пока что пользую вот такой вариант:

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

ext_if="tun0"
ext_local="rl0"
int_if="nfe0"
icmp_types="{ echoreq, unreach}"
trusted_lan="{ 192.168.1.0/24, 192.168.2.0/24 }"
table <vpn_net> { 192.168.11.0/24 }
vpn_if="{ ng0, ng1, ng2, ng3, ng4, ng5, ng6, ng7, ng8, ng9, ng10, ng11, ng12, ng13, ng14, ng15, ng16, ng17, ng18, ng19, ng19, ng20, ng21, ng22 }" # не красиво, блин.
localnet="127.0.0.0/8"
tcp_services="{ 1723, 5901 }"
udp_services="{ 1723 }"
vpn_ports="{ 3389, 20165 }"
set block-policy return
set skip on lo0
set skip on $int_if
scrub in all
nat on $ext_if from $trusted_lan to any -> ($ext_if)
nat on $ext_local  from $trusted_lan to any -> ($ext_local)
antispoof quick for ($ext_if)
antispoof quick for ($ext_local)
block log all
pass out on $ext_if from ($ext_if) to any
pass out on $ext_if from $trusted_lan to any
pass out on $ext_local from ($ext_local) to any
pass out on $ext_local from $trusted_lan to any
pass log inet proto icmp all icmp-type $icmp_types
# pptp
pass in on $ext_if proto tcp from any to ($ext_if) port $tcp_services flags S/SA
pass in on $vpn_if proto tcp from <vpn_net> to <vpn_net> port $vpn_ports
pass out on $vpn_if proto tcp from <vpn_net> to <vpn_net> port $vpn_ports
Прошу не бить :) Третий день за FreeBSD. Помимо pf, много чего еще надо сделать. Уделяю всему времени по-немножку, как могу.

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: список, или таблица в pf для устройств. не для адресов.

Непрочитанное сообщение skeletor » 2012-09-26 13:29:28

Где-то в документации читал, не вспомню, где уже.

pimlab
прапорщик
Сообщения: 483
Зарегистрирован: 2007-10-09 11:31:03

Re: список, или таблица в pf для устройств. не для адресов.

Непрочитанное сообщение pimlab » 2012-09-26 15:02:10

ну не знаю у меня с "tun" пашет .... главное динамический интерфейс в "set skip" не добавлять ... у меня не заработало