LINUX.ORG.RU

OpenVPN один сервер для нескольких клиентов (в терминологии клиент-сервер)

 


0

2

Можно ли в режиме:

Статических ключей
tun
subnet
P2P

Настроить сервер для нескольких одновременных клиентов?

По отдельности каждый клиент работает, туннель включается, виртуальные айпи пингуются, но один клиент при подключении выбивает предыдущего подключенного и наоборот, что я делаю не так?

Пока не хотелось бы TLS и т.п.

Но хотелось бы как то включить роутинг между клиентами, но без client-to-client, потому что он требует TLS

или P2P как бы намекает, что так не получится?

какие тогда варианты? tap/tun - влияет на возможность мульти? TLS+client-to-client - обязательно?

★★

Последнее исправление: sanyock (всего исправлений: 1)

По отдельности каждый клиент работает, туннель включается, виртуальные айпи пингуются, но один клиент при подключении выбивает предыдущего подключенного и наоборот, что я делаю не так?

Конфиг покажи, да?

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

серверный:

dev tun101
topology subnet

#mode server
#client-to-client

proto udp
lport XXX

auth SHA512
cipher XXX

ifconfig XXX.XXX.101.1 255.255.255.0

#user nobody
#chroot /download

tun-mtu 1500

keepalive 10 60
#mssfix 0

persist-tun
persist-key
persist-local-ip
persist-remote-ip
comp-lzo adaptive

secret XXX

#log /var/log/openvpn.log

#verb 4
#verb 9

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

судя по:
http://backreference.org/2010/05/02/controlling-client-to-client-connections-...

OpenVPN has a feature called client-to-client to be used on the server, that permits, as the name says, client-to-client connections. This allows connectivity between any pair of clients, but it is implemented internally to the OpenVPN server, and packets are not exposed to the operating system.
In some instances you might want to have a better control over which clients can talk to which clients, and using client-to-client does not allow for that (at least currently).

How to solve the problem? The answer is: do NOT use client-to-client in the server's configuration file! That may sound strange at first, but it does in fact make sense, at least in routed mode. If client-to-client is not enabled, the server becomes a sort of «router on a stick» (even if the clients are on the same subnet!), meaning that packets are decapsulated, come «out» of the server's tun interface and are then (if needed) routed back into the same tun interface (but encapsulated to be sent to the right destination).

client-to-client вовсе не обязятелен для маршрутизации между клиентами, влияет только на то, кто будет маршрутизировать OpenVPN или ось

sanyock ★★
() автор топика
Последнее исправление: sanyock (всего исправлений: 1)
Ответ на: комментарий от anonymous

судя по:
http://manpages.ubuntu.com/manpages/zesty/en/man8/openvpn.8.html

--duplicate-cn
Allow multiple clients with the same common name to concurrently
connect. In the absence of this option, OpenVPN will disconnect
a client instance upon connection of a new client having the
same common name.

используется в случае TLS сертификатов

в моем случае TLS сертификаты НЕ используются, а вместо них используются статические ключи, одинаковые на клиенте и сервере (один одинаковый файл типа static.key) режим secret

опции: ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh4096.pem

НЕ используются

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

Можно ли в режиме:

Статических ключей

Настроить сервер для нескольких одновременных клиентов?

Нет.

Static Key disadvantages

Limited scalability — one client, one server

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

Еще столкнулся с такой странностью и пока не могу понять как решить

А режиме static key (secret) достаточно было указать
ifconfig на сервере и клиенте и этого было достаточно, чтобы пошли пинги между виртуальными IP клиента и сервера OpenVPN

А в режиме TLS теперь необходимо:

на сервере указать:
server X.X.X.0 255.255.255.0

на клиенте указать:
client

Понятно при этом ifconfig игнорируется, в доке читал как работают опции server и client

Но не могу врубиться почему не работает через ifconfig

Если убрать хотя бы одну опцию server (на сервере) или client(на клиенте) то связь между внутренними IP пропадает, даже между клиентом и сервером VPN

Раньше то достаточно было ifconfig.

Как теперь статически задать виртуальные адреса каждому хосту?
Гуглится что-то про привязку в отдельном файле и привязку через поля сертификатов хостов. Неужели нельзя по простому как раньше через ifconfig?

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

И еще такой вопрос, как научить VirtualBox bridged interface на одной машине пинговать tun интерфейс на другой машие и/или наоборот?

Они в одной IP сети, они реализованы на ethernet интерфейсах в одной ethernet сети (без маршрутизации), в таблицах arp их IP присутствуют на обоих хостах, файрволы выключены везде

Пинга нет ...

Оба интерфейса получается, виртуальные,
может, в этом проблема?

Что-то было про широковещание в контексте tun vs tap, но если в arp таблицах адреса есть, что им еще надо?

С хоста гипервизора на адрес tun пинг идет нормально причем они в разных сетях, т.е. через шлюз, который на том же хосте, где и tun, а с bridged interface виртуалки пинг на адрес tun не идет ...

sanyock ★★
() автор топика
Последнее исправление: sanyock (всего исправлений: 3)
Ответ на: комментарий от sanyock

попробовал перевести bridged interface виртуалки в режим promiscuous

ping router_tun_host вместо безмолвного молчания стал выдавать сначала:
general failure

потом:
request timeout

снаружи из гипервизора с физического интерфейса router_tun_host прекрасно пингуется

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

Если клиентов не много, то можно каждому свой сервер.

Создаем каждому клиенту свой конфиг, такой... .

Каждому выделяем свою пару адресов (в ifconfig) и порт, в каждый конфиг и клиентский и серверный добавляем параметр port. Сколько конфигов положим в /etc/openvpn, - столько интерфейсов и создадим.

Клиент от сервера оличается лишь наличием параметра remote, ну и адреса в ifconfig наоборот.

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

а как в режиме MULTI?

ifconfig вроде нормально адреса задает, но почему то пинги не идут даже по виртуальным айпи,

ПАЧИМУ ?!?

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

Мульти-клиент для статических ключей нельзя, писали-же. Он клиентов различает по сертификатам, вернее по «Common Name» в сертификате.

А в ifconfig'ах точно адреса не пересекаются? Типа 10.0.8.1-10.0.8.2 - первому 10.0.8.5-10.0.8.6 - второму, 10.0.8.9-10.0.8.10 - третьему, и так далее.

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

так я настроил уже с сертификатами

subnet

10.0.8.1-10.0.8.2
10.0.8.1-10.0.8.3
10.0.8.1-10.0.8.4

когда само раздает - работает
когда я пытаюсь через ifconfig - фик!
ключи уже не статические, статически пытаюсь только адреса назначать - не получается

наверно, придется через файл привязывать к полям сертов
http://michlstechblog.info/blog/openvpn-set-a-static-ip-address-for-a-client/

т.е. MULTI обязательно сам хочет назначать адреса клиентов?

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

когда я пытаюсь через ifconfig - фик!
статически пытаюсь только адреса назначать - не получается

Это делается через ccd, здесь..., раздел «Configuring client-specific rules and access policies»

ifconfig-push и НЕ 10.0.8.1, который у тебя везде один, там таблица для выбора адресов. Котечно надо openvpn заточить для работы с ccd.

ifconfig-push 10.0.8.2 10.0.8.1 (клиенту адрес 10.0.8.2)

ifconfig-push 10.0.8.6 10.0.8.5 (клиенту адрес 10.0.8.6)

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