URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 33257
[ Назад ]

Исходное сообщение
"VPN через NAT"

Отправлено Minotaur , 08-Авг-03 10:19 
Всем привет.

Такая проблема. Есть локальная сеть, где несколько пользователей через NAT "заворачиваются" на реальные адреса. Все прекрасно работает - пакетики ходят, как надо... кроме одной вещи. Один из клиентов не может
законнектиться по VPN на удаленный хост. Почему - не могу понять до сих пор.

Вот строки из конфигов:
************ /etc/rc.firewall
${fw} add 10030 divert 8668 all from 10.101.4.2 to not ${intranet}
${fw} add 10030 divert 8668 all from not ${intranet} to 195.20.96.108

************ natd.conf
use_sockets
same_ports
port 8668
alias_address 195.20.96.108

Адрес 195.20.96.108 висит на loopback-интерфейсе. Игра "добавить-убрать" use_sockets и same_ports ничего не дала.
Если клиент дозванивается по обычному телефону к любому провайдеру, то все чудесно работает...

Помогите советом! Заранее спасибо!

З.Ы. Доступа к удаленному хосту у меня, естественно, нет.


Содержание

Сообщения в этом обсуждении
"VPN через NAT"
Отправлено dawnshade , 08-Авг-03 10:25 
Если не ошибаюсь, то нат должен быть  NAT-T по RFC 3193. Только тогда возможна работа по впн

"VPN через NAT"
Отправлено A Clockwork Orange , 08-Авг-03 12:41 
>Если не ошибаюсь, то нат должен быть  NAT-T по RFC 3193.
>Только тогда возможна работа по впн


покажи правила фаервола
должно быть разрешение по GRE
должно быть разрешение на коннект на 1723 сервера VPN
хотя это все касательно PPTP


"VPN через NAT"
Отправлено Minotaur , 08-Авг-03 13:23 
>покажи правила фаервола
>должно быть разрешение по GRE
>должно быть разрешение на коннект на 1723 сервера VPN
>хотя это все касательно PPTP

Показываю:
${fw} add 1 allow all from any to any via lo0
${fw} add 10030 divert 8668 all from 10.101.4.2 to not ${intranet}
${fw} add 10030 divert 8668 all from not ${intranet} to 195.20.96.108
${fw} add 10052 allow all from any to 10.101.4.2
${fw} add 10052 allow all from 10.101.4.2 to any
${fw} add 65000 deny all from any to any

здесь intranet=10.0.0.1/8

В принипе, все, касающееся машины 10.101.4.2, которая натится на реальный ай-пи.

gre поднимается как псевдо-девайс у меня и клиент натится не через lo0 или внешний интерфейс, а именно через gre0? Так, что ли?
Если можно, пример настройки, плз... :\


"VPN через NAT"
Отправлено wwwuser , 08-Авг-03 14:45 
${fw} add 2 pass gre from any to any

"VPN через NAT"
Отправлено Minotaur , 08-Авг-03 15:41 
>${fw} add 2 pass gre from any to any


И что?
А девайсы gre0?


"VPN через NAT"
Отправлено A Clockwork Orange , 08-Авг-03 15:06 
10.101.4.2 внутренний узел
195.20.96.108 внешний узел
что-то не въеду в правила

${fw} add 1 allow all from any to any via lo0
${fw} add 10030 divert 8668 all from 10.101.4.2 to not ${intranet}
${fw} add 10030 divert 8668 all from not ${intranet} to 195.20.96.108


Эти два правила, исключительно для внтуреннего инерфейса!
${fw} add 10052 allow all from any to 10.101.4.2
${fw} add 10052 allow all from 10.101.4.2 to any
Ты пропустил все через внутренний интерфейс.

а где правила для внешнего интерфейса????!
А где что ты пропускаешь через внешний интерфейс

${fw} add 65000 deny all from any to any

У тебя вообще машина 10.101.4.2 может в инет выходить?


"VPN через NAT"
Отправлено Minotaur , 08-Авг-03 15:33 
>10.101.4.2 внутренний узел
>195.20.96.108 внешний узел
>что-то не въеду в правила
>
>${fw} add 1 allow all from any to any via lo0
>${fw} add 10030 divert 8668 all from 10.101.4.2 to not ${intranet}
>${fw} add 10030 divert 8668 all from not ${intranet} to 195.20.96.108
>
>
>Эти два правила, исключительно для внтуреннего инерфейса!
>${fw} add 10052 allow all from any to 10.101.4.2
>${fw} add 10052 allow all from 10.101.4.2 to any
>Ты пропустил все через внутренний интерфейс.
>
>а где правила для внешнего интерфейса????!
>А где что ты пропускаешь через внешний интерфейс
>
>${fw} add 65000 deny all from any to any
>
>У тебя вообще машина 10.101.4.2 может в инет выходить?

************ ifconfig
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 10.101.41.254 netmask 0xffffff00 broadcast 10.101.41.255
        ether 00:00:1c:d3:7b:da
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 10.101.4.254 netmask 0xffffff00 broadcast 10.101.4.255
        ether 00:00:1c:d3:6c:dc
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
rl2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 195.20.96.118 netmask 0xfffffffc broadcast 195.20.96.119
        ether 00:00:1c:d3:83:8e
        media: Ethernet autoselect (10baseT/UTP)
        status: active
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet 127.0.0.1 netmask 0xff000000
        inet 10.255.41.1 netmask 0xffff0000
        inet 10.255.4.1 netmask 0xffff0000
        inet 195.20.96.108 netmask 0xffffffff
        inet 195.20.96.109 netmask 0xffffffff
        inet 195.20.96.110 netmask 0xffffffff

машина 10.101.4.2 без проблем выходит в инет и пингует инетовские сервера.


"VPN через NAT"
Отправлено A Clockwork Orange , 08-Авг-03 15:49 
Интересный ты человек. ты показываешь часть правил умалчивая про остальные, а у самого три интерфейса на машин, и что ты хочешь тогда?
И о чем нам говорит ifconfig?

"VPN через NAT"
Отправлено Minotaur , 08-Авг-03 19:05 
>Интересный ты человек. ты показываешь часть правил умалчивая про остальные, а у
>самого три интерфейса на машин, и что ты хочешь тогда?
>И о чем нам говорит ifconfig?

Ну и что, что там 3 интерфейса? Давай сделаем allow all from any to any + divert - все равно не работает...

Мне показалось, что я достаточно подробно описал проблему... :\


"VPN через NAT"
Отправлено wwwuser , 08-Авг-03 16:39 
На кой тебе gre девайсы на этой машине, когда нужно просто пропустить пакеты определенного типа ?
Нужен собственно только разрешенный транспорт для pptp aka gre-тунель.

"VPN через NAT"
Отправлено Minotaur , 08-Авг-03 19:04 
>На кой тебе gre девайсы на этой машине, когда нужно просто пропустить
>пакеты определенного типа ?
>Нужен собственно только разрешенный транспорт для pptp aka gre-тунель.

УРА! Я рад. :) Что не нужны...
Как его сделать - этот транспорт?!
gre-туннель и делается через pseudo-device gre... Или я не прав?

Либо с помощью программки gre-tunnel. Как ее правильно сконфигурировать?

да... А если там не pptp? А l2tp?


"VPN через NAT"
Отправлено Minotaur , 09-Авг-03 11:47 
>Если не ошибаюсь, то нат должен быть  NAT-T по RFC 3193.
>Только тогда возможна работа по впн

Сутя по всему, что FreeBSD 4.8-STABLE natd не такой... Вопрос: где взять такой?


"VPN через NAT"
Отправлено Micle , 09-Авг-03 15:38 
Если я не ошибаюсь, то такая связка вообще не заработает, так как человек работает с удаленной машиной через NAT. А НАТ делает изменения в пакете, и данный пакет никогда не сможет пройти проверку безопасности на удаленной машине.
Можно попробовать по извращаться, но скорее всего данные попытки закончиться  неудачей.

"VPN через NAT"
Отправлено Minotaur , 09-Авг-03 19:26 
>Если я не ошибаюсь, то такая связка вообще не заработает, так как
>человек работает с удаленной машиной через NAT. А НАТ делает изменения
>в пакете, и данный пакет никогда не сможет пройти проверку безопасности
>на удаленной машине.
>Можно попробовать по извращаться, но скорее всего данные попытки закончиться  неудачей.
>

хех... Это я уже понял. Предложения вместо NAT?

  User     Server (running NATD) +----------+        VPN Server
    * ------------> * -----------| Internet |-----x----> *
10.101.4.2    10.101.4.254       +----------+          
              195.20.96.118

Такая вот схема... Как заставить ее работать? Альтернативы NAT, с которыми работает VPN?


"VPN через NAT"
Отправлено A Clockwork Orange , 09-Авг-03 19:56 
Не понятно в чем вопрос pptp работает с сетью с любой стороны, хоть клиент впн находится за нат в локальной сети и коннектится с сервером в инете, хоть клиент находится в инете и коннектится на впн сервер и попадает в локальную сеть

"VPN через NAT"
Отправлено TiM , 09-Авг-03 20:10 
Через FreeBSD natd пробывал - не получалось подключить Firewall-1 VPN килента, проблемы с IP адресами (как я понял - IP отправительской маишны не равен IP с которой получен пакет). Выход: знакомый ставил клиента на FreeBSD и локально регулировал кому можно выходить, а кому нет. Надеюсь мысль ясна. Удачи!

"VPN через NAT"
Отправлено Илья , 04-Сен-03 12:34 
>Через FreeBSD natd пробывал - не получалось подключить Firewall-1 VPN килента, проблемы
>с IP адресами (как я понял - IP отправительской маишны не
>равен IP с которой получен пакет). Выход: знакомый ставил клиента на
>FreeBSD и локально регулировал кому можно выходить, а кому нет. Надеюсь
>мысль ясна. Удачи!
Единственное решение, которое я нашел, прописать в natd.conf:
redirect_address <ip1> <ip2>
где ip1 - ip windows-машины в локальной сети с сервером vpn,
ip2 - внешний ip freebsd-машины, смотрящий в инет

правила для файрвола те же, что указывали выше

Но при таком варианте, если freebsd является файрволом, то windows-машина оказывается открыта в инет.

Илья.


"VPN через NAT"
Отправлено Hamza , 09-Окт-03 18:17 
У меня VPN через NAT так и не пошел. Во FreeBSD я эту проблему так и не решил. В Linux (а точнее в iptables) давно ведутся работы над этим ( http://www.iptables.org/documentation/pomlist/pom-extra.html... ) , но до релиза так и не дошло. Также в Linux есть экспериментальный пакет pptpproxy которым я и пользуюсь сейчас. Ради хохмы попробовал его собрать под FreeBSD, естественно не получилось.