Страница 1 из 1

IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 12:38:00
vlasha
Что не так, помогите? IPFW настроил всё работает, c наружи люди подключаются через vpn, всё ок, но вот я сам из локалки не могу выйти по vpn к другому серваку, процес стопорится на проверке имени(на всякий случай скажу что из дома и из другого офиса могу подключаться, т.е. сервак работает). Мой конфиг (для краткости убрал запрещающие правила):

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

ipfw="/sbin/ipfw" 
#Внешний интерфейс
ext_if="xl0"
#Внутренний интерфейс
int_if="xl1"
#Интерфейс VPN
vpn_if="ng0"
#Внутр IP сервака
int_ip="92.10.1.244"
#Внешний IP
ext_ip="67.112.12.50"
#Локалка
int_net="92.10.1.0/24"
#Внешняя сеть
ext_net="67.112.12.50/30"

${ipfw} -f flush

# Разрешаем весь траффик по внутреннему интерфейсу (петле)
${ipfw} add 100 allow all from any to any via lo0
# Разрешаем трафик на внутреннем интерфейсе
${ipfw} add 1900 allow all from ${int_net} to any in recv ${int_if}
${ipfw} add 2000 allow all from any to ${int_net} out xmit ${int_if}
# Всех на squid
${ipfw} add 2100 fwd 127.0.0.1,3128 tcp from ${int_net} to any not 21,22,25,110,123,993,,5190,1723,5999 via ${ext_if}
# Делаем NAT
${ipfw} add 2200 divert natd all from ${int_net} to not ${int_net} out xmit ${ext_if}
${ipfw} add 2300 divert natd all from any to ${ext_ip} in recv  ${ext_if}
# Allow VPN
${ipfw} add 3000 allow gre from any to ${ext_ip} in recv ${ext_if}
${ipfw} add 3100 allow tcp from any to ${ext_ip} 1723 in recv ${ext_if}
${ipfw} add 3200 allow gre from ${ext_ip} to any out xmit ${ext_if}
${ipfw} add 3300 allow tcp from ${ext_ip} 1723 to any out xmit ${ext_if}
${ipfw} add 3400 allow ip from any to any via ng*
# Разрешаем трафик tcp на внешнем интерфейсе от нас
${ipfw} add 3550 allow tcp from ${ext_ip} to any via ${ext_if}
# Разрешаем входящий трафик tcp с внешнего интерфейса для внутренней сети по уже установленным соединениям
${ipfw} add 3600 allow tcp from any to ${int_net} in recv ${ext_if} established
# Разрешаем трафик tcp на внешнем интерфейсе по уже установленным соединениям
${ipfw} add 3700 allow log logamount 500 tcp from any to ${ext_ip} in recv ${ext_if} established
# DNS
${ipfw} add 3800 allow udp from any 53 to ${ext_ip} in recv ${ext_if}
${ipfw} add 3900 allow udp from ${ext_ip} to any 53 out xmit ${ext_if}
# разрешаем UDP (для синхронизации времени - 123 порт)
${ipfw} add 4000 allow udp from any to any 123 via ${ext_if}
# Разрешаем подключаться на внешний IP по SSH, SMTP, POP, HTML, IMAP
${ipfw} add 4100 allow tcp from any to ${ext_ip} 21 in via ${ext_if} setup
${ipfw} add 4100 allow tcp from any to ${ext_ip} 22 in via ${ext_if} setup
${ipfw} add 4200 allow tcp from any to ${ext_ip} 25 in via ${ext_if} setup
${ipfw} add 4310 allow tcp from any to ${ext_ip} 80 in via ${ext_if} setup
${ipfw} add 4320 allow tcp from any to ${ext_ip} 8000 in via ${ext_if} setup
${ipfw} add 4340 allow tcp from any to ${ext_ip} 9091 in via ${ext_if} setup
${ipfw} add 4350 allow tcp from any to ${ext_ip} 110 in via ${ext_if} setup
${ipfw} add 4380 allow tcp from any to ${ext_ip} 143 in via ${ext_if} setup
${ipfw} add 4400 allow tcp from any to ${ext_ip} 443 in via ${ext_if} setup
${ipfw} add 4500 allow tcp from any to ${ext_ip} 993 in via ${ext_if} setup
${ipfw} add 4550 allow tcp from any to ${ext_ip} 1723 in via ${ext_if} setup
# разрешаем некоторые типы ICMP траффика
${ipfw} add 4600 allow icmp from any to ${ext_ip} in via ${ext_if} icmptype 0,3,4,11,12
${ipfw} add 4700 allow icmp from any to ${int_net} in via ${ext_if} icmptype 0,3,4,11,12
${ipfw} add 4800 allow icmp from ${ext_ip} to any out via ${ext_if} icmptypes 3,8,12
${ipfw} add 4900 allow icmp from ${ext_ip} to any out via ${ext_if} frag
# Блокируем все остальные попытки соединения с занесением в логи
${ipfw} add 5500 deny log tcp from any to ${ext_ip} in via ${ext_if} setup
${ipfw} add 5600 deny log all from any to any via ${ext_if}
${ipfw} add 5700 deny log all from any to any

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 12:50:03
hizel
я честно говоря не понял, что значит проверка имени )
и в вашем фаерволе я не вижу ни одного ${vpn_if}
настораживает :)

UPD
увидел ng*
остался первый вопрос

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 13:53:23
vlasha
Проверка имени - Запускаю из винды установку связи с впн сервером (каким либо), выскакивает окошко установка соединения, далее проверка имени, и на этом всё, далее установить соединение не удалось...

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 13:59:29
hizel
vpn тоесть pptp ?
можно поглядеть tcpdump-ом что у вас там не так летает
если pptp то это gre и насколько я понимаю оно не натится, то есть не проходит через нат
во всяком случае у меня на этот счёт стойкое убеждение :)

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 14:03:28
мдфырф
pptp
>можно поглядеть tcpdump-ом что у вас там не так летает
а как посмотреть tcpdump-ом?

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 14:09:20
hizel
ну в простейшем случае
tcpdump -i <интерфейс> -np

-n - чтобы не ресолвила хосты
-p - не переводит в promiscous режим

вобщемто на языке хацкеров
это сниффер ;)

вы об этом спрашивали?

то есть получается вы хотите подключится по pptp с компьютера за НАТ-ом к какомуто другому компьютеру в диком интернете?
если все правильно, то вам необходимо для поднятия впн через нат использовать или l2tp или что то типа openvpn
которые инкапсулируют тунель в udp\tcp которые в свою очередь прекрасно ходят через НАТ
это в том случае если вы контролируете серверную часть

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 14:22:05
vlasha
>то есть получается вы хотите подключится по pptp с компьютера за НАТ-ом к какомуто другому компьютеру в диком интернете?
да из своей сети, с обычного компа с виндой...
>если все правильно, то вам необходимо для поднятия впн через нат использовать или l2tp или что то типа openvpn
>которые инкапсулируют тунель в udp\tcp которые в свою очередь прекрасно ходят через НАТ
>это в том случае если вы контролируете серверную часть
И каким образом это сделать?

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 14:40:40
hizel
не понял вопроса
каким образом подымаются такие туннели?

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 14:45:40
vlasha
да.?

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 14:49:23
hizel
есть статьи на этом сайте
упрощенно
ставится программное обеспечение на обоих концах тунеля
одино работает как сервер второе как клиент
в случае openvpn обычно генерируется пачка сертификатов
и .... все

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 14:58:29
vlasha
Чего-то я не пойму. А без установки програмного обеспечения на компах - не обойтись?
На сервере ничего нельзя сделать!?

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 15:02:01
vlasha
Почему же снаружи можно подключиться через vpn к нашей сети, ничего не устанавливая?
Совсем я запутался.
Неужели никакие правила нельзя создать на ipfw?

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 15:07:43
hizel
второй вариант поднимать pptp соединение собственно на роутере

гм если вы человек дотошный то вам надо все таки почитать теорию
дело вот в чем
pptp это gre как и ipsec
gre это протокол типа ip
если смотреть сниффером то видно что между пипишнегами летят пакеты
однако содержимое вплоть до портов не видно
nat работает на уровне ip/port
и тут возникает справедливый вопрос как
нат будет собственно натить если порты не известны ;)

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 15:11:34
vlasha
Как это.. разьве vpn не на 1723 порту?

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 15:14:52
hizel
/me прыгает по офису и кричит: "матчасть! матчасть!"
Спецификация протокола была опубликована как «информационный» RFC 2637 в 1999 году. Она не была ратифицирована IETF. Протокол считается менее безопасным, чем другие VPN-протоколы, например, IPSec. PPTP работает, устанавливая обычную PPP сессию с противоположной стороной с помощью протокола Generic Routing Encapsulation. Второе соединение на TCP-порту 1723 используется для инициации и управления GRE-соединением. PPTP сложно перенаправлять за сетевой экран, так как он требует одновременного установления двух сетевых сессий.

PPTP-трафик может быть зашифрован с помощью MPPE. Для аутентификации клиентов могут использоваться различные механизмы, наиболее безопасные из них — MSCHAP-v2 и EAP-TLS.
(c) википедия

не только на этом порту ;)

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 21:57:58
_kirill_

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

/sbin/ipfw add allow ipencap from any to any
/sbin/ipfw add allow gre from any to any

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 22:33:32
schizoid
hizel писал(а): то есть получается вы хотите подключится по pptp с компьютера за НАТ-ом к какомуто другому компьютеру в диком интернете?
если все правильно, то вам необходимо для поднятия впн через нат использовать или l2tp или что то типа openvpn
которые инкапсулируют тунель в udp\tcp которые в свою очередь прекрасно ходят через НАТ
это в том случае если вы контролируете серверную часть
т.е. если у мну есть роутер с НАТом и ВПНом. я с клиента по впн подключаюсь к роутеру, и выхожу в инет (НАТ), и если я настраиваю и подключаюсь к другому серверу в инете по впн, то это что получается, что сервер инициирует подключение, не клиент? раз все подключается, а вы говорите, что гре не натится?

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-05 23:30:11
hizel
schizoid писал(а):
hizel писал(а): то есть получается вы хотите подключится по pptp с компьютера за НАТ-ом к какомуто другому компьютеру в диком интернете?
если все правильно, то вам необходимо для поднятия впн через нат использовать или l2tp или что то типа openvpn
которые инкапсулируют тунель в udp\tcp которые в свою очередь прекрасно ходят через НАТ
это в том случае если вы контролируете серверную часть
т.е. если у мну есть роутер с НАТом и ВПНом. я с клиента по впн подключаюсь к роутеру, и выхожу в инет (НАТ), и если я настраиваю и подключаюсь к другому серверу в инете по впн, то это что получается, что сервер инициирует подключение, не клиент? раз все подключается, а вы говорите, что гре не натится?
вы подключаетесь по впн к серверу в инете с клиентской машины за натом?
впн - gre ? в смысле pptp или ipsec?
я представляю это только хаками в нате,, чем натите?
неважно чем инициируется, в pptp какаято часть инициации проходит
котороя по TCP-порту 1723, а потом при вытягивании собстна gre туннеля, упираецо в нат
наблюдал на обычном natd

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-06 0:04:09
schizoid
начу natd, впн pptp (mpd). на удаленной стороне poptop
коннектился к ВПН-серверу на работу, и попадал в локалку...

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-06 0:13:54
hizel
тоесть mpd за natd
паразительно
какието спец ключи для ната делались
фаером гре тоже в divert natd суется?

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-06 0:26:18
schizoid
да нет, ниче специфического не делал..может мы о разном говорим :)

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-06 0:36:29
hizel
да вроде об том =/
ничо ни понимаю
/me попрыгал в гугл

Re: IPFW не пускает меня же через VPN к другой сети

Добавлено: 2008-03-06 0:54:45
hizel
пока древняя сцылко
http://freebsd.peon.net/tutorials/14/
по ней
-redirect_proto proto localIP [publicIP [remoteIP]]

Redirect incoming IP packets of protocol proto (see

protocols(5)) destined for publicIP address to a localIP

address and vice versa.



If publicIP is not specified, then the default aliasing

address is used. If remoteIP is specified, then only packets

coming from/to remoteIP will match the rule.
тоесть редиректится определенный протокол на определенный ip в локальной сети
получается только один компьютер внутри локальной сети за Ntad сможет пользовать
gre =(