Автор Тема: OpenVPN маршрутизация [РЕШЕНО]  (Прочитано 37593 раз)

Оффлайн rabochyIT

  • Участник
  • *
  • Сообщений: 23
Помогите разобраться. Не хватает знаний по этой теме.
Хочу связать две локальные сети local1:192.168.8.0/24 и local2:192.168.5.0/24
поднял OpenVPN вот по этой инструкции http://forum.altlinux.org/index.php/topic,8557.0.html
(через web 'морду' 127.0.0.1:8080)
Локальные Windows сети объединяются интернет каналом через  OpenVPN tun (192.168.100.0/24), который  установлен на Альтах (Кентавр) alt1(OpenVPN - server) и alt2 (OpenVPN -client).
Цепочка имеет вид:
local1:192.168.8.0/24 > alt1(OpenVPN – server) < tun (192.168.100.0/24) >  alt2 (OpenVPN -client) < local2:192.168.5.0/24

Интерфейс alt1(OpenVPN – server)
eth0  xx.xx.xx.xx/30 gw yy.yy.yy.yy dns zz.zz.zz.zz (internet)
eth2 192.168.8.1/24 gw НЕТ dns НЕТ (local1)
tun1 192.168.100.0/24 (поднятый тунель)

Интерфейс alt2 (OpenVPN -client)
eth1 192.168.5.1/24 gw 192.168.5.3 dns 192.168.5.3 (local2) 
tun0 192.168.100.0/24 (поднятый тунель)
192.168.5.3 — (шлюз) IP модема подключенного к интернет.

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

Команда с Windows машины из local1:192.168.8.0/24 на Интерфейс alt2 (OpenVPN -client) (eth1)
tracert 192.168.5.1
Трассировка маршрута к 192.168.5.1 с максимальным числом прыжков 30
  1     1 ms    <1 мс    <1 мс  192.168.8.1
  2    84 ms    79 ms    82 ms  192.168.5.1
Трассировка завершена.


Команда с Windows машины из local1:192.168.8.0/24 на Интерфейс Windows
tracert 192.168.5.5
Трассировка маршрута к 192.168.5.5 с максимальным числом прыжков 30

  1     1 ms    <1 мс    <1 мс  192.168.8.1
  2    88 ms   102 ms   101 ms  192.168.100.6
  3     *            *             *         превышен интервал ожидания

Короче, ping из тунеля 192.168.100.0/24 tun0  прыгает на интерфейс eth1, а вглубь локальной сети которая подключена через  eth1 прыжка нет. С чего НАЧАТЬ поиск проблемы?

Нужен вот этот результат: tracert 192.168.5.xx
Трассировка маршрута к GLAVBUH [192.168.5.xx] - xx - любая машина local2 windows сети
с максимальным числом прыжков 30:

  1    <1 мс    <1 мс    <1 мс  192.168.8.1
  2    87 ms   102 ms    78 ms  192.168.100.6
  3    80 ms    94 ms    99 ms  GLAVBUH [192.168.5.xx]

Трассировка завершена.

Конфиг сервера:
# Generated by alterator-openvpn-server, do not edit manually
port 1194
proto tcp-server
dev  tun1
ca   /var/lib/ssl/certs/openvpn-server-CA.crt
cert /var/lib/ssl/certs/openvpn-server.cert
key  /var/lib/ssl/private/openvpn-server.key
dh   /var/lib/ssl/private/openvpn-server.dh
server 192.168.100.0 255.255.255.0
user openvpn
group openvpn
ifconfig-pool-persist ipp.txt
keepalive 10 120
client-config-dir /etc/openvpn/ccd
persist-key
persist-tun
client-to-client
script-security 2
status openvpn-status.log
verb 3
comp-lzo
# Server networks start
push "route 192.168.8.0 255.255.255.0"
# Server networks end
route 192.168.5.0 255.255.255.0
push "route 192.168.5.0 255.255.255.0"
push "dhcp-option DNS 192.168.8.1"

Конфиг клиента
client
dev tun0
proto tcp-client
remote xx.xx.xx.xx 1194
resolv-retry infinite
nobind
user openvpn
group openvpn
persist-key
persist-tun
ca   /var/lib/ssl/certs/openvpn-client-CA.crt
cert /var/lib/ssl/certs/a5.cert
key  /var/lib/ssl/private/a5.key
script-security 2
verb 3
comp-lzo
« Последнее редактирование: 25.12.2012 13:22:20 от rabochyIT »

Оффлайн Salomatin

  • Модератор раздела
  • ****
  • Сообщений: 984
    • Пошаговые инструкции
Re: OpenVPN маршрутизация
« Ответ #1 : 14.06.2012 12:29:57 »
Пока нет возможности вникнуть в частности вашей сети.
Связать подсети можно двумя обязательными директивами
1 прописать маршрут, например:

ip ro add  192.168.0.0/16 via 192.168.1.1 src 192.168.1.16 -добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с ip-адресом 192.168.1.1 через 192.168.1.16

2. Разрешить NAT
iptables -t nat -A POSTROUTING -o tun0 -s 192.168.0.0/24 -j MASQUERADE

Замените данные на свои и привяжите в своим сетевым интерфейсам

Все должно работать
Хочешь понять сам, объясни другому.
"Если уже все испробовал и ничего не помогает - почитай инструкцию"

Оффлайн rabochyIT

  • Участник
  • *
  • Сообщений: 23
Re: OpenVPN маршрутизация
« Ответ #2 : 14.06.2012 16:30:26 »
добавил на клиента ip ro add  192.168.100.0/24 via 192.168.5.3 dev eth1
после рестарта значения исчезли, да и не помогло не совсем понятно как роутинг работает
работает цепочка
alt1(OpenVPN – server) < tun (192.168.100.0/24) >  alt2 (OpenVPN -client) < local2:192.168.5.0/24 со стороны сервера

и  alt2 (OpenVPN -client) < tun (192.168.100.0/24) > alt1(OpenVPN – server)  < local1:192.168.8.0/24 со стороны клиента

а  цепочка local1:192.168.8.0/24 <...> local2:192.168.5.0/24  не работает

может еще какие данные надо или какой то   ip ro add ... особый нужно.
... странно по VNC с сервера в локальную сеть клиента бегает, а RDP не проходит, может фаервол блокирует. Так вроде он висит только на внешних интерфейсах а на внутренних отключен.
« Последнее редактирование: 14.06.2012 16:53:32 от rabochyIT »

Оффлайн asket

  • Участник
  • *
  • Сообщений: 355
  • просто пользователь..
Re: OpenVPN маршрутизация
« Ответ #3 : 14.06.2012 20:50:09 »
Прежде всего, веб-конфигуратор для OpenVPN более чем скромен- нет и половины функций. Но конфиги, сгенерированные им править можно (и нужно. если не хватает встроенных функций).
По Вашей ситуации- прежде всего в конфиг сервера нужно добавить строчки
push "route 192.168.8.0/24"  -говорим клиетам добавить себе маршрут к подсети 192.168.8.0/24 через туннель
route 192.168.5.0/24- говорим локальной машине прописать при поднятом туннеле маршрут к сети 192.168.5.0/24 через туннель

и создать в папке /var/lib/openvpn/etc/openvpn/ccd файл с именем клиента (в Вашем случае это скорее всего а5)
и вписать в него
iroute 192.168.5.0/24 -так Вы объясните OpenVPN через какого именно клиента доступна сеть 192.168.5.0/24.
ВНИМАНИЕ! После этого вносить изменения через альтератор уже нельзя-иначе он перепишет конфиг под себя. А лучше передоверить управление туннелями etcnet.
Перезапустите OpenVPN и посмотрите маршрутизацию  -
ip route .
Если все правильно- там будут маршруты через туннели.

А вообще, очень рекомендую раскурить http://www.lissyara.su/articles/freebsd/security/openvpn+pkcs-12/. Все разжевано ну просто дальше некуда. Единственная специфика АЛЬТа - клиентские конфиги (ccd) из-за chroot находятся не в /etc/openvpn/ccd, а в /var/lib/openvpn/etc/openvpn/ccd.
« Последнее редактирование: 14.06.2012 20:56:53 от asket »

Оффлайн rabochyIT

  • Участник
  • *
  • Сообщений: 23
Re: OpenVPN маршрутизация
« Ответ #4 : 15.06.2012 12:26:13 »
asket - если ты внимательно смотрел мой конфиг, то эти значения там присутствовали. Спасибо тебе за разъяснение и за ссылку. Много полезного узнал.
Нашел в чем засада, почему не проходили пакеты. У нас в сети с обеих сторон стоят антивирусы Касперского и управляемые "АдминКитом" (сервером управления). Нужно было лишь добавить сети в политику рабочих станций local1:192.168.8.0/24 >< local2:192.168.5.0/24 - как Локальные сети и разрешить любую сетевую активность. А сеть < tun (192.168.100.0/24) > (думаю не обязательно, но все же) указать в политике как доверенная.

Всем большое спасибо за помощь. Можно теперь продолжить тему уже по тонкой настройке OpenVPN.

Кстати? я так и не понял, как запускать OpenVPN минуя альтератор?
команды:
service openvpn start и /etc/rc.d/init.d/openvpn start запускают сервер как-то иначе. Может кто пояснит... ?

Оффлайн asket

  • Участник
  • *
  • Сообщений: 355
  • просто пользователь..
Re: OpenVPN маршрутизация
« Ответ #5 : 15.06.2012 14:26:59 »
OpenVPN-туннелями можно управлять через etcnet. Для этого в папке /etc/net/ifaces создаем папку с названием интерфейса (к примеру tun1)
и создаем в ней файл options следующего содержания:
[root@quagga_router tun1]# cat options
ONBOOT=yes
TYPE=ovpn
BOOTPROTO=static
и копируем содержимое конфига сервера (клиента) в файл ovpnoptions в той же папке. После этого туннелем можно рулить как обычным интерфейсом -поднимать-опускать командами ifup- ifdown, и они более не зависят от сервиса openvpn.

Оффлайн rabochyIT

  • Участник
  • *
  • Сообщений: 23
Re: OpenVPN маршрутизация
« Ответ #6 : 21.06.2012 15:10:16 »
Цитировать
поднимать-опускать командами ifup- ifdown

ценный совет реально работает:
если все настроено правильно
ifdown tun1 - останавливает соединение  tun1
ifup tun1 - запускает соединение tun1

Очень удобно в альтах использовать удостоверяющий центр. Работает отлично. По данному выше описанию я соединил 3 удаленных друг от друга с.-х. предприятия.

Важная заметка для альт дистрибутива по совету Asketa
Цитировать
и создать в папке /var/lib/openvpn/etc/openvpn/ccd файл с именем клиента (в Вашем случае это скорее всего а5)
и вписать в него iroute 192.168.5.0/24
Везьде советуют создать файл в каталоге /etc/openvpn/ccd, а для альтов актуален каталог /var/lib/openvpn/etc/openvpn/ccd иначе OpenVPN полноценно работать не будет.

Теперь у меня подсети 192.168.6.0/24 192.168.5.0/24 192.168.8.0/24 как одна большая локальная сеть.

Оффлайн rabochyIT

  • Участник
  • *
  • Сообщений: 23
Re: OpenVPN маршрутизация
« Ответ #7 : 20.12.2012 16:21:37 »
Возникла новая проблема. Переустановил Альт6Кентавр на котором находился OpenVPN сервер. На клиентах пересоздал ключи.
ядро 3.0.52 std-def
Клиенты не желают соединяться по TCP протоколу.
********************************************
со стороны клиента  nmap -sU -p 1194 xx.xx.xx.xx
Starting Nmap 5.21 ( http://nmap.org ) at 2012-12-20 16:04 VOLT
Nmap scan report for xx.xx.xx.xx
Host is up.
PORT     STATE         SERVICE
1194/udp open|filtered unknown


nmap -sT -p 1194 xx.xx.xx.xx

Starting Nmap 5.21 ( http://nmap.org ) at 2012-12-20 16:09 VOLT
Nmap scan report for xx.xx.xx.xx
Host is up (0.00022s latency).
PORT     STATE  SERVICE
1194/tcp closed unknown


Как открыть 1194/tcp Порт ?????
В альтераторе "Внешние сети" на внешнем интерфейсе включил режим шлюз и добавил порт TCP 1194 по которому и подключаюсь.


Оффлайн rabochyIT

  • Участник
  • *
  • Сообщений: 23
Re: OpenVPN маршрутизация
« Ответ #8 : 21.12.2012 11:18:21 »
Все разобрался, оказывается в альтераторе в настройках OpenVPN сервера необходимо было поставить галочку "бегать по TCP порту". Причем UDP 1194 порт закрывается. Все моя невнимательность.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 162
    • Домашняя страница
Re: OpenVPN маршрутизация
« Ответ #9 : 21.12.2012 15:59:56 »
Все разобрался, оказывается в альтераторе в настройках OpenVPN сервера необходимо было поставить галочку "бегать по TCP порту". Причем UDP 1194 порт закрывается. Все моя невнимательность.
Добавьте, пожалуйста, в тему первого сообщения [решено]
Андрей Черепанов (cas@)

Оффлайн rabochyIT

  • Участник
  • *
  • Сообщений: 23
Re: OpenVPN маршрутизация [РЕШЕНО]
« Ответ #10 : 27.12.2012 11:20:36 »
Заметка на будущее, лично я не знал: клиент пишет при подключении к OpenVPN server-у, что неверный сертификат. Оказалось, что причиной является разность в локальном времени (даты) клиента и сервера. В моем случае несколько дней. Изменил дату на клиенте тонель поднялся без проблем.