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

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

У меня есть небольшой опыт настройки простого решения OpenVPN, при котором несколько клиентов подключаются к центральному серверу и общаются вместе в одной VPN.

Однако сейчас я собираюсь создать OpenVPN-инфраструктуру с нуля, и я сомневаюсь, что мой подход является разумным. Инфраструктура OpenVPN имеет следующие характеристики:

После некоторого чтения и размышлений я пришел к мысли, что всем этим требованиям можно удовлетворить:

Звучит ли это как разумный механизм для удовлетворения требований? Если смотреть на подход с учетом масштабируемости и скорости, следует ли мне настраивать такие вещи или мне следует провести некоторое исследование альтернатив (даже других технологий, кроме OpenVPN?)

Спасибо за ваш вклад заранее

Извините, у меня нет времени полностью обдумывать ваш ответ (хотя спасибо за столь хорошо сформулированное объяснение, что редко для формата SO, я признаю), но вот список различных идей, с которыми вы, возможно, еще не знакомы, но которые могут вам помочь идти вперед:

  • У вас может быть несколько экземпляров OpenVPN, работающих на одном сервере (на разных портах); это может обеспечить грубое разделение групп клиентов (и см. ниже Netfilter).
  • Использовать топологию subnet для подключения ваших клиентов и размещения их в разных частных подсетях; у вас может быть любое количество частных сетей, которыми владеет экземпляр сервера OpenVPN.
  • включить client-to-client параметр в конфигурации сервера, чтобы клиенты могли взаимодействовать друг с другом в контексте одного экземпляра сервера OpenVPN.
  • Использовать push "route <addr> <netmask>" рассказать клиентам, которые Другой сети, к которым они могут подключиться через свое соединение OpenVPN (то есть сети, отличные от их "родных" - тех, к которым они подключаются при подключении); обратите внимание, что вам может потребоваться соответствие iroute директивы в конфигурации OpenVPN.
  • Вы можете использовать клиентские фрагменты конфигурации через client-config-dir параметр (дублированный ccd); это позволяет передавать определенные директивы маршрута конкретным клиентам, чтобы разные клиенты могли при необходимости подключаться к разным наборам сетей.
  • Когда вы завершите настройку OpenVPN, вы можете уточнить ее с помощью правил Netfilter (iptables), поскольку весь трафик, обрабатываемый OpenVPN, по-прежнему проходит через соответствующие таблицы FORWARD chain, так что здесь вы можете контролировать, каким сетям, обслуживаемым OpenVPN, разрешено общаться друг с другом.
  • Также возможно, чтобы OpenVPN принимал одновременные подключения клиентов, представляющих сертификаты с одним и тем же общим именем (CN); это можно использовать в качестве последнего средства, чтобы одни и те же настройки применялись к разным клиентам (обычно через ccd упомянутый выше механизм). Подчеркну, что это крайняя мера, так как она исключает детальный отзыв доступа для отдельных клиентов.

Надеюсь это поможет!