Объединение локальных сетей при помощи OpenVPN на VPS
Рассмотрим способ объединения двух локальных сетей (site to site) при помощи OpenVPN развернутого на VPS хостинг провайдера. Схема сети, следующая:

В качестве площадки для размещения серверной части OpenVPN можно использовать VPS/VDS с предоставляемым публичным IP–адресом. В нашем случае это будет хостинг-провайдер firstvds.ru. Виртуальный сервер с 1 Гб оперативной памяти, 20 Гб дискового пространства и выделенным публичным IP–адресом обойдется нам в 239 р./ месяц. Хостинг-провайдер позволяет выбрать предустановленный вариант ОС на виртуальном сервере. Будем использовать Ubuntu 22.04.

Для доступа к виртуальному серверу удобнее всего использовать протокол SSH и клиент удаленного подключения Putty, параметры подключения можно найти на вкладке инструкция в разделе виртуальных серверов хостинг провайдера.
Шаг 1. Подготовка виртуального сервера
После первого подключения синхронизируем списки и обновим пакеты до новых версий:
$ sudo apt update
$ sudo apt upgrade
Установим минимальный набор утилит, которые нам понадобятся:
$ sudo apt install nano mc net-tools
Далее создадим нового пользователя и дадим ему привилегии root, для этого необходимо выполнить следующие команды:
$ adduser username
$ adduser username sudo
username замените на имя вашего пользователя.
Отключим доступ по SSH от root пользователя:
$ sudo nano /etc/ssh/sshd_config
Закомментируем строку #PermitRootLogin yes и сохраним изменения.
Установим ufw (простой фаервол), выполнив следующую команду:
$ sudo apt-get install ufw
Также нам нужно открыть затребованные порты, такие как SSH port 22, 80, 443, 993 и так далее:
$ sudo ufw allow 22
$ sudo ufw allow 80
$ sudo ufw allow 443
$ sudo ufw allow 993
Для включения фаервола воспользуемся следующей командой:
$ sudo ufw enable
Состояние фаервола можно проверить, выполнив следующую команду:
$ sudo ufw status
Шаг 2. Установим OpenVPN при помощи скрипта openvpn-install.sh
Выполним команду wget:
$ wget https://git.io/vpn -O openvpn-install.sh
Запустим скрипт openvpn-install.sh для установки и настройки сервера OpenVPN в автоматическом режиме:
$ sudo bash openvpn-install.sh
Выполним простое конфигурирование выбрав необходимые параметры.
Протокол: TCP; Порт: 993, для того чтобы замаскироваться под Internet Message Access Protocol (IMAPS); ДНС сервер 1.1.1.1 или другой удобный для вас.
На последнем шаге указываем имя клиента (например, client1, client2, и т.д.). Нажимаем Enter, скрипт должен все успешно установить.
Для добавления нового клиента повторно выполните запуск скрипта и укажите Add a new client введя цифру 1.

Количество клиентов соответствует количеству локальных сетей и отдельных пользователей, которые необходимо объединить в одну виртуальную сеть.
Шаг 3. Конфигурирование файла server.conf
Далее необходимо выполнить ряд изменений в файле конфигурации OpenVPN сервера server.conf. Для этого его откроем в редакторе nano:
$ sudo nano /etc/openvpn/server/server.conf
Закомментируем строки начинающиеся на push и добавим следующие записи:
client-config-dir /etc/openvpn/server/ccd – укажем путь к настройка сетей клиентов;
route 192.168.0.0 255.255.255.0
route 192.168.43.0 255.255.255.0
Данными записями мы указываем серверу о наших локальных сетях 192.168.0.0/24 и 192.168.43.0/24. В вашем случае укажите все локальные сети, которые необходимо объединять.
client-to-client – разрешаем маршрутизацию между добавленными сетями.
push "route 192.168.0.0 255.255.255.0"
push "route 192.168.43.0 255.255.255.0"
Данными записями мы задаем настройки маршрутизации нашим клиентам. Сохраняем файл конфигурации (ctrl+o) и выходим (ctrl+x). Пример файла конфигурации:

Далее необходимо описать сетевую конфигурацию клиентов и создать соответствующие фалы в директории /etc/openvpn/server/ccd.
Данная директория не создается по умолчанию, создадим её при помощи следующих команд:
$ cd /etc/openvpn/server/
$ sudo mkdir ccd
Далее перейдем в эту директорию и создадим файлы наших клиентов, названия должны совпадать с именами клиентов:
$ cd /etc/openvpn/server/ccd
$ nano client1
Добавим в него следующую запись:
iroute 192.168.0.0 255.255.255.0
То есть client1 находится в сети 192.168.0.0/24. Для других клиентов выполним аналогичные записи. Главное, чтобы имя файлов совпадало с именами клиентов.
Перезапустим службы OpenVPN:
$ sudo systemctl restart openvpn
Также для взаимодействия со службой OpenVPN имеются следующие команды:
$ sudo systemctl stop openvpn – остановка службы;
$ sudo systemctl start openvpn – запуск службы.
Шаг 4. Выгрузка файлов конфигураций клиентов
Далее необходимо выгрузить с виртуального сервера сконфигурированные файлы клиентов (.ovpn). По умолчания файлы (.ovpn) создаются в директории root, их необходимо скопировать в директории /home/username. К данной директории можно подключиться сторонним SFTP клиентом. Для этого удобнее всего воспользоваться клиентом WinSCP. Подключимся к нашему серверу по протоколу SFTP, указав IP–адрес виртуального сервера и данные авторизации.

Установим OpenVPN клиенты на подключаемые windows машины и передадим им соответствующие конфигурационные файлы (.ovpn) и установим подключение.

После установки соединений в windows прописывается необходимая маршрутизация, для вывода в командной строке необходимо прописать команду route print. Пример вывода списков маршрутов с клиента 1:

При данной конфигурации устройства в разных сетях уже могут видеть друг друга по адресам виртуального туннеля.

Далее необходимо на каждой windows машине запустить службу, отвечающую за внутреннюю маршрутизацию, служба называется Маршрутизация и удаленный доступ. Это позволит использовать адресацию локальной сети. Для запуска этой службы нажмите клавиши Win+R на клавиатуре (или нажмите правой кнопкой мыши по кнопке «Пуск» и выберите пункт «Выполнить»), введите services.msc в окно «Выполнить» и нажмите Ok или Enter. Далее найдите службу Маршрутизация и удаленный доступ укажите тип запуска вручную, нажмите применить и затем нажмите кнопку Запустить.

После выполнения указанных действий наши windows машины могут быть доступны по своим локальным адресам.

На этом все, надеюсь материал оказался для Вас полезным.
В качестве основы для данного сценария подключения использовались следующие материалы:
1) https://blog.sedicomm.com/2018/02/06/kak-ustanovit-i-nastroit-openvpn-server-na-debian-9-za-5-minut/