Назад | Перейти на главную страницу

Как несколько клиентов сервера openvpn могут найти друг друга?

Я создаю сервер openvpn, который будет поддерживать несколько клиентов в частной подсети. Таким образом, в частной подсети подключающиеся клиенты получат IP-адреса, такие как 10.8.0.10, 10.8.0.11 и т. Д.

Одно из необходимых мне средств - это чтобы клиенты могли найти друг друга. Есть ли какой-либо простой и общепринятый способ для клиента увидеть список IP-адресов, назначенных всем клиентам?

Мне не нужны DNS-имена или что-то в этом роде.

В файле конфигурации сервера OpenVPN предварительным условием является следующая директива:

# Uncomment this directive to allow different
# clients to be able to "see" each other.
# By default, clients will only see the server.
# To force clients to only see the server, you
# will also need to appropriately firewall the
# server's TUN/TAP interface.
client-to-client

Чтобы облегчить клиентам поиск друг друга, я бы предложил динамический DNS как (почти) всегда существующее корпоративное решение. Чтобы представить список активных клиентов, вы могли бы:

  • найти способ распространить или сделать доступным openvpn-status.log клиентам?
  • распространять скрипты ping или аналогичные для клиентов, возможно, делать обратный поиск DNS для каждого живого хоста?
  • клиенты должны регистрироваться / отменять регистрацию в настраиваемой базе данных или файле при подключении и иметь какой-то механизм очистки. Эта альтернатива кажется полностью изобретением колеса, но, без сомнения, это был бы интересный способ провести час, который ничего не добавляет к миру ИТ в целом.

Вот исходная ссылка, поддерживающая функцию клиент-клиент OpenVPN 2.x:

https://openvpn.net/index.php/open-source/documentation/howto.html#scope

Раскомментируйте эту директиву, чтобы разные клиенты могли «видеть» друг друга. По умолчанию клиенты будут видеть только сервер. Чтобы заставить клиентов видеть только сервер, вам также необходимо соответствующим образом настроить брандмауэр интерфейса TUN / TAP сервера.

;client-to-client

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

Затем спросите себя, хотите ли вы разрешить сетевой трафик между подсетью client2 (192.168.4.0/24) и другими клиентами сервера OpenVPN. Если да, добавьте в файл конфигурации сервера следующее.

client-to-client
push "route 192.168.4.0 255.255.255.0"

Это заставит сервер OpenVPN объявить подсеть client2 другим подключающимся клиентам.