Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Нет доступа к инету через openVPN server, хотя DNS резолвится...
 
Вот, решил набраться скила с настройкой VPN.

Изначальная ситуация: на компе №1 (192.168.0.11) стоит виртуалка с Ubuntu 10.10 Эта виртуалка является сервером openVPN. У виртуалки сетевой интерфейс bridge (192.168.0.2). Т.е. и комп №1 и другие компы сети могут обратиться к ней напрямую (пинги на неё идут по её локальному адресу).

Комп №2 (192.168.0.4) является клиентом openVPN. Это Ubuntu 10.10

Задача: компу №2 нужно через VPN соединиться с виртуалкой, и уже из неё получить долгожданный инет (виртуалка имеет инет через реальный комп, на котором она стоит)
Прочитав краткий экскурс на тему топика сделал следущее

виртуалка:
Цитата
dev tun
ifconfig 10.11.11.1 10.11.11.2
secret /etc/openvpn/static.key

comp-lzo

keepalive 10 60
ping-timer-rem
persist-tun
persist-key

user nobody
group nogroup
daemon

log-append /var/log/openvpn.log
status /var/log/openvpn-status.log

комп №2:

Цитата
remote 192.168.0.2
dev tun
ifconfig 10.11.11.2 10.11.11.1
secret /etc/openvpn/static.key

# Use compression on the VPN link
comp-lzo

# Make the link more resistent to connection failures
keepalive 10 60
ping-timer-rem
persist-tun
persist-key

# Run OpenVPN as a daemon and drop privileges to user/group nobody
user nobody
group nogroup
daemon

# Allow client to reach entire server subnet
#route 10.11.11.0 255.255.255.0

# Set logging
log-append /var/log/openvpn.log
status /var/log/openvpn-status.log

static.key я заранее сгенерил и поставил и на клиента и на сервер

После этого проверил связь. Пинги с компа №2 на виртуалку пошли. В arp-таблице есть записи только о локальных IP. И нету об IP VPN-соединения (может, это и нормально для данной ситуации)
А вот инет так и не стал доступным через этот VPN

Вот что в таблице маршрутизации компа №2:

Цитата
$ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
10.11.11.1      *               255.255.255.255 UH    0      0        0 tun0
192.168.0.0     *               255.255.255.0   U     2      0        0 wlan0
link-local      *               255.255.0.0     U     1000   0        0 wlan0
default         10.11.11.1      0.0.0.0         UG    0      0        0 tun0

По идее, всё корректно

tcpdump на компе №2 при попытке обратиться к www.mail.ru (плюс ещё к паре ресурсов)

Цитата
#tcpdump -i tun0 -n -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
20:39:13.826732 IP 10.11.11.2.55838 > 66.102.13.138.80: Flags [S], seq 3302781571, win 5840, options [mss 1460,sackOK,TS val 851616 ecr 0,nop,wscale 7], length 0
20:39:23.615400 IP 10.11.11.2.49459 > 94.100.191.201.80: Flags [S], seq 4173335806, win 5840, options [mss 1460,sackOK,TS val 852595 ecr 0,nop,wscale 7], length 0
20:39:26.624372 IP 10.11.11.2.49459 > 94.100.191.201.80: Flags [S], seq 4173335806, win 5840, options [mss 1460,sackOK,TS val 852896 ecr 0,nop,wscale 7], length 0
20:39:32.644272 IP 10.11.11.2.49459 > 94.100.191.201.80: Flags [S], seq 4173335806, win 5840, options [mss 1460,sackOK,TS val 853498 ecr 0,nop,wscale 7], length 0
20:39:38.625068 IP 10.11.11.2.47123 > 74.125.232.48.80: Flags [S], seq 2944340481, win 5840, options [mss 1460,sackOK,TS val 854096 ecr 0,nop,wscale 7], length 0
20:39:44.664336 IP 10.11.11.2.49459 > 94.100.191.201.80: Flags [S], seq 4173335806, win 5840, options [mss 1460,sackOK,TS val 854700 ecr 0,nop,wscale 7], length 0

Т.е. и имя резолвит. Но соединения нету (ни mail.ru никакие другие не открываются в браузере, и через telnet на порт 80 до них не достучаться).

На всякий случай лог VPN-сервера:

Цитата
Tue Apr  5 09:25:04 2011 OpenVPN 2.1.0 i686-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [MH] [PF_INET6] [eurephia] built on Jul 12 2010
Tue Apr  5 09:25:04 2011 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA.  OpenVPN 2.0-beta16 and earlier used 5000 as the default port.
Tue Apr  5 09:25:04 2011 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Tue Apr  5 09:25:04 2011 /usr/sbin/openvpn-vulnkey -q /etc/openvpn/static.key
Tue Apr  5 09:25:04 2011 LZO compression initialized
Tue Apr  5 09:25:04 2011 TUN/TAP device tun0 opened
Tue Apr  5 09:25:04 2011 /sbin/ifconfig tun0 10.11.11.1 pointopoint 10.11.11.2 mtu 1500
Tue Apr  5 09:25:04 2011 GID set to nogroup
Tue Apr  5 09:25:04 2011 UID set to nobody
Tue Apr  5 09:25:04 2011 UDPv4 link local (bound): [undef]
Tue Apr  5 09:25:04 2011 UDPv4 link remote: [undef]
Tue Apr  5 09:25:06 2011 Peer Connection Initiated with [AF_INET]192.168.0.4:1194
Tue Apr  5 09:25:07 2011 Initialization Sequence Completed

В чём трабла? Где копать?
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
Судя по таблице маршрутизации и попаданию нужных данных в тоннель (tcpdump) на компме №2 с маршрутами все корректно.
Теперь встречный вопрос: а как бубунта должна выпускать комп №2 в интернет? Сейчас, я так понимаю, доступ к интернету посредством NAT имеет подсеть 192.168.0.0/24. Видимо NAT не включен для подсети 10.11.11.0/24 на маршрутизаторе (ты не показал таблицу маршрутов для бубунты).

Для того, чтобы выпустиь комп №2 в интернет через тоннель можно выбрать один из вариантов:

1. Прописать маршрут на маршрутизаторе, что сеть 10.11.11.0/24 находится за 192.168.0.2, включить на Ubuntu маршрутизацию (в линуксе это форвардинг вроде называется) и настроить NAT для 10.11.11.0/24 на маршрутизаторе. При этом, шлюз по умолчанию после поднятия тоннеля должен смотреть в тоннель.

или

2. Поднять NAT на Ubuntu на интерфейсе 192.168.0.2 (eth0) для подсети 10.11.11.0/24
PS: для проверки того, куда ходят пакеты, удобнее использоваться команду traceroute, а не tcpdump
 
Спасибо. Разобрался. Сделал ip форвардинг и NAT (через iptables). Связь по туннелю пошла.

Задачка слегка усложнилась: необходимо, чтоб комп №1 передавал данные по тоннелю на комп №3 через комп №2

На компе №2 также настроил ip форвардинг и NAT. Без VPN по этому маршруту всё пошло нормально. Но никак не могу заставить комп №1 завернуть туда VPN.

Дописал в конфиг клиента:

Цитата
route-gateway комп 2
redirect gateway

после этого в route вижу: комп 2 стал default
пакеты идут теперь через него, но не в тоннеле

в чём ошибка?
Изменено: Shanker - 07.04.2011 20:31:58
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
рисуй схему. я прочитал несколько раз, но так и не понял, что ты хочешь и куда заворачивать
 


Задача: весь трафик компа №1 завернуть через vpn (комп №3), передав транзитом через комп №2.

На компе №2 и компе №3 настроены ip форвардинг и NAT.

После выполнения команды
Цитата
#/etc/init.d/openvpn restart

таблица маршрутизации на клиенте:

Цитата
#route

10.11.11.1 * 255.255.255.255 UH 0 0 0 tun0
192.168.0.0 * 255.255.255.0 U 2 0 0 wlan0
link-local * 255.255.0.0 U 1000 0 0 wlan0
default 192.168.0.20 0.0.0.0 UG 0 0 0 wlan0

И весь трафик идёт по нужному маршруту, но в открытую

P.S. Комп №1 на самом деле подключается к сетке не через eth0 а через wlan0 (к роутеру). Но, думаю, это не принципиально
Изменено: Shanker - 12.04.2011 22:49:07
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
Все равно не понятно :)
у тебя есть 4 ОС, comp1, comp2, comp3 и ubuntu - верно?
ubuntu является VPN сервером, к которому подключаются клиенты (изначально это был comp2).
Теперь задача - перенаправить весь трафик по VPN с comp1 на comp3 через тоннель comp2->ubuntu?
 
Нет. Все нарисованные компы - это теперь виртуалки. На каждом из них убунта. Все они находятся под управлением реальной машины, на которой тоже убунта. Все компы подключены как bridge.

Комп №1 - это vpn клиент. Комп №3 - это vpn сервер

Необходимо настроить передачу трафика с кома №1 на комп №3 через комп №2. Силами этих виртуалок. На реальной машине ничего менять/настраивать не нужно.
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
Цитата
Shanker пишет:
Все компы подключены как bridge.

1 Вопрос.

Что то я тоже понять не могу, наверно что то пропустил, а разве можно на одном интерфейсе(одном IP) настроить мост(bridge)? Я по картинке вышеприведенной сужу, а сказано было - по бриджу на каждый комп.

Тут я что то недопонял – всегда думал что это истинно:

- можно поднять мост между двумя(не тремя или более) интерфейсами но на одном железе(возможно виртуальном). А судя по картинке комп 1,2,3 имеют по одному фейсу наружу.  

2 Одни непонятки.

ИМХО там одна подсеть(физическая на виртуальном железе) и VPN на ней смотрится как то неоднозначно.

Ну конечно настроить можно эту ВПН но из подсети и на подсеть. А внутри это как? Какой смысл?

???

У впн столько понятий что никому это не дано понять. Вы просто опишите цель и вам подскажут.
 
Всё что я делал до этого - эксперименты, которые в некотором приближении отражают задачу.

Сама задача в реальности вот такая: есть 3 компьютера. Находятся в разных сетях в инете. Необходимо настроить VPN туннель с компьютера №1 до компа №3 транзитом через компьютер №2. Так, чтобы компьютер №3 "ничего не знал" про компьютер №1.
А комп №1 в итоге "смотрел в интернет глазами" компа №3

lkesh
На приведённом рисунке комп №1 №2 и №3 - это всё виртуалки. Они подключены в локальную сеть через bridge, любезно предоставленный Oracle VitrualBox :) и посему каждый имеет реальный (для сегмента этой локалки) IP (а не заНАТченный). По этим IP можно обратиться с каждой из этих виртуалок
Изменено: Shanker - 26.04.2011 19:43:57
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
Цитата
Shanker пишет:
Необходимо настроить VPN туннель с компьютера №1 до компа №3 транзитом через компьютер №2.
Задача-то тривиальная! Даже скучно. Но, как истинный джедай, ты ее усложнил с помощью виртуалок )
 
Ну, теперь-то я немного догоняю насчёт этого. Сказывается недостаток знаний в построении сетей

Только я всё же не понял как в этой тривиальной задаче настроить комп №2 и комп №3
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
комп 3 - как vpn сервер. комп 2 как VPN сервер + NAT.

с компа 1 делаешь vpn подключение к компу 2, затем через этот тунель vpn подключение к компу 3.
 
Если бы ты делал на openswan (ipsec), то я бы тебе подсказал. А в openvpn я не разбираюсь.
 
Цитата
RU_LIDS пишет:
Если бы ты делал на openswan (ipsec)
А какая разница, какой софт использовать? структура подключений одна и та же все равно получится.
 
2 TeckLord
Структура то одна и та же, да вот тонкости разные. В openswan создается интерфейс ipsecX, а в openvpn я не знаю (tun вроде?). Соответственно, от этого будут зависеть правила iptables. tc опять же, если нужен.
 
Цитата
TeckLord пишет:
комп 3 - как vpn сервер. комп 2 как VPN сервер + NAT.

с компа 1 делаешь vpn подключение к компу 2, затем через этот тунель vpn подключение к компу 3.
Т.о. трафик будет расшифровываться на компе №2, потом снова шифроваться и отправляться компу №3? ХЗотелось бы, чтоб комп №3 занимался только транзитом, а не шифровкой/дешифровкой
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
Цитата
Shanker пишет:
Т.о. трафик будет расшифровываться на компе №2, потом снова шифроваться и отправляться компу №3?
Нет, комп 2 ничего шифровать не будет.
точнее будет, но только данные для служебного тунеля
 
На компе№ 2 должно быть tun0 для компа №1 и tun1 для компа №3 Так?
А ключа шифрования вообще не указывать? Он будет указан только на компе №1 и компе №3?
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
Цитата
RU_LIDS пишет:
tc опять
Что такое tc?
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
Цитата
Shanker пишет:
А ключа шифрования вообще не указывать? Он будет указан только на компе №1 и компе №3?
Указывать или нет - это зависит от типа аутентификации, который ты выберешь. Это уже специфические настройки OpenVPN.

Цитата
Shanker пишет:
Что такое tc?
http://linux.die.net/man/8/tc
Страницы: 1
Читают тему