Несколько openvpn серверов на windows

Обновлено: 04.07.2024

OpenVPN это виртуальная частная сеть, использующая TLS/SSL. Это означает, что OpenVPN использует сертификаты для шифрования трафика между сервером и клиентами. Для выпуска доверенных сертификатов (trusted certificates) нам потребуется создать наш собственный центр сертификации.

Создайте пользователя с именем, например, openvpn-ca и перейдите в его домашний каталог:

Для начала скопируем шаблонную директорию easy-rsa в нашу домашнюю директорию с помощью команды make-cadir:

Шаг 3. Настройка переменных центра сертификации

Для настройки переменных нашего центра сертификации нам необходимо отредактировать файл vars. Откройте этот файл в вашем текстовом редакторе:

Внутри файла вы найдёте переменные, которые можно отредактировать, и которые задают параметры сертификатов при их создании. Нам нужно изменить всего несколько переменных.

Пока мы в этом файле, отредактируем значение KEY_NAME чуть ниже, которое заполняет поле субъекта сертификатов. Для простоты зададим ему название vpnsrv2 :

Сохраните и закройте файл.

Шаг 4. Создание центра сертификации

Теперь мы можем использовать заданные нами переменные и утилиты easy-rsa для создания центра сертификации.

Убедитесь, что вы находитесь в директории центра сертификации и используйте команду source к файлу vars . В моем случае также потребовалось добавить симлинк к файлу openssl-1.0.0.cnf :

Вы должны увидеть следующий вывод:

Убедимся, что мы работаем в "чистой среде" выполнив следующую команду:

Теперь мы можем создать наш корневой центр сертификации командой:

Эта команда запустит процесс создания ключа и сертификата корневого центра сертификации. Поскольку мы задали все переменные в файле vars, все необходимые значения будут введены автоматически. Нажимайте ENTER для подтверждения выбора.

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

Шаг 5. Создание сертификата, ключа и файлов шифрования для сервера

Далее создадим сертификат, пару ключей и некоторые дополнительные файлы, используемые для осуществления шифрования, для нашего сервера.

Начнём с создания сертификата OpenVPN и ключей для сервера. Это можно сделать следующей командой:

Внимание: Если ранее вы выбрали имя, отличное от server, вам придётся немного изменить некоторые инструкции. Например, при копировании созданных файлов в директорию /etc/openvpn вам придётся заменить имена на заданные вами. Вам также придётся изменить файл /etc/openvpn/server.conf для того, чтобы он указывал на корректные .crt и .key файлы.

Вывод опять будет содержать значения по умолчанию, переданные этой команде ( server ), а также значения из файла vars .

Согласитесь со всеми значениями по умолчанию, нажимая ENTER. Не задавайте challenge password. В конце процесса два раза введите y для подписи и подтверждения создания сертификата:

Далее создадим оставшиеся файлы. Мы можем сгенерировать сильные ключи протокола Диффи-Хеллмана, используемые при обмене ключами, командой:

Для завершения этой команды может потребоваться несколько минут.

Далее мы можем сгенерировать подпись HMAC для усиления способности сервера проверять целостность TSL:

Шаг 6. Создание сертификата и пары ключей для клиента

Далее мы можем сгенерировать сертификат и пару ключей для клиента. Вообще это можно сделать и на клиентской машине и затем подписать полученный ключ центром сертификации сервера, но в этой статье для простоты мы сгенерируем подписанный ключ на сервере.

В этой статье мы создадим ключ и сертификат только для одного клиента. Если у вас несколько клиентов, вы можете повторять этот процесс сколько угодно раз. Просто каждый раз передавайте уникальное значение скрипту.

Поскольку мы можем вернуться к этому шагу позже, мы повторим команду source для файла vars . Мы будем использовать параметр clientsrv2 для создания первого сертификата и ключа.

Для создания файлов без пароля для облегчения автоматических соединений используйте команду build-key :

В ходе процесса создания файлов все значения по умолчанию будут введены, вы можете нажимать ENTER. Не задавайте challenge password и введите y на запросы о подписи и подтверждении создания сертификата.

Шаг 7. Настройка сервиса OpenVPN

Далее настроим сервис OpenVPN с использованием созданных ранее файлов.

Копирование файлов в директорию OpenVPN Нам необходимо скопировать нужные нам файлы в директорию /etc/openvpn.

Сначала скопируем созданные нами файлы. Они находятся в директории

/openvpn-ca/keys , в которой они и были созданы. Нам необходимо скопировать сертификат и ключ центра сертификации, сертификат и ключ сервера, подпись HMAC и файл Diffie-Hellman:

Далее нам необходимо скопировать и распаковать файл-пример конфигурации OpenVPN в конфигурационную директорию, мы будем использовать этот файл в качестве базы для наших настроек:

Настройка конфигурации OpenVPN Теперь, когда наши файлы находятся на своём месте, займёмся настройкой конфигурационного файла сервера:

Адрес сети VPN сервера

Найдём секцию HMAC поиском директивы tls-auth . Удалите ";" для того, чтобы раскомментировать строку с tls-auth . Далее добавьте параметр key-direction и установите его значение в "0":

Далее найдём секцию шифрования, нас интересуют закомментированные строки cipher . Удалите ";" для раскомментирования строки AES-256-CBC :

Под этой строкой добавьте строку auth и выберите алгоритм HMAC. Хорошим выбором будет SHA512 :

Наконец, найдите настройки user и group и удалите ";" для раскомментирования этих строк:

Необходимо закомментировать следующие директивы. Найдите секцию redirect-gateway и добавьте ";" в начало строки:

Чуть ниже находится секция dhcp-option .

(Опционально) Настройка порта и протокола По умолчанию OpenVPN использует порт 1194 и протокол UDP для соединения с клиентами. Если вам необходимо изменить порт из-за каких-либо ограничений для ваших клиентов, вы можете сделать это изменив настройку port .

(Опционально) Использование кастомного имени сертификата и ключа Если во время использования команды ./build-key-server чуть выше вы указали параметр, отличный от vpnsrv2 , измените настройки cert и key , чтобы они указывали на правильные файлы .crt и .key . Если вы использовали vpnsrv2 , эти настройки должны выглядеть таким образом:

Сохраните и закройте файл.

Шаг 8. Настройка сетевой конфигурации сервера

Далее нам необходимо настроить сетевую конфигурацию сервера, чтобы OpenVPN мог корректно перенаправлять трафик.

Настройка перенаправления IP Сначала разрешим серверу перенаправлять трафик. Это ключевая функциональность нашего VPN сервера.

Настроим это в файле /etc/sysctl.conf :

Сохраните и закройте файл.

Для применения настроек к текущей сессии наберите команду:

Настройка правил UFW для сокрытия соединений клиентов Вам нужно установить файрвол UFW. Нам потребуется файрвол для манипулирования с входящим на сервер трафиком. Мы должны изменить файл настроек для сокрытия соединений (masquerading).

Это файл содержит настройки UFW, которое применяются перед применением правил UFW. Добавьте в начало файла выделенные красным строки. Это настроит правила, применяемые по умолчанию, к цепочке POSTROUTING в таблице nat и будет скрывать весь трафик от VPN:

Сохраните и закройте файл.

Теперь мы должны сообщить UFW, что ему по умолчанию необходимо разрешать перенаправленные пакеты. Для этого откройте файл /etc/default/ufw :

Найдите в файле директиву DEFAULT_FORWARD_POLICY . Мы изменим значение с DROP на ACCEPT :

Сохраните и закройте файл.

Открытие порта OpenVPN и применение изменений Далее настроим сам файрвол для разрешения трафика в OpenVPN.

Если вы не меняли порт и протокол в файле /etc/openvpn/server.conf , вам необходимо разрешить трафик UDP для порта 1194. Если вы изменили эти настройки, введите указанные вами значения. В моем случае это TCP порт 1194

Также добавьте ваш SSH порт

Теперь деактивируем и активируем UFW для применения внесённых изменений:

Теперь наш сервер сконфигурирован для обработки трафика OpenVPN.

Шаг 9. Включение сервиса OpenVPN

Мы готовы включит сервис OpenVPN на нашем сервере. Мы можем сделать это с помощью systemd.

Нам необходимо запустить сервер OpenVPN указав имя нашего файла конфигурации в качестве переменной после имени файла systemd. Файл конфигурации для нашего сервера называется /etc/openvpn/server.conf , поэтому мы добавим @server в конец имени файла при его вызове:

Убедимся, что сервис успешно запущен командой:

Если всё в порядке, настроем сервис на автоматическое включение при загрузке сервера:

Шаг 10. Создание инфраструктуры настройки клиентов

Далее настроим систему для простого создания файлов конфигурации для клиентов.

Создание структуры директорий конфигурации клиентов В домашней директории создайте структуру директорий для хранения файлов:

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

Создание базовой конфигурации Далее скопируем конфигурацию-пример в нашу директорию для использования в качестве нашей базовой конфигурации:

Откройте этот файл в вашем текстовом редакторе:

Сделаем несколько изменений в этом файле.

Сначала найдите директиву remote . Эта директива сообщает клиенту адрес нашего сервера OpenVPN. Это должен быть публичный IP адрес вашего сервера OpenVPN. Если вы изменили порт, который слушает сервер OpenVPN, измените порт по умолчанию 1194 на ваше значение:

Убедитесь, что протокол совпадает с настройками сервера:

Далее раскомментируйте директивы user и group удаляя ";":

Найдите директивы ca , cert и key . Закомментируйте эти директивы, так как мы будем добавлять сертификаты и ключи в самом файле:

Добавьте настройки cipher и auth согласно заданным в файле /etc/openvpn/server.conf :

Далее добавьте директиву key-direction в любое место в файле. Она должна иметь значение "1" для корректной работы сервера:

Создание скрипта генерации файлов конфигурации Теперь создадим простой скрипт для генерации файлов конфигурации с релевантными сертификатами, ключами и файлами шифрования. Он будет помещать сгенерированные файла конфигурации в директорию

Создайте и откройте файл make_config.sh внутри директории

Вставьте следующие текст в этот файл:

Сохраните и закройте файл.

Сделайте его исполняемым файлом командой:

Шаг 11. Генерация конфигураций клиентов

Теперь мы можем легко сгенерировать файлы конфигурации клиентов.

Если вы следовали всем шагам этой статьи, вы создали сертификат clientsrv2.crt и ключ клиента clientsrv2.key командой ./build-key clientsrv2 на шаге 6. Вы можете сгенерировать конфигурацию для этих файлов перейдя в директорию

/client-configs и используя только что созданный нами скрипт:

Если всё прошло успешно, мы должны получить файл clientsrv2.ovpn в директории

Доставка конфигураций на первый сервер Теперь мы должны переместить файл конфигурации первый сервер SRV1.

На первом сервере делаем все идентично, кроме следующих пунктов:

Интерфейс eth0 меняем на tun1 и адрес 10.8.1.0/24 на 10.8.0.0/24

Сохраните и закройте файл.

Перенаправление всего трафика через VPN сервер

Адрес сети VPN сервера

Протокол ставим udp4

Далее раскомментируйте следующие строки. Секция redirect-gateway :

и секция dhcp-option

также эту директиву

Прописываем правила маршрутизации на первом сервере:

Создадим скрипт /etc/openvpn/upstream-route.sh содержащий следующие команды:

Далее добавим их в файл конфигурации клиента который подключается ко второму серверу.

Также в этом файле необходимо указать чтобы OpenVPN клиент всегда занимал интерфейс tun1 :

Скопируем clientsrv2.ovpn в корневую папку OpenVPN и переиминуем его в client.conf

Настраиваем автозауск

Точно так же создаем инфраструктуру настройки клиентов. Шаг 10 И сгенерированный файл переносим на клиентскую машину.

На момент написания статьи доступная версия 2.3.2. Качаем отсюда Windows installer 32-х или 64-х битную версию под разрядность вашей операционной системы.

Установка.

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

Создание сертификатов и ключей.

Там где написано server не трогаем. Сохранили.
Теперь открываем openssl-1.0.0.cnf и ищем строчку default_days 365, ставим 3650. Это продлит жизнь наших сертификатов на 10 лет. Сохраняем. Далее открываем командную строку в пуск-стандартные-командная строка (на Windows Vista/7/8 от имени администратора), пишем последовательно:

cd C:\OpenVPN\easy-rsa
vars
clean-all

В ответ должно написать два раза «Скопировано файлов: 1». Значит, все окей. В этом же окне набираем:
build-dh
Создаст ключ Диффи-Хельмана.
build-ca
Создаст основной сертификат.
Будут заданы вопросы, просто нажимаем Enter пока не увидите путь C:\Program files\OpenVPN\easy-rsa. Далее набираем:
build-key-server server
На вопросы также жмем Enter, только не торопитесь! В конце будут два вопроса: «Sign the certificate?» и «1 out of 1 certificate requests certified, commit?», на оба вопроса отвечаем Y. Теперь создадим сертификат клиента:
build-key client
Тут нужно быть вниметельней, при вопросе Common Name (eg, your name or your server's hostname) нужно ввести client. В конце также два раза Y. Для каждого клиента нужно создавать новый сертификат, только с другим именем, например, build-key client1 и также указывать его в common name. Если все сделали правильно, можете выдохнуть! Самое сложное позади. В папке C:\Program Files\OpenVPN\easy-rsa\keys забираем: ca.crt, dh1024.pem, server.crt, server.key и кладем их в C:\Program Files\OpenVPN\config.

Создаем конфиги.
Дорабатываем конфиг или каждому свое.

Теперь я расскажу как раздавать интернет и другие мелочи связанные с настройкой. Начнем с мелочей. Все манипуляции будем проводить с конфигом сервера.
Если хотите, чтобы клиенты «видели» друг друга т.е. могли обмениваться информацией, тогда в конфиг впишите
client-to-client.
Если нужно, чтобы клиентам выдавались статические адреса, тогда в папке config создайте файл ip.txt и впишите в конфиг
ifconfig-pool-persist ip.txt
Неохота создавать каждому сертификаты? Тогда пишем duplicate-cn, но учтите, с этой опцией не работает ifconfig-pool-persist.
Теперь о конфиге клиента. Можно не передавать файлы сертификатов, а вписать сразу в конфиг, только делать это лучше не с блокнота, а с AkelPad'а или Notepad++ например. Открываем ca.crt и выделяем от -----BEGIN CERTIFICATE----- до -----END CERTIFICATE-----. В конфиге будет выглядеть так:


-----BEGIN CERTIFICATE-----
сертификат
-----END CERTIFICATE-----


-----BEGIN CERTIFICATE-----
сертификат
-----END CERTIFICATE-----


-----BEGIN PRIVATE KEY-----
ключ
-----END PRIVATE KEY-----

Настройка двух и более OpenVPN-серверов на одном сервере

Продолжая рассказ о возможностях OpenVPN рассмотрим ситуацию, когда нам нужно иметь на одном сервере несколько разных серверов OpenVPN с различными настройками. Чаще всего такая необходимость возникает на серверах, предназначенных для доступа в интернет, когда имеются клиенты, требующие особых настроек. В корпоративной среде такая возможность позволит с помощью одного физического сервера обеспечить связь для различных подразделений, которые не должны напрямую взаимодействовать друг с другом. Как это сделать - читайте в нашей статье.

Начнем с постановки задачи. В прошлой статье мы рассказали о настройке OpenVPN сервера в Oracle Cloud для доступа в интернет. Сервер работает, клиенты подключаются, но возникла необходимость подключения к нему роутеров Mikrotik, у которых, как известно, особые требования к настройкам OpenVPN. Как быть? Перенастроить сервер для совместимости с Mikrotik в ущерб остальным клиентам? Или поднять второй экземпляр сервера со своими настройками? Естественно, второй способ выглядит более предпочтительно.

Напомним, что все настройки мы производим на сервере с Ubuntu 18.04 в облаке от Oracle, настройка которого описана в статье по ссылке выше, рекомендуем ознакомиться с ней перед прочтением данного руководства. Однако все описанные ниже действия, с соответствующими поправками, применимы к любому Linux-дистрибутиву.

Настройка второго экземпляра сервера

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

После чего создадим новый серверный сертификат:

Где server-tcp имя нашего экземпляра сервера. Мы советуем давать осмысленные имена, чтобы вам потом было понятно, что делает тот или иной экземпляр.

Скопируем ключ и сертификат в папку с ключами OpenVPN:

Затем скопируем шаблон конфигурации и назовем его server-tcp.conf:

После чего откроем файл и приступим к его редактированию. Какие важные особенности нам нужно учесть? RouterOS работает с OpenVPN только по протоколу TCP и не использует сжатие, также есть и некоторые иные особенности, которых мы коснемся позже. Все опции указаны в порядке их следования в файле, если опции нет - ее нужно добавить.

Для того, чтобы несколько серверов OpenVPN могли работать на одном хосте они должны использовать разные порты. Но так как первый экземпляр работает по протоколу UDP, то для второго экземпляра мы также можем использовать порт 1194, но только с протоколом TCP.

Укажем топологию сети:

И пути к ключам и сертификатам:

Диапазон адресов внутри VPN-сети также должен отличаться от остальных экземпляров, поэтому укажем:

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

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

Передадим собственные DNS:

Параметры проверки активности:

Обязательно выключим дополнительную TLS-аутентификацию:

И укажем параметры шифра, выключив его согласование, RouterOS поддерживает только AES128/192/256 и Blowfish 128:

Обязательно отключаем все опции сжатия:

Убеждаемся в наличии опций понижения прав:

И за сохранение доступа к ключам и адаптерам:

Укажем свой комплект файлов лога:

и его подробность:

При использовании протокола TCP обязательно закомментируем опцию:

А также добавим:

Сохраним файл конфигурации.

Чтобы обеспечить автоматический запуск всех серверных конфигураций OpenVPN откроем в /etc/default/openvpn и раскомментируем в нем строку:

Затем перечитаем конфигурацию юнитов systemd:

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

Настройка брандмауэра и маршрутизации

Очевидно, что нам нужно разрешить входящий трафик на порт OpenVPN и транзитный трафик для tun-адаптеров, также потребуется отдельное правило для маскарадинга. В итоге ваш файл /etc/nat должен будет выглядеть следующим образом:

На что следует обратить внимание? Для каждого сервера нужно разрешающее правило в цепочке INPUT, в нашем случае в секции Разрешаем подключения к OpenVPN добавлено два правила для входящих UDP 1194 и TCP 1194. Аналогично следует создать для каждой VPN-сети свое правило маскарадинга в секции Включаем маскарадинг для локальной сети.

В правилах цепочки FORWARD мы заменили tun0 на tun+, что теперь распространяет действие правил на все туннельные интерфейсы.

Если вы используете Oracle Cloud, то не забудьте создать разрешающее правило для входящих TCP 1194 в настройках вашей виртуальной сети:

OpenVPN-2servers-001.jpg

Теперь можно перезапустить службу OpenVPN и убедиться, что поднялись два туннельных интерфейса:

OpenVPN-2servers-002.jpg

Настройка клиентов OpenVPN

Если вы будете настраивать в качестве клиента Mikrotik, то вам потребуется только ключевая пара клиента и, опционально, сертификат CA, для проверки подлинности сервера. Для создания ключа клиента перейдите в директорию центра сертификации и загрузите переменные:

Затем выпустите сертификат клиента:

Полученные файлы и сертификат CA скопируем в домашнюю директорию:

И сменим их владельца на вашего основного пользователя, чтобы он мог спокойно скопировать их через FTP или SFTP (по умолчанию владелец файлов root). В нашем случае это пользователь ubuntu.

Если же будет подключаться иной клиент, то ему потребуется клиентский файл конфигурации, можете использовать как образец конфигурацию клиента созданную нами в предыдущей статье. В него потребуется внести следующие изменения: изменить протокол на TCP

и выключить сжатие:

Теперь что касается производительности. OpenVPN через TCP имеет гораздо более высокие накладные расходы, особенно на плохих каналах. На хороших разница обычно невелика, и вы скорее упретесь в иные ограничения. Мы выполнили два замера для нашего сервера в Oracle Cloud, первый для UDP:

OpenVPN-2servers-003.jpg

Второй для TCP:

OpenVPN-2servers-004.jpg

Как видим, в нашем случае разница абсолютно незаметна и можно не особенно переживать за возможные потери пропускной способности. Но не следует забывать, что при тестировании использовались хорошие широкополосные каналы, в иных ситуациях, например, с мобильными клиентами, результаты могут существенно отличаться.

Когда используешь openvpn клиент под windows существует ограничение на подключение только к одному серверу. Это связано с тем, что при установке openvpn создается только 1 tap адаптер, который обслуживает только одно vpn соединение.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .

Если при активном соединении попробовать подключиться к еще одному серверу, то получаешь ошибку:

суть которой сводится к тому, что сетевой интерфейс уже занят. Необходимо разорвать существующее соединение и только потом пробовать установить другое.

Как оказалось, обойти данное ограничение очень просто. После установки клиента openvpn в windows создается папка:

добавление tap адаптера openvpn

2 tap адаптера openvpn

Теперь нужно в папке

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

несколько openvpn подключений

Вот так просто решается задача создания нескольких активных openvpn подключений в windows.

Помогла статья? Подписывайся на telegram канал автора

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

Рекомендую полезные материалы по схожей тематике:

Онлайн курс "DevOps практики и инструменты"

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Проверьте себя на вступительном тесте и смотрите программу детальнее по .
  • Подробная статья по настройке openvpn сервера на CentOS 7.
  • Как настроить web интерфейс для openvpn под Freebsd.

Автор Zerox

40 комментариев

Ну с подклчениями оно и понятно, а вот можно ли одновременно 2 службы опенвпн поднять на разных портах? udp и tcp

В Linux без проблем. Я постоянно это делаю. В Windows не знаю, не пробовал.

Так ( "c:\Program Files\OpenVPN\bin\tapctl.exe" create ) можно добавить адаптер в версии OpenVPN 2.5.3

Ну лично в моем случае не получилось найти волшебный батник которые решает проблему добавления доп. адаптера.
На сайте нашел инструкцию bit.ly/3bA6EI3

> tapinstall.exe install
Device node created. Install is complete when drivers are installed.
Updating drivers for from C:\Program Files\TAP-Windows\driver\OemVista.inf.
Drivers installed successfully.

refers to the driver identifier which is tap0901 for OpenVPN 2.2+, but may be different in older/newer OpenVPN versions.
is typically OemWin2k.inf (old tap-drivers) or OemVista.inf (newer tap-drivers). You need to specify the full path to this file, e.g.C:\Program Files\TAP-Windows\driver\OemVista.inf.

By installing multiple times, you will create additional TAP-Windows adapter instances, which can be used for multiple concurrent VPN tunnels. It is also possible to install using Control Panel -> Add New Hardware, and it is possible to uninstall using Control Panel -> System -> Hardware -> Device Manager.

Окей. Круто. Драйвера там были в папке, поэтому для меня команда вышла вот такая
tapinstall.exe install ..\driver\OemVista.inf tap0901

и вывод который говорил что все оке1
Device node created. Install is complete when drivers are installed.
Updating drivers for tap0901 from C:\Program Files\TAP-Windows\driver\OemVista.inf.
Drivers installed successfully.

Здравствуйте, уважаемый Zerox !

Представляете, то о чём мы когда-то говорили, я имею в виду цепочку из нескольких включённых файлов конфигурации, это была самая настоящая цепочка. Я это понял только потом. И вот сегодня мне потребовалось сделать такую цепочку. Я взял Вашу Инструкцию и .
И увидел, что OpenVPN уже не версия 2.4, а версия 2.5. И в этой версии этот замечательный способ не работает.
А как включить несколько файлов конфигурации в версии 2.5 я не знаю. Если Вы, уважаемый Zerox, что-нибудь об этом знаете, то дайте, пожалуйста,
знать нам, пользователям.

Я тоже не знаю. Не пользуюсь этим.

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

Для pptp такого ограничения нет. Я могу подключиться по двум pptp соединениям одновременно. Та возможны проблемы с маршрутами, если они пересекаются.

Здравствуйте. Новый openvpn устанавливает в систему новое устройство - OpenVPN Wintun. Это устройство, как заявлено, способно увеличить скорость передачи шифрованных данных. Но, нигде не написано, как сделать так, чтобы openvpn использовало именно его, а не OpenVPN TUP, как сейчас. Не могли бы разместить на своем сайте информацию, если вы конечно разбираетесь в этом вопросе.

Пока еще не разбирался с этим вопросом, но надо будет заняться.

Здравствуйте. Я включил его. Скорость увеличилась в 2 раза. То есть, у меня 100 мегабит, openvpn максимум выжимал 30 мегабит. Сейчас с этим wintun поднимается выше 60 мегабит. К сожалению, я не могу написать здесь решение. Причина - отказ в помощи с вашей стороны. Все мои вопросы оставались без ответа. Прощайте.

А я, когда писал материалы сайта, в том числе и эту статью, которую вы комментируете и свободно читаете, ничего не требовал от читателей. Это так, информация к размышлению.

Здравствуйте. А как объединить несколько VPN серверов в один? То есть, клиент на ПК 1, но он подключается к нескольким серверам одновременно? Аналогичным способом пытался, но второй не подключается. Что-то с tap проблемы.

Так в этом и смысл добавления нескольких сетевых интерфейсов для openvpn. Вы должны получить возможность подключаться к нескольким vpn серверам одновременно. Если этого не происходит, разбирайтесь с ошибкой.

Попробую разобраться. Но сейчас проблема - отсутствует папка Tap-Windows. Была, но после установки новой версии openvpn исчезла. Есть другой способ добавления еще одного tap?

В общем, новая версия openvpn не создает папку Tap-Windows. Пришлось поставить старую версию. Но в любом случае два одновременно подключения не удалось реализовать. Вот такая ошибка -

А вот такой вопрос возник. Допустим есть у меня 2 tap-адаптера и два конфига. Как указать что вот этот конфиг к этому адаптеру, а вон тот конфиг - вон к тому? Потому как со стороны операционки и дальнейших сервисов настройки этих адаптеров сильно различаются

Разобрался , накосячил в сертификатах клиентов, но ONO выдавло одинаковый адрес! Вот в чем прикол

Так и я уверен, что не должен. Тем не менее выдает и ничто не ругается. Зщ крайней мере пингуется с обеих и шлюз и сервер

Извините, но вопрос такой: клиенты получают один адрес? то есть сервер Openvpn выдает одинаковый адрес , как минимум 2 тестовым клиентам тоже openvpn под Windows. Пробовла менять диапазон в тоннеле, из другого диапазона все равно выдает идентичный. Как с этим бороться ?

Не понимаю вопроса. Разным пользователям сервер не должен выдавать один и тот же адрес. Я даже не знаю, как это принудительно сделать. Если только самому в конфигах пользователей указать одинаковые адреса. Но очевидно, что в этом случае работать нормально не будут эти клиенты.

а как сделать что бы любой пользователь рдп мог поднять свое личное соеденение? заблокировано все кроме одного впн сервера. нужно что бы каждый пользователь rdp мог прокинуть свой rdp, TAPинтерфейсов на всех хватает. на данный момент елси один пробрасывает то все работают через него, если кто то поднимает второй впн, то все идут через второй, но и тот кто поднимал первый, тоже весь трафик идет через второй.
очень нужно разделить пользователям vpn

Не уверен, что это возможно технически. Я не слышал, чтобы можно было дефолтный маршрут системы каждому пользователю ставить свой.

Поэтому и написал, а то всю голову сломал, где только не искал, а оказалось на поверхности

Подскажите пожалуйста как решить задачку - две OpenVPN client службы на Windows?
Сейчас на виндовом серваке отлично автоматически поднимается один туннель, но возникла необходимость во втором, никак не могу это реализовать. Вручную поднять два соединения при помощи дополнительного TAP-интерфейса никаких проблем не вызывает, оба поднимаются, но это не вариант, т.к. нужно чтобы служба сама запускала их, а тут проблема - второй конфиг она не принимает.

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

Спасибо за информацию. Так и думал, что это как-то просто должно решаться, как и все в openvpn.

можете немного развернуть ответ для ламера?
создал второй tap-win-adapter
добавил в папку config вторую группу файлов с ключами. но при этом часть файлов имеет разные имена, а часть одинаковые, как быть?
может быть надо эту часть файлов переименовать и где-то руками прописать? подскажите плз если не трудно

Да, все повторяющиеся названия переименуйте в уникальные и не забудьте потом эти же названия файлов переименовать в самих файлах конфигурации.

То есть у вас для подключения идет комплект в виде файла конфигурации и файлов сертификатов. Имена файлов сертификатов прописаны в конфигурации. Сделайте все имена уникальные.

А что в файлах nat, doping и routes? Примерно представляю, но любопытно реализацию посмотреть.

С уважением, spb304

Я даже не знаю, как создать цепочку. Данное руководство к цепочке не имеет никакого отношения и ее не построит. Оно решает другую задачу. Для построения цепочки vpn подключений, надо продумать и организовать правильно маршруты на своем компьютере. Я никогда не пробовал это сделать.

Вы пишете "Оно решает другую задачу".
А какую задачу оно решает ?
Допустим, я создал два TAP-адаптера и вставил в папку "config"
два файла конфигурации. Я пробовал файлы конфигурации вставлять
по разному. Пробовал оба файла вставлять в общую папку "config".
Пробовал в общей папке "config" делать две папки: "config 1" и "config 2".
Результат всегда один и тот же. Всё прекрасно подключается.
Но я никак не могу взять в толк, как эти два соединения подключаются между собой.
Если Вы, уважаемый Zerox знаете, то подскажите пожалуйста.
Если сможете сделать рисунок, это будет совсем замечательно.
Заранее благодарю.

Я до конца не понимаю, что вы хотите сделать. Говорите о цепочке vpn подключений, но при этом остаетесь в рамках одного компьютера и пытаетесь как-то конфигурации менять местами.

Как я понимаю, чтобы получилась цепочка vpn соединений, вы должны своим компьютером подключиться по vpn к серверу, на котором выход в интернет будет настроен через другое vpn соединение.

В таком случае у вас получится цепочка выхода в интернет через 2 vpn соединения. Как это вы себе представляете цепочку в рамках одного компьютера, я не понимаю.

Недавно я научился делать цепочки из Прокси. Я хочу использовать VPN, Тор, Прокси, в общем всё то, что в Интернете обеспечивает честному человеку максимальную безопасность.
Хочу создать такой запутанный клубок соединений, который распутать смог бы только я.
А если это попытается сделать кто-то другой, то у него должно на распутывание уйти столько времени, что он сам откажется от этой затеи.
У меня на компьютере ещё установлена Виртуальная машина VirtualBox. Может быть и её как-то задействовать ? Думаю она в таком деле будет нелишней.
Так что, если Вы Zerox, в этом можете мне помочь, буду Вам очень признателен.

Огромаднейшее спасибо автору. Долгых лет жизни и процветания Вам, добрый человек. Вы себе даже не представляете как выручила меня ваша статья.

З.Ы. Несколько ремарок:
1) даже если разкидать фали .ovpn по разным подпапкам у них всеравно должны быть разные имена.
2) "Создать для каждого подключения отдельную папку и положить конфиг с сертификатами в нее." Справедливо только для ручного подключения. Если иcпользуется служба OpenVPN Service все файлы конфигурации и сертификати должны лежать в одной папке .\OpenVPN\config. Даная служба с подпапками работать не умеет.

У меня было несколько статей, посвященных настройке OpenVPN-серверов, но всегда подразумевался лишь один экземпляр сервера. И тут возникла задача запустить сразу два OpenVPN-сервера с разными настройками на одном физическом компьютере. Сегодня расскажу как это делается, если вдруг у кого-то возникнет такая же необходимость.

В моём случае, один из серверов должен был работать в режиме моста с TAP-интерфейсом, а второй поднимать туннель и виртуальную сеть через TUN-интерфейс. Причём клиенты, подключенные по VPN, должны иметь возможность взаимодействовать друг с другом, то есть должна быть настроена маршрутизация между OpenVPN каналами.

Зачем вообще это нужно? Дело в том, что в новой версии macOS, OpenVPN клиент Tunnelblick больше не может загружать модуль TAP-интерфейса (эта возможность осталась только для машин с процессором Intel и то при условии отключения защиты системы), потому нужен был сервер с другой настройкой, а существующую систему нарушать было нельзя. Но это мой частный случай и причины настройки нескольких VPN серверов могут быть разными.

Совместная работа нескольких OpenVPN-серверов возможна при условии, когда каждый из них слушает свой порт. Основной сервер у меня работает со стандартным UDP портом 1194, а дополнительный слушает UDP порт 1195 (это задаётся в конфигурационном файле сервера).

Раз у нас будет два сервера, то и файлов конфигурации тоже должно быть два — server.conf и server_tun.conf. Имя файлу можно задавать произвольно, я назвал server_tun.conf по имени создаваемого интерфейса. Подробнее о настройке OpenVPN-сервера с маршрутизированными туннелями я расскажу в следующий раз.

Итак, будем считать, что файлы конфигурации у нас настроены. Как же запустить оба сервера одновременно?

Автоматический запуск нескольких серверов OpenVPN

Для Linux систем достаточно в файле /etc/default/openvpn раскомментировать строку:

После чего перечитать конфигурацию systemd:

На FreeBSD это делается несколько иначе. Для начала создадим символическую ссылку на скрипт запуска (путь к файлу /usr/local/etc/rc.d/)

Далее в /etc/rc.conf добавляем следующие строки для автоматического запуска второго сервера при загрузке:

openvpn_tun_enable="YES"
openvpn_tun_configfile="/usr/local/etc/openvpn/server_tun.conf"

Обратите внимание, что в название демона "openvpn_tun" указана наша символическая ссылка, созданная ранее. Таким образом можно запустить столько OpenVPN-серверов, сколько вы посчитаете нужным.

Маршрутизация между двумя OpenVPN каналами с TUN и TAP интерфейсом

Напоследок хочу рассказать о настройке маршрутизации трафика между клиентами двух OpenVPN каналов, без чего они не могли достучаться друг для друга, хотя параметр `client-to-client` был прописан в настройках обоих серверов. В файл конфигурации мостового OpenVPN сервера (с интерфейсом TAP) нужно было добавить такую строку:

Таким образом мы добавим дополнительный маршрут в подсеть 10.10.0.0 (она настроена на втором сервере) клиентам, у которых настроены мостовые туннели первого сервера.

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

ЕСЛИ СЧИТАЕТЕ СТАТЬЮ ПОЛЕЗНОЙ,
НЕ ЛЕНИТЕСЬ СТАВИТЬ ЛАЙКИ И ДЕЛИТЬСЯ С ДРУЗЬЯМИ.

Читайте также: