Страница 1 из 1
список, или таблица в pf для устройств. не для адресов. как.
Добавлено: 2012-09-25 15:45:42
carharot
Всем привет.
Есть вот такая замечательная дока, где англорусским по белому рассказано, как хорошо можно зафигачить диапазоны адресов в таблицу, или в список. Для устройств сети же даются лишь макросы.
Но, у меня, как пример, есть очень много сетевых интерфейсрв 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, люди.
Re: список, или таблица в pf для устройств. не для адресов.
Добавлено: 2012-09-25 17:20:38
carharot
Блин. Нифига не найду, как это делать. Есть еще вот такая дока
http://house.hcn-strela.ru/BSDCert/BSDA ... pcs02.html
Ну все! оговаривается. Но, только не этот момент.
Re: список, или таблица в pf для устройств. не для адресов.
Добавлено: 2012-09-25 21:19:53
pimlab
Код: Выделить всё
pf.conf
if_vpn = " ng "
vpn_port = "{ 80 , 3128 }"
......
pass on $if_vpn proto {tcp udp} from {$if_vpn} port $vpn_port to any
............
как то так или я не понял чего вам надо
Re: список, или таблица в pf для устройств. не для адресов.
Добавлено: 2012-09-26 12:10:17
carharot
ng интерфейсов порядка 20 штук. иногда подключаются новый пользователи и интерфейсов становится около 50. постоянно кто-то отключается, подключается.
ng, без цифры - это и есть возможность не указывать все мыслимые и немыслимые цифры после "ng"?
если так, то здорово. попробую.
Re: список, или таблица в pf для устройств. не для адресов.
Добавлено: 2012-09-26 12:18:31
skeletor
Где-то встречал в сети, что действительно, можно указать просто ng, но на практике это не работает. Нашёл ещё такое решение
Заметьте, в pass-правиле vpn_if без ‘$’ вначале. У меня как-то срабатывало через раз.
Либо последний вариант: использовать up/down скрипты в mpd + якоря в pf. Это уже точно сработает.
Re: список, или таблица в pf для устройств. не для адресов.
Добавлено: 2012-09-26 12:57:26
carharot
Спасибо.
А где-нибудь оговорено, что так можно делать. без "$".
У меня так почему-то доступа нет. хотя, по логам как бы и нет блокировок.
Пока что пользую вот такой вариант:
Код: Выделить всё
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, много чего еще надо сделать. Уделяю всему времени по-немножку, как могу.
Re: список, или таблица в pf для устройств. не для адресов.
Добавлено: 2012-09-26 13:29:28
skeletor
Где-то в документации читал, не вспомню, где уже.
Re: список, или таблица в pf для устройств. не для адресов.
Добавлено: 2012-09-26 15:02:10
pimlab
ну не знаю у меня с "tun" пашет .... главное динамический интерфейс в "set skip" не добавлять ... у меня не заработало