LINUX.ORG.RU
ФорумAdmin

Не видно сеть за сервером OpenVPN


0

1

Доброго времени суток.
Поставлена задача настроить VPN-сервер для доступа сотрудников к другим серверам, не имеющим белых IP и объединенным в одну локальную сеть с сервером, на котором будет развернут VPN. После настройки VPN удается законнектиться с сервером, но сеть за ним не пингуется с клиента. Решила сделать тестовый стенд на VMWare8. Создала 2 виртуалки - одну под VPN-сервер, другую в качестве сервера, к которому нужен доступ за VPNом (обе под FreeBSD8.2, как и реальный сервер). Настроила между ними локальную изолированную сеть 192.168.100.0/24, на первой настроила VPN с адресом сети 10.13.0.0/24. VPN-клиентом является базовый хост (под Win7), на котором стоят виртуалки. Коннектится к серверу успешно, однако, проблема та же - вторая виртуалка не пингуется. Привожу конфиги клиента и сервера.
Конфиг сервера:

port 2000
proto tcp
dev tun0
mode server
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/server.crt
key /usr/local/etc/openvpn/keys/server.key
dh /usr/local/etc/openvpn/keys/dh1024.pem
server 10.13.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push «route 192.168.100.0 255.255.255.0»
tls-server
tls-auth /usr/local/etc/openvpn/keys/ta.key 0
tls-timeout 120
auth MD5
cipher BF-CBC
comp-lzo
keepalive 10 120
max-clients 5
user nobody
group nobody
tun-mtu 1400
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
verb 5

Конфиг клиента:

client
dev tun
remote 192.168.249.132
port 2000
proto tcp
nobind
tun-mtu 1400
resolv-retry infinite
ca ca.crt
cert client-okami1.crt
key client-okami1.key
tls-client
tls-auth ta.key 1
auth MD5
cipher BF-CBC
ns-cert-type server
comp-lzo
persist-key
persist-tun
verb 5

В силу малого опыта бьюсь над этим в общей сложности несколько недель, сроки пока не жмут, но тем не менее, мозг уже вынесен основательно, руки потихоньку опускаются. Дошло уже до таких извращений, что пыталась на внутреннем интерфейсе сервера с адресом 192.168.100.1 натить трафик из 192.168.100.0/24 в 10.13.0.0/24 с помощью natd...
Помогите, пожалуйста, разобраться в данной задаче.

Ответ на: комментарий от DALDON

Я так понимаю, что команда iroute говорит OpenVPN'у, что за таким-то клиентом есть определенная сеть, но мне прежде всего необходимо получить доступ не в сеть за клиентом, а в сеть за сервером.

Incher ()
Ответ на: комментарий от Incher

Нужно прочитать официальную документацию, и man страницы к openvpn, там всё написано. И если я правильно помню, про эту опцию написано как раз обратное, то есть это то, что нужно.

DALDON ★★★★★ ()

Маршрутизация, маршрутизация, маршрутизация. :)

Покажите вывод

ip ro sh

на openvpn сервере и клиенте (после поднятия соединения, само собой).

strangeman ★★★★ ()
Ответ на: комментарий от strangeman

А, на клиенте винда, ну тогда

route print

на ней. В семерке, кстати, openvpn вообще ведет себя некрасиво в плане маршрутизации (http://kuz-dim.blogspot.com/2011/03/openvpn-windows-7.html, как один из примеров).

strangeman ★★★★ ()
Последнее исправление: strangeman (всего исправлений: 2)

Я, наверное, не совсем по теме выскажусь, но, во-первых, тема «недоступна сеть за опенВПНом» разжевывалась уже сто раз и наверняка в поиске есть решения.
А во-вторых, на кой черт загонять семерочных клиентов под чуждый опенВПН, когда изкоробочная семерка умеет PPTP, L2TP/IPSec и прочее? Просто потому, в гугле ищется больше кикстартов по опенВПН?

thesis ★★★★★ ()
Ответ на: комментарий от strangeman

На клиенте:
===========================================================================
Список интерфейсов
16...00 ff 9d 4c 15 bf ......TAP-Win32 Adapter V9
12...00 25 d3 6b 33 75 ......Адаптер беспроводных сетей Atheros AR9285 Wireless
11...90 e6 ba 42 36 8f ......Сетевая карта  Realtek RTL8168B/8111B Family PCI-E
Gigabit Ethernet NIC (NDIS 6.20)
15...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
1...........................Software Loopback Interface 1
17...00 00 00 00 00 00 00 e0 Адаптер Microsoft ISATAP
14...00 00 00 00 00 00 00 e0 Адаптер Microsoft ISATAP #2
13...00 00 00 00 00 00 00 e0 Адаптер Tunneling Pseudo-Interface
36...00 00 00 00 00 00 00 e0 Адаптер Microsoft ISATAP #3
18...00 00 00 00 00 00 00 e0 Адаптер Microsoft ISATAP #4
===========================================================================

IPv4 таблица маршрута 
===========================================================================
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика 
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.76 25
10.13.0.1 255.255.255.255 10.13.0.5 10.13.0.6 30
10.13.0.4 255.255.255.252 On-link 10.13.0.6 286
10.13.0.6 255.255.255.255 On-link 10.13.0.6 286
10.13.0.7 255.255.255.255 On-link 10.13.0.6 286
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
169.ххх.0.0 255.255.0.0 On-link 192.168.249.1 30
169.254.255.255 255.255.255.255 On-link 192.168.249.1 276
192.168.0.0 255.255.255.0 On-link 192.168.0.76 281
192.168.0.76 255.255.255.255 On-link 192.168.0.76 281
192.168.0.255 255.255.255.255 On-link 192.168.0.76 281
192.168.100.0 255.255.255.0 10.13.0.5 10.13.0.6 30
192.168.249.0 255.255.255.0 On-link 192.168.249.1 276
192.168.249.1 255.255.255.255 On-link 192.168.249.1 276
192.168.249.255 255.255.255.255 On-link 192.168.249.1 276
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 10.13.0.6 286
224.0.0.0 240.0.0.0 On-link 192.168.249.1 276
224.0.0.0 240.0.0.0 On-link 192.168.0.76 281
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 10.13.0.6 286
255.255.255.255 255.255.255.255 On-link 192.168.249.1 276
255.255.255.255 255.255.255.255 On-link 192.168.0.76 281
===========================================================================
Постоянные маршруты:
Отсутствует

IPv6 таблица маршрута
===========================================================================
Активные маршруты:
Метрика  Сетевой адрес Шлюз
1 306 ::1/128 On-link
15 276 fe80::/64 On-link
12 281 fe80::/64 On-link
15 276 fe80::ac06:6341:a35f:77e0/128
On-link
12 281 fe80::cdfc:94fc:cc19:1eb/128
On-link
1 306 ff00::/8 On-link
15 276 ff00::/8 On-link
12 281 ff00::/8 On-link
===========================================================================
Постоянные маршруты:
Отсутствует

Сервер на ip ro sh ругается, привожу netstat -rn:
Routing tables

Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.249.2 UGS 0 0 em0
10.13.0.0/24 10.13.0.2 UGS 0 8 tun0
10.13.0.1 link#5 UHS 0 0 lo0
10.13.0.2 link#5 UH 0 0 tun0
127.0.0.1 link#4 UH 0 0 lo0
192.168.100.0/24 link#2 U 0 51 em1
192.168.100.1 link#2 UHS 0 0 lo0
192.168.249.0/24 link#1 U 1 2001 em0
192.168.249.132 link#1 UHS 0 0 lo0

Internet6:
Destination Gateway Flags Netif Expire
::1 ::1 UH lo0
fe80::%lo0/64 link#4 U lo0
fe80::1%lo0 link#4 UHS lo0
ff01:4::/32 fe80::1%lo0 U lo0
ff02::%lo0/32 fe80::1%lo0 U lo0

Incher ()
Ответ на: комментарий от thesis

Я перекопала гугл вдоль и поперек на эту тему за последний месяц - ни одно найденное готовое решение не дало нужного результата. OpenVPN выбран руководством, да и является довольно распространенным и удобным решением. Суть дела не подстроиться под мой клиентский комп с семеркой - парк серверов преимущественно под линукс/юникс, клиенты также имеются и под линуксом тоже. И вообще, по хорошему, решение должно работать для любой платформы, это не должно быть проблемой клиента, ИМХО.

Incher ()
Ответ на: комментарий от Incher

Проблема в том, что Вы не хотите читать оф. документацию, за последний месяц можно попробовать прочесть 110 страниц манов.

DALDON ★★★★★ ()
Ответ на: комментарий от thesis

да офтопик. но зачем плодить еще одну никому не нужную тему ради ответа на простой вопрос

если вам не хочется отвечать так бы и сказали

ZuBB ★★★★★ ()
Ответ на: комментарий от ZuBB

В толксах можно было бы потрепаться, а здесь неуместно.

thesis ★★★★★ ()
Ответ на: комментарий от Incher

А, про парк клиентов понял. Думал, у вас там одни венды, раз тестовая виртуалка под вендами.
Да не может быть, чтобы поиск по ЛОРу (нафиг гугль) не выдал решений. Регулярно же появляются темы «не ходят пакеты в сеть за сервером».

thesis ★★★★★ ()
Ответ на: комментарий от thesis

поиск по ЛОРу

Это тоже входило в список результатов, выданных гуглом =)

Incher ()
Ответ на: комментарий от DALDON

Спасибо, попытаюсь, конечно, разобраться с iroute, но, если дело в маршрутизации, то я в ней совсем несильна, придется повозиться...

Incher ()
Ответ на: комментарий от Incher

Кстати, а может я очень и дико затупил... Может и правда iroute для того чтобы видеть сеть _за клиентом_, похоже Вы правы, я просто давно уже читал документацию, и уже не очень ясно помню для чего там оно было нужно, помню, что сам возился. Приношу своих диких тысячу извинений. :(

В общем такой вопрос: а на сервере VPN форвард пакетов включен? (об этом вы вроде не упомянали хотя, если делали NAT то скорее всего включен, но без этого не будет работать).

На клиентской машине которая находится ЗА серверовм VPN, сервер VPN является default gw?

В общем у Вас совсем всё не сложно должно быть.

На машинах запускайте traceroute или tracepatch и смотрите где пакеты отваливаются.

DALDON ★★★★★ ()
Ответ на: комментарий от DALDON

Извинения приняты =)

На машине за VPNсервером в rc.conf прописан defaultrouter=«192.168.100.1».

Насчет NAT не уверена, что получилось правильно и что оно вообще работает, у меня с этим туго. В rc.conf на сервере прописано:
gateway_enable=«YES»
firewall_enable=«YES»
firewall_type=«OPEN»
natd_enable=«YES»
natd_interface=«em1» #192.168.100.1
natd_flags="-f /etc/natd.conf"

Содержание /etc/natd.conf пока пусто.

Incher ()
Ответ на: комментарий от Incher

Nat вам не нужен вообще.

Чтобы сделал я:

1) посмотрел логи openvpn что там пишется - там реально бывает очень часто пишется годная информация. Т.е.: /var/log/openvpn/openvpn.log

2) отключил бы все firewall на Windows 7.

3) сделал бы ping из Win7 сперва по адресам VPN интерфейса т.е.: 10.13.0.x

4) сделал бы traceroute с Win7 - вида: traceroute 192.168.100.1 (я правильно понимаю, что 192.168.100.1 это адрес сетевой карты на FreeBSD которая выступает в роли сервера vpn?)

5) сперва я бы стал добиваться ответов как раз от адреса: 192.168.100.1, и только потом разбираться дальше. С Win7 запускал бы что-то вроде: ping 192.168.100.1 -t

6) если бы ответов не было, я бы на FreeBSD которая vpn сервер запустил бы утилиту: trafshow, и смотрел бы, а приходят ли ping с Win7. - Если бы они приходили, стал бы смотреть почему они обратно не уходят (смотрел бы ещё раз маршруты, выключил бы firewall и NAT). Кстати, что gateway_enable=YES - это что надо, так и должно быть на сервере vpn. Если бы они не приходили стал бы разбираться с Win7.

В общем Вам надо только один раз разобраться с этим, потом проще всё пойдёт, поймёте что к чему.

Как только бы стал получать ответ от 192.168.100.1 на Win7, стал бы уже смотреть дальше (а именно: с доступом к виртуалке которая находится за vpn шлюзом). - Примерно по такому же алгоритму, запустил бы trafshow на второй машине, и начал бы смотреть.

Сейчас не очень ясно пока, пингуется ли первая виртуалка у вас или нет по адресу: 192.168.100.X.

DALDON ★★★★★ ()
Ответ на: комментарий от DALDON

Firewall на Win7 отключены, сетка 10.13.0.0/24 пингуется, первая виртуалка по адресу 192.168.100.1 пингуется, а вторая 192.168.100.2 - нет. Руководитель все-таки предложил использовать nat и ipfw, подкинул пару статей: http://wiki.firstvds.ru/index.php/Установка_OpenVPN_под_FreeBSD, http://www.lissyara.su/articles/freebsd/tuning/ipfw_nat/

В итоге, на тестовом стенде с настройками, приведенными ниже, все заработало:
sysctl net.inet.ip.forwarding=1

/etc/rc.conf:
firewall_nat_enable=«YES»
dummynet_enable=«YES»
gateway_enable=«YES»
firewall_enable=«YES»
firewall_type=«/etc/rc.ipfw.rules»

/etc/rc.ipfw.rules:
nat 123 config ip <внешний_ip> log
add 10 nat 123 ip from <VPN-сеть/24> to any
add 20 nat 123 ip from any to <внешний_ip>
add 1001 pass all from any to any

Шеф проверил, одобрил, произвела аналогичные действия на продакшене, но фаервол все равно все перекрыл, снова связь извне пропала, снова нагоняй от начальства..

Incher ()
Ответ на: комментарий от Incher

Хозяин-барин конечно. Но NAT это конечно весьма сурово. Всё же traceroute и trafshow мне кажется были-бы более лучшим вариантом для попытки решения проблемы.

DALDON ★★★★★ ()
7 декабря 2012 г.
Ответ на: комментарий от Incher

В клиентском конфиге для того, чтобы автоматически прописывались маршруты полученные от сервер OpenVPN есть строчки:

route-method exe
route-delay 2

Но стоит понимать, что маршруты Вам никто не даст в Вынь7 прописать просто так. Поэтому необходимо клиент OpenVPN запускать с административными привилегиями (правый клик по ярлыку - запустить под администратором). После этого маршруты прописываются успешно.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.