LINUX.ORG.RU
решено ФорумAdmin

Не получается создать несколько туннелей OpenVPN


0

1

Привет! Проблема такая: туннель OpenVPN хорошо поднимается между двумя сетями, но при добавлении настроек для второго филиала на сервере не создается p-t-p-интерфейс, а отображается только так:

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.10.10.1  P-t-P:10.10.10.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:96 (96.0 B)  TX bytes:152 (152.0 B)
Конфиг сервера:
proto tcp-server
dev tun
port 1194
tls-server
ca /etc/openvpn/vserver/keys/ca.crt
cert /etc/openvpn/vserver/keys/gw.crt
key /etc/openvpn/vserver/keys/gw.key
dh /etc/openvpn/vserver/keys/dh1024.pem
script-security 3
client-config-dir /etc/openvpn/ccd
server 10.10.10.0 255.255.255.0
route 192.168.10.0 255.255.255.0
route 192.168.80.0 255.255.255.0
up /etc/openvpn/uproute.sh
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 5
log-append /var/log/openvpn.log

Далее в ccd в filial1 filial2 указаны настройки постоянного ip-адреса

ifconfig-push 10.10.10.2 10.10.10.1
push "route 192.168.1.0 255.255.255.0"
iroute 192.168.10.0 255.255.255.0

ifconfig-push 10.10.10.6 10.10.10.1
push "route 192.168.1.0 255.255.255.0"
iroute 192.168.80.0 255.255.255.0

Вопросы: как прально - повесить всех на один интерфейс tun0, либо создавать для каждого туннеля свой интерфейс? Получается, что не работает ни так, ни иначе. В логах по поводу 10.10.10.6 ничего не пишется...


Все и так «висят» на одном интерфейсе tun0 на сервере.

Я так и не понял, что именно не получается? Какая цель поднятия туннелей? Если нужно, чтобы несколько клиентов за NATами «видели» друг друга, то на сервере в конфиге надо добавить опцию «client-to-client».
Если же нужно на одном сервере поднять несколько VPN, то нужно создать ещё один *.conf и прописать в него другие сети/маски.

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

Нет, друг друг им видеть не надо, надо заходить на терминалку

Если же нужно на одном сервере поднять несколько VPN, то нужно создать ещё один *.conf и прописать в него другие сети/маски.

Т.е., грубо говоря, я создаю аналогичный конфиг, и у меня будет не tun1 а оба туннеля будут висеть на tun0, так? Просто в сети много мануалов, как настроить два узла в режиме клиент-сервер, а инфы по настройке нескольких туннелей не нашел.

mzv
() автор топика
Ответ на: комментарий от anonymous_sama

init 1 в другом конфиге init 2 ну и так далее

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

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

> Т.е., грубо говоря, я создаю аналогичный конфиг, и у меня будет не tun1 а оба туннеля будут висеть на tun0, так?

нет. будет именно отдельный сетевой интерфейс. То есть, tun1.

Повторюсь: при настройке на сервере OpenVPN и при подключении к нему клиентов все клиенты уже будут висеть на tun0. То есть создаётся по туннелю к каждому подключившемуся клиенту, нопри этом все эти туннели на сервере будут «видны» как один tun0 интерфейс.

P.S. Я так и не понял, какие именно задачи Вы решаете. По Вашим вопросам не понятно где каша: или в техзадании, или в голове (без обид). Если Вы озвучите задачу, то не исключено, что Вы выбрали неправильный инструмент для её решения, раз задаёте такие странные и непонятные вопросы.

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

Задача проста: филиалы должны напрямую обращаться к ресурсам мейн-офиса (терминал, файл-сервер). Желательно, но не обязательно, чтобы прямое обращение было взаимным, т.е. из мейн-офиса можно было «видеть» бренчи. Друг друга им видеть не надо. Сейчас настроено вышеуказанное с одним из филиалов. С другим возникли описанные в начале проблемы.

Повторюсь: при настройке на сервере OpenVPN и при подключении к нему клиентов все клиенты уже будут висеть на tun0. То есть создаётся по туннелю к каждому подключившемуся клиенту, нопри этом все эти туннели на сервере будут «видны» как один tun0 интерфейс.

Предположим, понятно. Реализовать-то это как?

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

Вот создал я два конфига, рестартанул OpenVPN - никаких подвижек.

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

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

> Предположим, понятно. Реализовать-то это как?

Создаёте сертификат одному клиенту, отсылаете ему. Создаёте сертификат второму клиенту, отсылаете ему. Оба клиента потом прописывают у себя в конфигах полученные сертификаты и с ними коннектятся на один и тот же сервак на один и тот же OpenVPN-порт, получают адреса от сервака (оба окажутся в одной подсети), при этом клиенты смогут «видеть» сервак и сервак сможет «видеть» каждого из клиентов; на серваке будет всего один «tun0» интерфейс.

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

Создаёте сертификат одному клиенту, отсылаете ему. Создаёте сертификат второму клиенту, отсылаете ему. Оба клиента потом прописывают у себя в конфигах полученные сертификаты и с ними коннектятся на один и тот же сервак на один и тот же OpenVPN-порт, получают адреса от сервака (оба окажутся в одной подсети), при этом клиенты смогут «видеть» сервак и сервак сможет «видеть» каждого из клиентов; на серваке будет всего один «tun0» интерфейс.

Это я понял и все это реализовано, за исключением того, что второй клиент не получает адрес при идентичной настройке. У первого клиента шлюз 10.10.10.1. Какой будет шлюз надо раздавать второму, такой же или другой?

mzv
() автор топика
Ответ на: комментарий от anonymous_sama

Т.е., по вашему мнению, дополнительный интерфейс все-таки нужен? У меня в конфиге стоит dev tun, в устройствах тоже есть /dev/net/tun. tun0 и tun1 не было. Создал tun1 и он один хрен не появляется при рестарте Опенвпн.

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

ifconfig-push 10.10.10.2 10.10.10.1 push «route 192.168.1.0 255.255.255.0» iroute 192.168.10.0 255.255.255.0

ifconfig-push 10.10.10.6 10.10.10.1 push «route 192.168.1.0 255.255.255.0» iroute 192.168.80.0 255.255.255.0

Клиенты должны получить 10.10.10.6 и 10.10.10.10, а не то что вы написали
10.10.10.2 это второй конец p-to-p сервера

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

>Т.е., по вашему мнению, дополнительный интерфейс все-таки нужен?
Он не нужен. Но если не работает с полпинка как надо и для удобства можно из создать. Я просто их тех групп людей которые крепят костыль и радуются, что работает, в принципе в большинстве случаев главное к сожалению результат. Делайте как считайте нужным я просто продолжил вашу же идею «либо создавать для каждого туннеля свой интерфейс»

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

вашу же идею

Не, это не идея, я просто не знаю как правильно. Один так один, хорошо. Но как реализовать данное - так и не услышал. Если у кого есть рабочая конфигурация на 2 и выше клиента или ссылочка, буду рад почитать. Сам пока что в инете не могу найти такую информацию.

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

Если у кого есть рабочая конфигурация на 2 и выше клиента или ссылочка, буду рад почитать.

$ echo $'status'| nc 127.0.0.1 7505 | grep '^172\.25' | wc -l
51

то есть, 51 клиент.

рабочий конфиг с этой же машинки:

port 1194
proto udp
dev tun
ca vpn1/ca.crt
cert vpn1/server.crt
key vpn1/server.key
dh vpn1/dh1024.pem
server 172.25.0.0 255.255.0.0
ifconfig-pool-persist vpn1/ipp.txt
client-config-dir vpn1/ccd2
client-to-client
;duplicate-cn
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status vpn1/openvpn2-status.log
log-append /var/log/openvpn-vpn1.log
verb 2
management localhost 7505


Всё работает, почему у Вас не работает - идей нету :(

И да: было бы неплохо увидеть логи (как на сервере. так и на клиенте) в момент подключения (когда адрес не выдаётся).

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

Спасибо всем за помощь, заработало! Моя ошибка, похоже все-таки неправильно настроил клиента, и openvpn писал при старте inactive. А на сервере никакой дополнительной настройки вообще не требовалось. Смутила меня то, что на сервере в ifconfig указано p-t-p 10.10.10.2 (только первый клиент),

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.10.10.1 P-t-P:10.10.10.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:2 errors:0 dropped:0 overruns:0 frame:0 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:96 (96.0 B) TX bytes:152 (152.0 B)

вот и зациклился на неправильной настройке сервера. Второму клиенту дал другой адрес 10.10.10.3 и указал его шлюзом в маршрут сети головного офиса (на стороне клиента) и заработало.

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

Во-первых, по поводу point-to-point: на каждую точку выделяется подсеть /30 т.е. маска 255.255.255.252. Поэтому сервер имея 10.10.10.1 не может позволить клиенту иметь 10.10.10.2, так как это адрес противоположной точки point-to-point туннеля у сервера. Только если вы не сделали как-то так

Example 1: A simple tunnel without security
  On may://на сервере
  $ openvpn --remote june.kg --dev tun1 --ifconfig 10.4.0.1 10.4.0.2 --verb 9 
  On june://на клиенте
  $ openvpn  --remote may.kg --dev tun1 --ifconfig 10.4.0.2 10.4.0.1 --verb 9

Во-вторых, УМВР: OpenVPN, несколько клиентов, никто никого не видит, но все видят сервер. И сервер получает адреса из 10.10.10.0/30 (10.10.10.1), первый клиент из 10.10.10.4/30 (10.10.10.6), второй 10.10.10.8/30 (10.10.10.10)... итд
tap не нужен, если обратное не установлено тех заданием (маршрутизация между сетями через тоннель)

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