Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Интернет через VPN Клиента  (Прочитано 2204 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Aleks_Lord

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Интернет через VPN Клиента
« : 04 Апреля 2012, 20:23:57 »
1 сторона - Домашний комп. Сеть 192.168.1.0/255.255.255.0. Локальная машина, под управлением Ubuntu.

2 сторона - Офис. Локальная сеть. Сеть 192.168.3.0/255.255.255.0. Сервер PPTP под Windows 2003. IP сервера PPTP 192.168.3.203, VPN клиент адрес 192.168.3.204. На шлюзе проброс порта на сервер PPTP.

между ними просторы интернет и разные провайдеры. Задача заключается в следующем, необходимо пустить некий трафик на определённые сайты (ресурсы) с сервера ВПН через ВПН клиента. Т.е. как я понимаю необходимо настроить на стороне клиента НАТ, который будет НАТить пакеты которые идут с сервера через свой шлюз в локалке. На стороне сервера дабавляю маршрут в виде:
х.х.х.х 255.255.255.0 192.168.3.204 (х - адрес ресурса который доступен из локалки ВПН клиента)

НАТ на убунте настраивал https://forum.ubuntu.ru/index.php?topic=107492.0 образом,
фаил /etc/network/interfaces
(Нажмите, чтобы показать/скрыть)


Настройка правил iptables и параметров ядра
(Нажмите, чтобы показать/скрыть)

C Linuxом дружу не очень, можно сказать даже вообще не дружу), нахожусь как раз на стороне Офиса.
При подключении PPTP к серверу пинг есть как со стороны сервера так и обратно.
Подскажите что делаю не так и возможно ли вообще реализовать задуманое?

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #1 : 04 Апреля 2012, 22:06:56 »
Цитировать
При подключении PPTP к серверу пинг есть
А Вы точно уверены, что Убyнта подключается к PPTP-серверу?
Ибо при таком конфиге
Код: (text) [Выделить]
auto lo
iface lo inet loopback
     post-up iptables-restore </etc/iptables.conf
auto eth0
iface eth0 inet dhcp
auto ppp0
iface ppp0 inet static
     address 192.168.3.204
     netmask 255.255.255.0
что есть несусветная глупость, подключиться никак не можно.
Объясняю почему:
1-е. Клиенту pptp надо как-то сказать адрес сервера, параметры туннеля, логин-пароль. Иначе говоря создать профиль подключения pppd.
2-e. Туннель потому и называется точка-к-точке, а в этом конфиге он почему-то сеть.
3-е. Адресация в туннеле основывается на IPCP, т.е рулится PPTP-сервером.

По существу сабжа: реализуется, очень даже. Направление верное. Осталось изучить man interfaces.
OpenWrt 19.07

Оффлайн Aleks_Lord

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #2 : 04 Апреля 2012, 22:27:22 »
Я перепробовал уже несколько вариантов, в том числе и этот(((
Пробовал и без изменения /etc/network/interfaces, там по умолчанию, даже если создаю VPN, присутствует только интерфейс "lo". Исходя инструкции я прописал как существующую локальную сеть (она же является провайдером), так и ppp0 интерфейс (инструкции на счёт ppp0 не нашёл), но так как в Linuxе я далёкий, возможно не правильно это, и возможно это и являться проблемой.
Заранее благодарен за любую помощь.

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #3 : 04 Апреля 2012, 23:06:47 »
Цитировать
инструкции на счёт ppp0 не нашёл
Вот это прикол (с)
О'кей, раз уж речь зашла об interfaces, то и разбирать будем его. На примере с man'ом.
Который говорит про ppp следующее:
(Нажмите, чтобы показать/скрыть)
Т.е сабж будет выглядеть примерно так:
Код: (text) [Выделить]
auto lo eth0 vpn
iface lo inet loopback
      post-up iptables-restore </etc/iptables.conf
iface eth0 inet dhcp
iface vpn inet ppp
      provider vpn
где vpn, с строке provider - есть профиль pppd.
Чтобы настроить профиль обратись к руководству pon/poff
(Нажмите, чтобы показать/скрыть)
/etc/ppp/peers - есть директория для профилей pppd.
/etc/ppp/chap-secrets - файл с логинами паролями pppd
Можно создать файл профиля
sudo touch /etc/ppp/peers/vpn
И начать заполнять его, поглядывая в man pppd и man pptp
Код: (text) [Выделить]
# file /etc/ppp/peers/vpn
# Вызываем pptp
pty "pptp адрес.сервера --nobuffer -loglevel 0 --nolaunchpppd"
# В зависимости от требований авторизации указываем его тип принудительно
# И принудительно же запрещает иные виды авторизации
# К примеру пусть верным типом авторизации будет MS-CHAPv2
require-mschap-v2
# Требуется шифрование канала 128-бит
require-mppe-128
# Задействуем попытки поддерживать соединение при отвале
persist
# Если туннель всё-же отвалился пробуем подключится N - раз. Путь N=5.
# Если N=0 - пытаться подключатся бесконечно.
maxfail 5
# Интервал между попытками переподключения в сек
holdoff 10
# Если необходимо, привязываем номер интерфейса к строго определённому
unit 0
# Отключаем компрессию
nobsdcomp
nodeflate
# Не требовать жёсткой аунтифекации. Иногда не нужно.
noauth
# Включить подробный отчет pppd. Для pptp-linux  меняется значение --loglevel
debug
# Логин подключения.
user userlogin
# Имя подключения
name vpn
# Имя подключения передаваемое в переменную pppd - PPP_IPPARAM ( $6 - алиас )
# Нужно для того, что бы избирательно выполнять скрипты в /etc/ppp/ip-{up,down}.d
ipparam vpn
Профиль создан.
Теперь дело за логином и паролем в /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
userlogin       vpn     userpassword
Явное указание IP-адреса в столбце IP address, нужно только для pptpd, то бы привязать IP к логину. С pptp-linux не срабатывает.
Ну и стартуй туннель
sudo ifup vpn
Вот собственно и вся хитрая наука. Просто надо читать мануалы.
Как там сейчас с ГИПом я не в курсе, но замечал что оно завязано на PowerManagment.
« Последнее редактирование: 06 Апреля 2012, 14:25:30 от KT315 »
OpenWrt 19.07

Оффлайн Aleks_Lord

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #4 : 04 Апреля 2012, 23:25:22 »
Спасибо за такой развёрнутый ответ, завтра обязательно попробую всё по пунктам описать.
Как писал уже выше, с Linuxом начал общаться пару дней, поэтому и косяки, а шеф давит ... что надо и хоть ты тресни((
Цитировать
Вот это прикол (с)
на счёт такой команды под юниксом даже не знал(( всё гуглил по инету.

Завтра в командировку с утра, а после обеда продолжу ... И отпишусь по ходу действий о результате
« Последнее редактирование: 04 Апреля 2012, 23:29:48 от Aleks_Lord »

Оффлайн Aleks_Lord

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #5 : 06 Апреля 2012, 11:16:00 »
Прописал всё как писали выше.

при выполнении команды
sudo ifup vpn

пытается подключится, но соединение не устанавливается(
из вашего конфига пришлось подправить пару строк

Цитировать
# Вызываем pptp
pty "pptp адрес.сервера --nobuffer -loglevel 0 --nolaunchpppd"
тут ругался на "-l" поставил "--" и всё ок

Цитировать
# # Логин подключения.
login userlogin
# Имя подключения
name vpn
говорит не верный параметр, почитав инстукции пришёл к выводу что эту строку вообще не надо, а Логин указывается в параметре "name Userlogin"

Первый раз VPN добавлял через Графический интерфейс в закладке "Сеть - VPN" добавил новое, выставил дополнительные параметры PPTP (галка на Использовать шифрование MPPE 128, остальные галки снял вообще, т.к. с ними не подключалось).

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #6 : 06 Апреля 2012, 13:49:18 »
Цитировать
тут ругался на "-l" поставил "--" и всё ок
Опечатался. Бывает.
Цитировать
Код: (text) [Выделить]
# # Логин подключения.
login userlogin
# Имя подключения
name vpn
говорит не верный параметр, почитав инстукции пришёл к выводу что эту строку вообще не надо, а Логин указывается в параметре "name Userlogin"
Писал по памяти. Верно будет user userlogin
« Последнее редактирование: 06 Апреля 2012, 14:25:45 от KT315 »
OpenWrt 19.07

Оффлайн Aleks_Lord

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #7 : 06 Апреля 2012, 15:58:17 »
после долгих манипуляций и танцев с бубном VPN установил  ;D

что дальше делать? как заставить НАТить Ubuntu пакеты которые приходят из ВПН в сеть?

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #8 : 06 Апреля 2012, 16:29:11 »
В прикреплённом топике есть и в твоём же первом посте.
OpenWrt 19.07

Оффлайн Aleks_Lord

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #9 : 06 Апреля 2012, 18:11:19 »
исходя из поста выше мне остаётся включить форвардинг, что уже сделал ... и
прописать iptables
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

eth0 в данном случае сеть которая подключена к интернету на стороне VPN Клиента.
маршрут на стороне сервера добавил, пробую пинг, пакеты вроде заворачиваются (идут уже не через шлюз сервера) но дальше тишина((

можно ли как то посмотреть на убунте или доходят пакеты? или может я что от ещё упустил? голова уже кругом идёт ...
« Последнее редактирование: 06 Апреля 2012, 18:13:45 от Aleks_Lord »

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #10 : 06 Апреля 2012, 19:24:02 »
пробую пинг
Откуда пробуешь?
можно ли как то посмотреть на убунте или доходят пакеты?
можно. tcpdump
или может я что от ещё упустил?
Не может а точно, что-то упустил. Скорее всего маршрутизацию.
Выкладки route print -4 с Выньсервера и ip -4 r с убунтоклиента сразу для наглядности, если не трудно, можно показать?
OpenWrt 19.07

Оффлайн Aleks_Lord

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #11 : 06 Апреля 2012, 20:03:44 »
Цитировать
Откуда пробуешь?
Пробую прямо с сервера PPTP


route print на Win2003 (PPTP сервер)
(Нажмите, чтобы показать/скрыть)


 ip -4 r с убунтоклиент
(Нажмите, чтобы показать/скрыть)

забыл сказать между домом и офисом настроем VPN мост, поэтому конекчусь не по внешней ИП а по внутренней, но думаю тут не должно быть проблем
« Последнее редактирование: 06 Апреля 2012, 20:07:40 от Aleks_Lord »

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #12 : 06 Апреля 2012, 21:38:41 »
Внимание. Вопрос:
Почему у маршрута
Код: (text) [Выделить]
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
173.194.35.152  255.255.255.255    192.168.3.205     192.168.3.60      1
адрес интерфейса 192.168.3.60, а не 192.168.3.203 ?
« Последнее редактирование: 06 Апреля 2012, 21:43:02 от KT315 »
OpenWrt 19.07

Оффлайн Aleks_Lord

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #13 : 07 Апреля 2012, 11:33:25 »
Цитировать
адрес интерфейса 192.168.3.60, а не 192.168.3.203 ?

хороший вопрос, сам в шоке
маршрут добавил автоматом
route add 173.194.35.152 MASK 255.255.255.255 192.168.3.205 METRIC 1
с возможностью выбрать винде интерфейс самой.
удалил, пробую указать интерфейс принудительно. Windows ругается на не существующий шлюз или не верно указаный интерфейс. Как заставить Винду принудительно указать наш, по сути, виртуальный интерфейс?

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Интернет через VPN Клиента
« Ответ #14 : 07 Апреля 2012, 13:55:32 »
Я думаю, что этот вопрос стоит задать на соответствующем форуме или тут, в треде  "тёмная сторона", потому как, если в PPP-туннеле участвуют машины на GNU\Linux, то проблема решается именно так, как решается в этой парадигме: добавлением нужного маршрута на нужный интерфейс и NAT'ом со стороны pptp-клиента. Несколько минут назад, проделал подобный фокус, все заработало.
Еще, как вариант, можно вынести VPN-туннель в отдельную подсеть.
OpenWrt 19.07

 

Страница сгенерирована за 0.019 секунд. Запросов: 21.