pf не пропускает vpn клиентов из вне

Все вопросы по установке, обновлению и эксплуатации FreeBSD: конфигурация и сопровождение.

Модератор: terminus

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

pf не пропускает vpn клиентов из вне

Непрочитанное сообщение beznika » 2010-01-18 15:32:17

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

ос freebsd 7.0
вот pf.conf

int_if = "fxp0"
ext_if = "re0"
vpn_if = "ng0"
ports_tcp = "{20 21 25 53 80 110 123 143 443 465 995 1723 3128 8021 9001 >=49151}"
ports_udp = "{53 87}"
router = "192.168.0.1"
icmp_types = "{echoreq, unreach}"

set block-policy return

set loginterface re0
set loginterface ng0
set skip on lo
scrub in all

#local
table <local> {192.168.0.0/24}

#nat
nat on $vpn_if from $int_if:network to any -> $vpn_if
nat on $ext_if from $int_if:network to any -> $ext_if

#no nat gre и pptp
no nat on {$vpn_if $ext_if} proto gre all
no nat on {$vpn_if $ext_if} proto tcp from any to any port = pptp
no nat on {$vpn_if $ext_if} proto tcp from any port = pptp to any

#пакеты из локалки по 80 порту на внутренний интефейс перебрасываем на squid
rdr on $int_if inet proto tcp from <local> to any port www -> 127.0.0.1 port 3128

#закрваем по умолчанию всё
block all

#пишем лог заблокированных попыток соединения
block return log all

#если пакет зашёл то его можно выпустить
pass out keep state

#защита от спуфинга
antispoof quick for { lo $int_if }

#закрываем вход по ssh из инета
block in log on $vpn_if proto tcp from any to any port {ssh}
block in log on $ext_if proto tcp from any to any port {ssh}

#разрешием использование ssh в локальной сети
pass in on $int_if proto tcp from any to any port {ssh}

#правила фильтрации трафика
#фильтруем трафик между шлюзом и локалкой по портам
pass in on $int_if proto tcp from <local> to any port $ports_tcp flags S/SA keep state
pass in on $int_if proto udp from <local> to any port $ports_udp keep state
pass out on $int_if proto tcp from any port $ports_tcp to <local> flags S/SA keep state
pass out on $int_if proto udp from any port $ports_udp to <local> keep state

#пропускаем исходящий трафик
pass out on $vpn_if proto tcp from <local> to any port $ports_tcp modulate state flags S/SA
pass out on $vpn_if proto udp from <local> to any port $ports_udp modulate state

#пропускаем исходящие icmp пакеты
pass inet proto icmp all icmp-type $icmp_types keep state

#блокируем входящие
block in quick on $vpn_if proto icmp

#для внешних клиентов vpn открываем порт 1723 и прокол gre
pass quick on {$vpn_if $ext_if} proto {tcp udp} from any port {1723 53} to any flags S/SA keep state
pass quick on {$vpn_if $ext_if} proto {tcp udp} from any to any port {1723 53} flags S/SA keep state
pass quick on {$vpn_if $ext_if} inet proto gre from any to any

#правило для связи с провайдером по vpn
pass in quick on $ext_if proto tcp from 10.0.0.1 port {1723 1023} to any flags S/SA keep state

#разрешаем для ftp передачу данных
pass in on $vpn_if inet proto tcp from port ftp-data to {$vpn_if} user proxy flags S/SA keep state
pass in on $ext_if inet proto tcp from port ftp-data to {$ext_if} user proxy flags S/SA keep state

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

Аватара пользователя
Shuba
ст. сержант
Сообщения: 365
Зарегистрирован: 2008-03-25 10:58:21
Откуда: Минск
Контактная информация:

Re: pf не пропускает vpn клиентов из вне

Непрочитанное сообщение Shuba » 2010-01-18 16:19:16

Закоментируй данную строку:

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

antispoof quick for { lo $int_if }
И используй на форуме тег
Сила ночи, сила дня - одинакова фигня!

_Менделеев
проходил мимо

Re: pf не пропускает vpn клиентов из вне

Непрочитанное сообщение _Менделеев » 2010-01-18 17:25:15

да, конечно без оформления мало желания глядеть в твой вопрос

но:
1) чтобы заработало надо:

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

pass in on $ext_if proto tcp from any to any port=pptp  #разр. вх. на порт, кот. слушает MPD 
pass in on ng0 from $ng0:peer to any                    #разр. вх. на netgraph-интерфейсе пакетам из адреса партнера  
pass out on $int_if from $ng0:peer to $int_if:network   #разр. исх. с int_if пакеты из адреса партнера
пропустить GRE (у тебя вроде сделано) или заместо сработает:

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

pass out on $ext_if from ($ext_if) to any
2) слишком много правил, уверен ты уже сам не понимаешь че ты там написал, а если понимаешь, то уж точно не знаешь как это у тебя оно все еще работает. Упрощай, оставь самое необходимое чтобы поднялся впн

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

Re: pf не пропускает vpn клиентов из вне

Непрочитанное сообщение beznika » 2010-01-19 9:20:12

на форуме впервые, с оформлением я учту
я убрал из конфига всё лишнее, причём ничего нового не добавил
и заработало, оставил только открытые порт 1723 и gre протокол
убрал

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

block all
вписал

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

block on $vpn_if all
,
но вот ведь ни задача, клиенты xp подключаются без проблем а vista пишет ошибка:800