I built OpenVPN 2.5-beta2 MSI installers today. When I tested them on my up-to-date Windows 10 64-bit laptop the installation failed with this log message:
WriteRegistryValues: Key: SoftwareOpenVPN, Name: priority, Value: NORMAL_PRIORITY_CLASS
MSI (s) (7C:90) [12:05:08:513]: Executing op: RegOpenKey(Root=-2147483646,Key=SOFTWAREtap0901,,BinaryType=1,,)
MSI (s) (7C:90) [12:05:08:513]: Executing op: RegAddValue(,Value=#1,)
WriteRegistryValues: Key: SOFTWAREtap0901, Name: , Value: #1
MSI (s) (7C:90) [12:05:08:513]: Executing op: RegOpenKey(Root=-2147483646,Key=SOFTWAREWintun,,BinaryType=1,,)
MSI (s) (7C:90) [12:05:08:513]: Executing op: RegAddValue(,Value=#1,)
WriteRegistryValues: Key: SOFTWAREWintun, Name: , Value: #1
MSI (s) (7C:90) [12:05:08:513]: Executing op: ActionStart(Name=InstallTUNTAPAdaptersRollback,,)
Action 12.05.08: InstallTUNTAPAdaptersRollback.
MSI (s) (7C:90) [12:05:08:513]: Executing op: CustomActionSchedule(Action=InstallTUNTAPAdaptersRollback,ActionType=3329,Source=BinaryData,Target=ProcessDeferredAction,CustomActionData=x)
MSI (s) (7C:90) [12:05:08:513]: Executing op: ActionStart(Name=InstallTUNTAPAdapters,Description=Creating TUN/TAP adapters,Template=[1]: [2] [3] [4])
ers: Creating adapter: OpenVPN Wintun Wintun
Error 2551. OpenVPNMSICA: tap_set_adapter_name: Error renaming adapter Error 1: Funktio ei kelpaa.
MSI (s) (7C!18) [12:05:18:209]: Product: OpenVPN 2.5-beta2-I601 amd64 -- Error 2551. OpenVPNMSICA: tap_set_adapter_name: Error renaming adapter Error 1: Funktio ei kelpaa.
CustomAction InstallTUNTAPAdapters returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 12.05.18: InstallExecute. Return value 3.
MSI (s) (7C:90) [12:05:18:294]: Note: 1: 2265 2: 3: -2147287035
MSI (s) (7C:90) [12:05:18:294]: User policy value 'DisableRollback' is 0
MSI (s) (7C:90) [12:05:18:294]: Machine policy value 'DisableRollback' is 0
MSI (s) (7C:90) [12:05:18:294]: Note: 1: 2318 2:
MSI (s) (7C:90) [12:05:18:294]: Executing op: Header(Signature=1397708873,Version=500,Timestamp=1360814244,LangId=1033,Platform=589824,ScriptType=2,ScriptMajorVersion=21,ScriptMinorVersion=4,ScriptAttributes=1)
MSI (s) (7C:90) [12:05:18:294]: Executing op: DialogInfo(Type=0,Argument=1033)
MSI (s) (7C:90) [12:05:18:294]: Executing op: DialogInfo(Type=1,Argument=OpenVPN)
MSI (s) (7C:90) [12:05:18:294]: Executing op: RollbackInfo(,RollbackAction=Rollback,RollbackDescription=Rolling back action:,RollbackTemplate=[1],CleanupAction=RollbackCleanup,CleanupDescription=Removing backup files,CleanupTemplate=File: [1])
The installer in question is this: https://build.openvpn.net/downloads/releases/OpenVPN-2.5-beta2-I601-amd64.msi
The problem manifests itself even if no tap-windows6 adapters are installed or in driver store. It also happens during upgrades (beta1->beta2).
Содержание
- Что такое адаптеры TAP-Windows
- Как исправить проблемы с TAP-Windows
- Перезагрузите адаптер TAP-Windows
- Переустановите адаптер
- Создайте новый адаптер TAP-Windows
Прежде всего, мы собираемся объяснить, что такое адаптеры TAP-Windows. Когда мы идем в диспетчер устройств и вводим сетевые адаптеры, мы видим нашу карту Wi-Fi или карту Ethernet, а также другие, которые у нас есть. Это физические карты, которые установлены в нашем оборудовании. Но мы также можем установить виртуальные адаптеры. То есть TAP-Окна .
Поэтому можно сказать, что TAP-Windows адаптер — это виртуальный сетевой адаптер который существует в системе Windows. Его можно использовать для различных задач, в зависимости от конкретных характеристик программного обеспечения.
Обычно они связаны с установкой и использованием VPN инструменты , а также установка программ для изменения сетевых настроек. Поэтому они тесно связаны с правильным функционированием виртуальной частной сети. В случае возникновения проблем, если он не включен правильно, у нас могут возникнуть сбои с нашим VPN.
Многие пользователи замечают, что при использовании VPN в Windows устанавливается что-то под названием TAP-Windows V9. Это может вызвать проблемы при использовании VPN или при обычном подключении.
Этот виртуальный адаптер позволяет VPN подключаться к вашим серверам. По крайней мере, на бумаге пользователям не нужно прикасаться ни к одному из этих компонентов. Им просто нужно оставить все как есть, и все. Но иногда возникают проблемы.
Как исправить проблемы с TAP-Windows
Как мы говорим, иногда возникают проблемы и TAP-Windows плохо работает , это не позволяет нам использовать VPN в обычном режиме или даже нарушать наше сетевое соединение. К счастью, у нас есть ряд простых действий, которые мы можем выполнить.
Перезагрузите адаптер TAP-Windows
Один из первых шагов, которые мы можем сделать, — это перезапустить TAP-Окна адаптер . Иногда с помощью этого небольшого шага мы можем решить ошибки, которые влияют на наше соединение.
Для этого мы должны щелкнуть правой кнопкой мыши значок подключения в правом нижнем углу и выбрать «Открыть настройки сети и Интернета».
Здесь мы должны ввести параметры изменения адаптера. Там мы увидим значок адаптера TAP-Windows, и мы должны щелкнуть второй кнопкой над ним, мы нажимаем «Деактивировать», и мы повторно активируем его позже. Таким образом он перезапускается.
Переустановите адаптер
Другой вариант, который мы также можем принять во внимание, если предыдущий шаг не решил проблему, — это переустановите адаптер . Первым шагом будет удаление программного обеспечения VPN, которое мы используем, и его повторная установка. Как только мы сделаем этот процесс, мы должны перезагрузить компьютер.
Если это по-прежнему не дает решения, мы переустановим адаптер TAP-Windows. Для этого щелкаем правой кнопкой мыши по кнопке Пуск и открываем Диспетчер устройств. Мы идем в Cеть адаптеры, и когда мы покажем это, он появится. Мы должны щелкнуть правой кнопкой мыши по адаптеру и нажать «Удалить».
Позже мы запускаем VPN, и он может попросить нас снова установить адаптер TAP-Windows. Мы также можем скачать и установить его вручную.
Создайте новый адаптер TAP-Windows
Последним решением было бы создать новый TAP-Окна адаптер . Это происходит, когда мы подключаемся к новой VPN.
В конечном счете, это шаги, которые мы должны предпринять в случае, если у нас возникнут проблемы с использованием VPN в Windows, и ошибка связана с адаптером TAP-Windows. Мы можем повторно включить его, переустановить или создать новый, чтобы увидеть, можно ли легко решить эту проблему.
OpenVPN – это набор open source программ, который заслуженно является одним из самых популярных и легких решений для реализации защищенной VPN сети. OpenVPN позволяет объединить в единую сеть сервер и клиентов (даже находящиеся за NAT или файерволами), или объединить сети удаленных офисов. Серверную часть OpenVPN можно развернуть практически на всех доступных операционных системах (пример настройки OpenVPN на Linux). Вы можете установить OpenVPN сервер даже на обычный компьютер с десктопной редакцией Windows 10.
В этой статье, мы покажем, как установить OpenVPN сервер на компьютер с Windows 10, настроить OpenVPN клиент на другом Windows хосте и установить защищенное VPN подключение.
Содержание:
- Установка службы OpenVPN сервера в Windows
- Создаем ключи шифрования и сертификаты для OpenVPN
- Конфигурационный файл OpenVPN сервера в Windows
- Настройка OpenVPN клиента в Windows
Установка службы OpenVPN сервера в Windows
Скачайте MSI установщик OpenVPN для вашей версии Windows с официального сайта (https://openvpn.net/community-downloads/). В нашем случае это OpenVPN-2.5.5-I602-amd64.msi (https://swupdate.openvpn.org/community/releases/OpenVPN-2.5.5-I602-amd64.msi).
Запустите установку.
Если вы планируете, OpenVPN сервер работал в автоматическом режиме, можно не устанавливать OpenVPN GUI. Обязательно установите OpenVPN Services.
Начиная с версии OpenVPN 2.5, поддерживается драйвер WinTun от разработчиков WireGuard. Считается, что этот драйвер работает быстрее чем классический OpenVPN драйвер TAP. Установите драйвер Wintun, откажитесь от установки TAP-Windows6.
Установите OpenSSL утилиту EasyRSA Certificate Management Scripts.
Запустите установку.
По умолчанию OpenVPN устаналивается в каталог C:Program FilesOpenVPN.
После окончания установки появится новый сетевой адаптер типа Wintun Userspace Tunnel. Этот адаптер отключен, если служба OpenVPN не запущена.
Создаем ключи шифрования и сертификаты для OpenVPN
OpenVPN основан на шифровании OpenSSL. Это означает, что для обмена трафиком между клиентом и серверов VPN нужно сгенерировать ключи и сертификаты с использованием RSA3.
Откройте командную строку и перейдите в каталог easy-rsa:
cd C:Program FilesOpenVPNeasy-rsa
Создайте копию файла:
copy vars.example vars
Откройте файл vars с помощью любого текстового редактора. Проверьте пути к рабочим директориям.
Обязательно поправьте переменную EASYRSA_TEMP_DIR следующим образом:
set_var EASYRSA_TEMP_DIR "$EASYRSA_PKI/temp"
Можете заполнить поля для сертификатов (опционально)
set_var EASYRSA_REQ_COUNTRY "RU" set_var EASYRSA_REQ_PROVINCE "MSK" set_var EASYRSA_REQ_CITY "MSK" set_var EASYRSA_REQ_ORG "IT-Company" set_var EASYRSA_REQ_EMAIL " [email protected] " set_var EASYRSA_REQ_OU " IT department "
Срок действия сертификатов задается с помощью:
#set_var EASYRSA_CA_EXPIRE 3650 #set_var EASYRSA_CERT_EXPIRE 825
Сохраните файл и выполните команду:
EasyRSA-Start.bat
Следующие команды выполняются в среде EasyRSA Shell:
Инициализация PKI:
./easyrsa init-pki
Должна появится надпись:
init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: C:/Program Files/OpenVPN/easy-rsa/pki
Теперь нужно сгенерировать корневой CA:
./easyrsa build-ca
Задайте дважды пароль для CA:
CA creation complete and you may now import and sign cert requests.
Данная команда сформировала:
- Корневой сертификат центра сертификации: «C:Program FilesOpenVPNeasy-rsapkica.crt»
- Ключ центра сертификации «C:Program FilesOpenVPNeasy-rsapkiprivateca.key»
Теперь нужно сгенерировать запрос сертификата и ключ для вашего сервера OpenVPN:
./easyrsa gen-req server nopass
Утилита сгенерирует два файла:
req: C:/Program Files/OpenVPN/easy-rsa/pki/reqs/server.req key: C:/Program Files/OpenVPN/easy-rsa/pki/private/server.key
Подпишем запрос на выпуск сертификата сервера с помощью нашего CA:
./easyrsa sign-req server server
Подтвердите правильность данных, набрав yes.
Затем введите пароль CA от корневого CA.
В каталоге issued появится сертификат сервера («C:Program FilesOpenVPNeasy-rsapkiissuedserver.crt»)
Теперь можно создать ключи Диффи-Хеллмана (займет длительное время):
./easyrsa gen-dh
Для дополнительной защиты VPN сервера желательно включить tls-auth. Данная технология позволяет использовать подписи HMAC к handshake-пакетам SSL/TLS, инициируя дополнительную проверку целостности. Пакеты без такой подписи будут отбрасываться VPN сервером. Это защитит вас от сканирования порта VPN сервера, DoS атак, переполнения буфера SSL/TLS.
Сгенерируйте ключ tls-auth:
cd C:Program FilesOpenVPNbin
openvpn --genkey secret ta.key
Должен появиться файл «C:Program FilesOpenVPNbinta.key». Переместите его в каталог C:Program FilesOpenVPNeasy-rsapki
Теперь можно сформировать ключи для клиентов OpenVPN. Для каждого клиента, который будет подключаться к вашему серверу нужно создать собственные ключи.
Есть несколько способов генерации ключей и передачи их клиентам. В следующем примере, мы создадим на сервере ключ клиента и защитим его паролем:
./easyrsa gen-req kbuldogov
./easyrsa sign-req client kbuldogov
Данный ключ («C:Program FilesOpenVPNeasy-rsapkiprivatekbuldogov.key») нужно передать клиенту и сообщить пароль. Клиент может снять защиту паролем для ключа:
openssl rsa -in "C:Program FilesOpenVPNeasy-rsapkiprivatekbuldogov.key"-out "C:Program FilesOpenVPNeasy-rsapkiprivatekbuldogov_use.key"
Если вы хотите сгенерировать ключ, не защищенный паролем, нужно выполнить команду:
./easyrsa gen-req имяклиента nopass
На сервере с OpenVPN вы можете создать неограниченное количество ключей и сертификатов для пользователей. Аналогичным образом сформируйте ключи и сертфикаты для других клиентов.
Вы можете отохвать скомпрометированные сертификаты клиентов:
cd C:Program FilesOpenVPNeasy-rsa
EasyRSA-Start.bat
./easyrsa revoke kbuldogov
Итак, мы сгенерировали набор ключей и сертификатов для OpenVPN сервера. Теперь можно настроить и запустить службу OpenVPN.
Конфигурационный файл OpenVPN сервера в Windows
Скопируйте типовой конфигурационный файл OpenVPN сервера:
copy "C:Program FilesOpenVPNsample-configserver.ovpn" "C:Program FilesOpenVPNconfig-autoserver.ovpn"
Откройте файл server.ovpn в любом текстовом редакторе и внесите свои настройки. Я использую следующий конфиг для OpenVPN:
# Указываем порт, протокол и устройство port 1194 proto udp dev tun # Указываем пути к сертификатам сервера ca "C:\Program Files\OpenVPN\easy-rsa\pki\ca.crt" cert "C:\Program Files\OpenVPN\easy-rsa\pki\issued\server.crt" key "C:\Program Files\OpenVPN\easy-rsa\pki\private\server.key" dh "C:\Program Files\OpenVPN\easy-rsa\pki\dh.pem" # Указываем настройки IP сети, адреса из которой будет будут получать VPN клиенты server 10.24.1.0 255.255.255.0 #если нужно разрешить клиентам подключаться под одним ключом, нужвно включить опцию duplicate-cn (не рекомендуется) #duplicate-cn # TLS защита tls-auth "C:\Program Files\OpenVPN\easy-rsa\pki\ta.key" 0 cipher AES-256-GCM # Другая параметры keepalive 20 60 persist-key persist-tun status "C:\Program Files\OpenVPN\log\status.log" log "C:\Program Files\OpenVPN\log\openvpn.log" verb 3 mute 20 windows-driver wintun
Сохраните файл.
OpenVPN позволяет использовать как TCP, так и UDP для подключения. В этом примере я запустил OpenVPN на 1194 UDP. Рекомендуется использовать протокол UDP, это оптимально как с точки зрения производительности, так и безопасности.
Не забудьте открыть на файерволе порты для указанного вами порта OpenVPN на клиенте и на сервере. Можно открыть порты в Windows Defender с помощью PowerShell.
Правило для сервера:
New-NetFirewallRule -DisplayName "AllowOpenVPN-In" -Direction Inbound -Protocol UDP –LocalPort 1194 -Action Allow
Правило для клиента:
New-NetFirewallRule -DisplayName "AllowOpenVPN-Out" -Direction Outbound -Protocol UDP –LocalPort 1194 -Action Allow
Теперь нужно запустить службу OpenVPN и изменить тип ее запуска на автоматический. Воспользуйтесь таким командами PowerShell, чтобы включить службу:
Set-Service OpenVPNService –startuptype automatic –passthru
Get-Service OpenVPNService| Start-Service
Откройте панель управления, и убедитесь, что виртуальный сетевой адаптер OpenVPN Wintun теперь активен. Если нет, смотрите лог «C:Program FilesOpenVPNlogserver.log»
Если при запуске OpenVPN вы видите в логе ошибку:
Options error: In C:Program FilesOpenVPNconfig-autoserver.ovpn:1: Maximum option line length (256) exceeded, line starts with..
Смените в файле server.ovpn символы переноса строки на Windows CRLF (в notepad++ нужно выбрать Edit -> EOL Conversion -> Windows CR LF). Сохраните файл, перезапустите службу OpevVPNService.
Данный конфиг позволит удаленным клиентам получить доступ только к серверу, но другие компьютеры и сервисы в локальной сети сервера для них недоступны. Чтобы разрешить клиентам OpenVPN получить доступ к внутренней сети нужно:
Включить опцию IPEnableRouter в реестре (включает IP маршрутизацию в Windows, в том числе включает маршрутизацию меду сетями Hyper-V): reg add «HKLMSYSTEMCurrentControlSetServicesTcpipParameters» /v IPEnableRouter /t REG_DWORD /d 1 /f
Добавьте в конфгурационный файл сервера OpenVPN маршруты до внутренней IP сети:
push "route 10.24.1.0 255.255.255.0" push "route 192.168.100.0 255.255.255.0"
Если нужно, назначьте клиенту адреса DNS серверов:
push "dhcp-option DNS 192.168.100.11" push "dhcp-option DNS 192.168.100.12"
Если нужно завернуть все запросы клиента (в том числе Интернет трафик) на ваш OpenVPN сервер, добавьте опцию:
push "redirect-gateway def1"
Настройка OpenVPN клиента в Windows
Создайте на сервере шаблонный конфигурационный файла для клиента VPN (на базе iшаблона client.ovpn) со следующими параметрами (имя файла kbuldovov.ovpn)
client dev tun proto udp remote your_vpn_server_address 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert kbuldogov.crt key kbuldogov.key remote-cert-tls server tls-auth ta.key 1 cipher AES-256-GCM connect-retry-max 25 verb 3
В директиве remote указывается публичный IP адрес или DNS имя вашего сервера OpenVPN.
Скачайте и установите клиент OpenVPN Connect для Windows (https://openvpn.net/downloads/openvpn-connect-v3-windows.msi).
Теперь на компьютер с клиентом OpenVPN нужно с сервера скопировать файлы:
- ca.crt
- kbuldogov.crt
- kbuldogov.key
- dh.pem
- ta.key
- kbuldogov.ovpn
Теперь импортируйте файл с профилем *.ovpn и попробуйте подключиться к вашему VPN серверу.
Если все настроено правильно, появится такая картинка.
Проверьте теперь лог OpenVPN на клиенте «C:Program FilesOpenVPN Connectagent.log»
Mon Dec 27 08:09:30 2021 proxy_auto_config_url Mon Dec 27 08:09:31 2021 TUN SETUP TAP ADAPTERS: guid='{25EE4A55-BE90-45A0-88A1-8FA8FEF24C42}' index=22 name='Local Area Connection' Open TAP device "Local Area Connection" PATH="\.Global{25EE4A55-BE90-45A0-88A1-8FA8FEF24C42}.tap" SUCCEEDED TAP-Windows Driver Version 9.24 ActionDeleteAllRoutesOnInterface iface_index=22 netsh interface ip set interface 22 metric=1 Ok. netsh interface ip set address 22 static 10.24.1.6 255.255.255.252 gateway=10.24.1.5 store=active IPHelper: add route 10.24.1.1/32 22 10.24.1.5 metric=-1
Клиент успешно подключится к OpenVPN серверу и получил IP адрес 10.24.1.6.
Проверьте теперь лог на сервере («C:Program FilesOpenVPNlogopenvpn.log»). Здесь также видно, что клиент с сертификатом kbuldogov успешно подключится к вашему серверу.
2021-12-27 08:09:35 192.168.13.202:55648 [kbuldogov] Peer Connection Initiated with [AF_INET6]::ffff:192.168.13.202:55648 2021-12-27 08:09:35 kbuldogov/192.168.13.202:55648 MULTI_sva: pool returned IPv4=10.24.1.6, IPv6=(Not enabled) 2021-12-27 08:09:35 kbuldogov/192.168.13.202:55648 MULTI: Learn: 10.24.1.6 -> kbuldogov/192.168.13.202:55648 2021-12-27 08:09:35 kbuldogov/192.168.13.202:55648 MULTI: primary virtual IP for kbuldogov/192.168.13.202:55648: 10.24.1.6
Вчера обнаружил, что на мой домашний сервер пытаются подобрать пароль к RDP. Спросил наших безопасников с работы, да, порт сканировали, но пароль подбирают не они… Надо что-то делать с этим, и я даже знаю что.
Ударим шифрованием по злобным брутфорсерам! Ставим OpenVPN 2.5.1 сервер на Windows Server 2016.
- Встретимся с Easy-RSA 3.
- Решим неочевидный баг с директорией временных файлов.
- Освоим OpenVPN Connect, в том числе на Android.
- Запилим адаптер OpenVPN WinTun.
Установка OpenVPN Server
Скачиваем дистрибутив для установки OpenVPN:
Доступна версия OpenVPN 2.5.1. Скачиваю Windows 64-bit MSI installer, файл OpenVPN-2.5.1-I601-amd64.msi.
Запускаем инсталлятор OpenVPN.
Открывается мастер установки, предлагают выбрать тип установки, естественно, нажимаем Customize. Установка по умолчанию нас не устроит.
OpenVPN GUI отключаю. Мне нужно, чтобы OpenVPN на сервере работал автоматически.
А OpenVPN Service, наоборот, включаю. OpenVPN у меня будет работать как служба Windows.
Документацию и примеры конфигурации оставляю. Конфигурационные примеры будут использоваться в качестве шаблонов.
Начиная с версии OpenVPN 2.5 появилась поддержка драйвера WinTUN от разработчиков WireGuard. Говорят, что работает быстрее чем TAP-Windows6. Поэтому драйвер TAP-Windows6 отключаю и включаю Wintun.
ПРИМЕЧАНИЕ: для включения драйвера Wintun необходимо в файле конфигурации сервера включить параметр:
windows-driver wintun
Утилиты OpenSSL EasyRSA 3 Certificate Management Scripts включаю. Install Now.
Начинается процесс установки OpenVPN.
Установка успешно завершена. Close.
Установка выполнена в директорию C:Program FilesOpenVPN.
После установки у нас появляется новый сетевой адаптер Wintun Userspace Tunnel.
Адаптер отключён.
Создание ключей и сертификатов
Запускаем командную строку под администратором и переходим в рабочую директорию C:Program FilesOpenVPNeasy-rsa.
cd C:Program FilesOpenVPNeasy-rsa
В этой папке есть всё необходимое для генерации сертификатов.
Для работы в Windows нас интересует файл EasyRSA-Start.bat.
Выполняем EasyRSA-Start.bat.
Запускается оболочка EasyRSA Shell.
Инициализируем новую конфигурацию:
./easyrsa init-pki
Появляется новая директория C:Program FilesOpenVPNeasy-rsapki.
Генерируем ключ и сертификат центра сертификации. Внимание, сейчас мы наступим на грабли, исправим ошибку и снова вернёмся к генерации файлов для центра сертификации.
./easyrsa build-ca
Нас попросят для раза ввести пароль. Придумываем и вводим.
Получаем ошибку.
Extra arguments given.
genrsa: Use -help for summary.Easy-RSA error:
Failed create CA private key
Исправим этот баг. Мне не совсем понятно, почему нельзя было всё сделать сразу по-человечески, чтобы люди не встречали эту ошибку. Копируем файл C:Program FilesOpenVPNeasy-rsavars.example, называем копию C:Program FilesOpenVPNeasy-rsavars.
Редактируем C:Program FilesOpenVPNeasy-rsavars. В данном файле можно много чего прописать, но я не буду на этом сейчас останавливаться подробно. Находим строку:
#set_var EASYRSA_TEMP_DIR "$EASYRSA_PKI"
И заменяем её на:
set_var EASYRSA_TEMP_DIR "$EASYRSA_PKI/temp"
Собственно, ошибка и заключалась в том, что оболочка по какой-то причине не могла создать временный файл.
Генерируем ключ и сертификат центра сертификации:
./easyrsa build-ca
Нас попросят для раза ввести пароль. Придумываем и вводим. После нас просят указать Common Name для центра сертификации, указываю «internet-lab.ru».
Операция проходит успешно.
Создаётся сертификат центра сертификации:
- C:Program FilesOpenVPNeasy-rsapkica.crt
Сертификат создаётся на 10 лет, это значение можно переопределить в файле vars.
И ключ центра сертификации:
- C:Program FilesOpenVPNeasy-rsapkiprivateca.key
Ключ секретный, никому не показываем. он будет храниться на сервере.
Генерируем ключ и запрос на сертификат сервера, назовём сервер именем «server«:
./easyrsa gen-req server nopass
Нас просят указать Common Name для сервера, указываю «internet-lab.ru».
Операция проходит успешно.
Создаётся запрос на сертификат сервера:
- C:Program FilesOpenVPNeasy-rsapkireqsserver.req
И ключ сервера:
- C:Program FilesOpenVPNeasy-rsapkiprivateserver.key
Ключ секретный, никому не показываем. он будет храниться на сервере.
Для создания сертификата сервера нужно подписать запрос на сертификат:
./easyrsa sign-req server server
Для подписи нужно ввести слово «yes» и указать пароль от центра сертификации.
Создаётся сертификат сервера:
- C:Program FilesOpenVPNeasy-rsapkiissuedserver.crt
Сертификат сервера создаётся на 825 дней, это значение можно переопределить в файле vars.
Теперь создадим клиентский сертификат. По хорошему клиентский ключ следует запаролить, чтобы исключить утечку при передаче. Для этого есть несколько способов.
Первый
-
На клиентской машине генерируем запрос на сертификат клиента и ключ без пароля:
./easyrsa init-pki ./easyrsa gen-req client nopass
- Переносим REQ файл запроса на сертификат клиента на машину с нашим CA, импортируем, подписываем, отсылаем сгенерированный сертификат CRT обратно клиенту:
./easyrsa import-req /path/to/client.req client ./easyrsa sign-req client client
Второй
-
а машине с CA генерируем сертификат клиента и ключ с паролем:
./easyrsa gen-req client ./easyrsa sign-req client client
- Переносим файлы клиенту, сообщаем пароль. Клиент снимает пароль с полученного ключа:
openssl rsa -in client.key -out clientnew.key
Третий
Но поскольку я генерирую ключ сам для себя, то воспользуюсь небезопасным третьим способом.
Генерируем ключ и запрос на сертификат клиента, назовём клиента именем «client«:
./easyrsa gen-req client nopass
Нас просят указать Common Name для клиента, указываю «v.pupkin».
Операция проходит успешно.
Создаётся запрос на сертификат клиента:
- C:Program FilesOpenVPNeasy-rsapkireqsclient.req
И ключ клиента:
- C:Program FilesOpenVPNeasy-rsapkiprivateclient.key
Для создания сертификата клиента нужно подписать запрос на сертификат:
./easyrsa sign-req client client
Для подписи нужно ввести слово «yes» и указать пароль от центра сертификации.
Создаётся сертификат клиента:
- C:Program FilesOpenVPNeasy-rsapkiissuedclient.crt
Сертификат сервера создаётся на 825 дней, это значение можно переопределить в файле vars.
Генерируем ключ Диффи-Хеллмана:
./easyrsa gen-dh
Операция займёт некоторое время.
Создаётся файл:
- C:Program FilesOpenVPNeasy-rsapkidh.pem
Я на сервере собираюсь использовать tls-auth для дополнительной проверки целостности, это обеспечит дополнительный уровень безопасности протокола SSL/TLS при создании соединения:
- Сканирование прослушиваемых VPN-сервером портов
- Инициация SSL/TLS-соединения несанкционированной машиной на раннем этапе
- DoS-атаки и флуд на порты OpenVPN
- Переполнение буфера SSL/TLS
При использовании tls-auth на клиенте не понадобится ключ Диффи-Хеллмана, но пусть будет. Генерируем ключ tls-auth. Для этого запускаем командную строку под администратором и выполняем:
cd C:Program FilesOpenVPNbin
openvpn --genkey secret ta.key
В папке C:Program FilesOpenVPNbin создаётся файл ta.key.
Переносим его в папку C:Program FilesOpenVPNeasy-rsapki.
Минимальный набор сертификатов сгенерирован.
Настройка OpenVPN сервера
Создадим конфигурационный файл сервера C:Program FilesOpenVPNconfig-autoserver.ovpn:
copy "C:Program FilesOpenVPNsample-configserver.ovpn" "C:Program FilesOpenVPNconfig-autoserver.ovpn"
Открываем блокнотом и редактируем:
notepad "C:Program FilesOpenVPNconfig-autoserver.ovpn"
Лучше изучить конфигурационный файл, я предлагаю свой вариант конфига:
port 1194
proto tcp
dev tun
ca "C:\Program Files\OpenVPN\easy-rsa\pki\ca.crt"
cert "C:\Program Files\OpenVPN\easy-rsa\pki\issued\server.crt"
key "C:\Program Files\OpenVPN\easy-rsa\pki\private\server.key" # This file should be kept secret
dh "C:\Program Files\OpenVPN\easy-rsa\pki\dh.pem"
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
duplicate-cn
keepalive 10 120
tls-auth "C:\Program Files\OpenVPN\easy-rsa\pki\ta.key" 0 # This file is secret
cipher AES-256-GCM
persist-key
persist-tun
status "C:\Program Files\OpenVPN\log\status.log"
log "C:\Program Files\OpenVPN\log\openvpn.log"
verb 4
mute 20
windows-driver wintun
У меня здесь указаны пути к ключам и сертификатам, используется порт TCP 1194. Параметр duplicate-cn позволяет подключаться всем клиентам по одному общему сертификату, но это небезопасно и не рекомендуется. Используйте только в тестовых целях. Я использую для того, чтобы с помощью одного и того же сертификата подключиться к OpenVPN серверу и с клиентской машины и со смартфона. Параметр windows-driver wintun подключает использование драйвера WinTun. И что им стоило этот параметр указать в примере конфигурации? Остальное по умолчанию.
ВНИМАНИЕ: в конфигурационных файлах допускается в путях использование прямого слеша:
ca «C:/Program Files/OpenVPN/easy-rsa/pki/ca.crt»
или двойного обратного слеша:
ca «C:\Program Files\OpenVPN\easy-rsa\pki\ca.crt»
Запуск OpenVPN сервера
Переходим к службам:
services.msc
Находим службу OpenVPNService.
Настраиваем на автоматический запуск при загрузке сервера.
Запускаем (перезапускаем) службу.
Согласно настройкам сервера в папке C:Program FilesOpenVPNlog должны появиться логи. Это один из инструментов администратора OpenVPN сервера.
Активировался сетевой адаптер OpenVPN Wintun.
Согласно настройкам сервера IP адрес 10.8.0.1.
Проверяем поднялся ли порт tcp 1194:
netstat -tan | find "1194"
Порт должен прослушиваться.
Настройка firewall
Теперь нужно настроить firewall. Открываем Windows Defender Firewall with Advanced Security.
Переходим в Inbound Rules.
Создаём правило — New Rule…
Тип правила — Port. Next.
Протоколы и порты — TCP 1194. Как в настройках сервера. Next.
Действия — Allow the connection. Next.
Для всех сетей. Next.
Указываем название правила — OpenVPN. Next.
Правило создано, теперь firewall не блокирует входящие TCP соединения на 1194 порту.
Настройка OpenVPN клиента на ПК Windows
На компьютере клиента устанавливаем OpenVPN Connect.
Я скачиваю версию для Windows.
Запускаем установку.
Next.
Принимаем лицензионное соглашение. Next.
Install.
OpenVPN Connect устанавливается.
Установка завершена. Finish.
На рабочем столе появляется иконка OpenVPN Connect.
На сервере файл примера конфигурации client.ovpn копируем как internet-lab.ru.ovpn.
И редактируем:
client
dev tun
proto tcp
remote internet-lab.ru 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-GCM
verb 0
connect-retry-max 25
Здесь нужно указать протокол, порт адрес сервера и прочие параметры. Пути к ключам и сертификатам относительные.
Создаём директорию, например, C:openvpn. Копируем в неё с сервера файлы:
- ca.crt
- client.crt
- client.key
- dh.pem
- ta.key
- internet-lab.ru.ovpn
Запускаем OpenVPN Connect.
Agree. Переключаемся на File.
Перетаскиваем мышкой в окно файл C:openvpninternet-lab.ru.ovpn, или указываем через кнопку Browse.
Ставим галку «Connect after import».
Коннектимся.
Соединение с OpenVPN сервером установлено.
В логах сервера видим, что соединился юзер v.pupkin.
Настройка OpenVPN клиента на смартфоне Android
Копируем на телефон все те же файлы, что и для клиента.
Устанавливаем приложение OpenVPN Connect.
Запускаем.
Agree.
Выбираем File. Указываем путь к файлу internet-lab.ru.ovpn.
Import.
Ставим галку «Connect after import».
Соединение с OpenVPN сервером установлено.
В логах сервера видим, что соединился второй юзер v.pupkin.
Отзыв сертификата
cd C:Program FilesOpenVPNeasy-rsa
EasyRSA-Start.bat
./easyrsa revoke client
Ссылки
Установка OpenVPN сервера на Windows
Содержание
- OpenVPN 2.5.1 сервер на Windows
- Установка OpenVPN Server
- Создание ключей и сертификатов
- Настройка OpenVPN сервера
- Запуск OpenVPN сервера
- Настройка firewall
- Настройка OpenVPN клиента на ПК Windows
- Настройка OpenVPN клиента на смартфоне Android
- Community Downloads
- Overview of changes since OpenVPN 2.4
- Faster connections
- Crypto specific changes
- Server-side improvements
- Network-related changes
- Linux-specific features
- Windows-specific features
- Important notices
- BF-CBC cipher is no longer the default
- Connectivity to some VPN service provider may break
- Linux packages are available from
- Useful resources
- Overview of changes since OpenVPN 2.4
- Faster connections
- Crypto specific changes
- Server-side improvements
- Network-related changes
- Linux-specific features
- Windows-specific features
- Important notices
- BF-CBC cipher is no longer the default
- Connectivity to some VPN service provider may break
- Linux packages are available from
- Useful resources
- Overview of changes since OpenVPN 2.4
- Faster connections
- Crypto specific changes
- Server-side improvements
- Network-related changes
- Linux-specific features
- Windows-specific features
- Important notices
- BF-CBC cipher is no longer the default
- Connectivity to some VPN service provider may break
- Linux packages are available from
- Windows ARM64 installers
- Useful resources
- Overview of changes since OpenVPN 2.4
- Faster connections
- Crypto specific changes
- Server-side improvements
- Network-related changes
- Linux-specific features
- Windows-specific features
- Important notices
- BF-CBC cipher is no longer the default
- Connectivity to some VPN service provider may break
- Linux packages are available from
- Windows ARM64 installers
- Useful resources
- Overview of changes since OpenVPN 2.4
- Faster connections
- Crypto specific changes
- Server-side improvements
- Network-related changes
- Linux-specific features
- Windows-specific features
- Important notices
- BF-CBC cipher is no longer the default
- Connectivity to some VPN service provider may break
- Linux packages are available from
- Useful resources
OpenVPN 2.5.1 сервер на Windows
Вчера обнаружил, что на мой домашний сервер пытаются подобрать пароль к RDP. Спросил наших безопасников с работы, да, порт сканировали, но пароль подбирают не они. Надо что-то делать с этим, и я даже знаю что.
Ударим шифрованием по злобным брутфорсерам! Ставим OpenVPN 2.5.1 сервер на Windows Server 2016.
Установка OpenVPN Server
Скачиваем дистрибутив для установки OpenVPN:
Доступна версия OpenVPN 2.5.1. Скачиваю Windows 64-bit MSI installer, файл OpenVPN-2.5.1-I601-amd64.msi.
Запускаем инсталлятор OpenVPN.
Открывается мастер установки, предлагают выбрать тип установки, естественно, нажимаем Customize. Установка по умолчанию нас не устроит.
OpenVPN GUI отключаю. Мне нужно, чтобы OpenVPN на сервере работал автоматически.
А OpenVPN Service, наоборот, включаю. OpenVPN у меня будет работать как служба Windows.
Документацию и примеры конфигурации оставляю. Конфигурационные примеры будут использоваться в качестве шаблонов.
Начиная с версии OpenVPN 2.5 появилась поддержка драйвера WinTUN от разработчиков WireGuard. Говорят, что работает быстрее чем TAP-Windows6. Поэтому драйвер TAP-Windows6 отключаю и включаю Wintun.
ПРИМЕЧАНИЕ: для включения драйвера Wintun необходимо в файле конфигурации сервера включить параметр:
Утилиты OpenSSL EasyRSA 3 Certificate Management Scripts включаю. Install Now.
Начинается процесс установки OpenVPN.
Установка успешно завершена. Close.
Установка выполнена в директорию C:Program FilesOpenVPN.
После установки у нас появляется новый сетевой адаптер Wintun Userspace Tunnel.
Создание ключей и сертификатов
Запускаем командную строку под администратором и переходим в рабочую директорию C:Program FilesOpenVPNeasy-rsa.
В этой папке есть всё необходимое для генерации сертификатов.
Для работы в Windows нас интересует файл EasyRSA-Start.bat.
Запускается оболочка EasyRSA Shell.
Инициализируем новую конфигурацию:
Появляется новая директория C:Program FilesOpenVPNeasy-rsapki.
Генерируем ключ и сертификат центра сертификации. Внимание, сейчас мы наступим на грабли, исправим ошибку и снова вернёмся к генерации файлов для центра сертификации.
Нас попросят для раза ввести пароль. Придумываем и вводим.
Failed create CA private key
Исправим этот баг. Мне не совсем понятно, почему нельзя было всё сделать сразу по-человечески, чтобы люди не встречали эту ошибку. Копируем файл C:Program FilesOpenVPNeasy-rsavars.example, называем копию C:Program FilesOpenVPNeasy-rsavars.
Редактируем C:Program FilesOpenVPNeasy-rsavars. В данном файле можно много чего прописать, но я не буду на этом сейчас останавливаться подробно. Находим строку:
Собственно, ошибка и заключалась в том, что оболочка по какой-то причине не могла создать временный файл.
Генерируем ключ и сертификат центра сертификации:
Нас попросят для раза ввести пароль. Придумываем и вводим. После нас просят указать Common Name для центра сертификации, указываю «internet-lab.ru».
Операция проходит успешно.
Создаётся сертификат центра сертификации:
Сертификат создаётся на 10 лет, это значение можно переопределить в файле vars.
И ключ центра сертификации:
Ключ секретный, никому не показываем. он будет храниться на сервере.
Генерируем ключ и запрос на сертификат сервера, назовём сервер именем «server«:
Нас просят указать Common Name для сервера, указываю «internet-lab.ru».
Операция проходит успешно.
Создаётся запрос на сертификат сервера:
Ключ секретный, никому не показываем. он будет храниться на сервере.
Для создания сертификата сервера нужно подписать запрос на сертификат:
Для подписи нужно ввести слово «yes» и указать пароль от центра сертификации.
Создаётся сертификат сервера:
Сертификат сервера создаётся на 825 дней, это значение можно переопределить в файле vars.
Теперь создадим клиентский сертификат. По хорошему клиентский ключ следует запаролить, чтобы исключить утечку при передаче. Для этого есть несколько способов.
Первый
На клиентской машине генерируем запрос на сертификат клиента и ключ без пароля:
Второй
а машине с CA генерируем сертификат клиента и ключ с паролем:
Третий
Но поскольку я генерирую ключ сам для себя, то воспользуюсь небезопасным третьим способом.
Генерируем ключ и запрос на сертификат клиента, назовём клиента именем «client«:
Нас просят указать Common Name для клиента, указываю «v.pupkin».
Операция проходит успешно.
Создаётся запрос на сертификат клиента:
Для создания сертификата клиента нужно подписать запрос на сертификат:
Для подписи нужно ввести слово «yes» и указать пароль от центра сертификации.
Создаётся сертификат клиента:
Сертификат сервера создаётся на 825 дней, это значение можно переопределить в файле vars.
Генерируем ключ Диффи-Хеллмана:
Операция займёт некоторое время.
Я на сервере собираюсь использовать tls-auth для дополнительной проверки целостности, это обеспечит дополнительный уровень безопасности протокола SSL/TLS при создании соединения:
При использовании tls-auth на клиенте не понадобится ключ Диффи-Хеллмана, но пусть будет. Генерируем ключ tls-auth. Для этого запускаем командную строку под администратором и выполняем:
В папке C:Program FilesOpenVPNbin создаётся файл ta.key.
Переносим его в папку C:Program FilesOpenVPNeasy-rsapki.
Минимальный набор сертификатов сгенерирован.
Настройка OpenVPN сервера
Создадим конфигурационный файл сервера C:Program FilesOpenVPNconfig-autoserver.ovpn:
Открываем блокнотом и редактируем:
Лучше изучить конфигурационный файл, я предлагаю свой вариант конфига:
У меня здесь указаны пути к ключам и сертификатам, используется порт TCP 1194. Параметр duplicate-cn позволяет подключаться всем клиентам по одному общему сертификату, но это небезопасно и не рекомендуется. Используйте только в тестовых целях. Я использую для того, чтобы с помощью одного и того же сертификата подключиться к OpenVPN серверу и с клиентской машины и со смартфона. Параметр windows-driver wintun подключает использование драйвера WinTun. И что им стоило этот параметр указать в примере конфигурации? Остальное по умолчанию.
ВНИМАНИЕ: в конфигурационных файлах допускается в путях использование прямого слеша:
ca «C:/Program Files/OpenVPN/easy-rsa/pki/ca.crt»
или двойного обратного слеша:
ca «C:\Program Files\OpenVPN\easy-rsa\pki\ca.crt»
Запуск OpenVPN сервера
Переходим к службам:
Находим службу OpenVPNService.
Настраиваем на автоматический запуск при загрузке сервера.
Запускаем (перезапускаем) службу.
Согласно настройкам сервера в папке C:Program FilesOpenVPNlog должны появиться логи. Это один из инструментов администратора OpenVPN сервера.
Активировался сетевой адаптер OpenVPN Wintun.
Согласно настройкам сервера IP адрес 10.8.0.1.
Проверяем поднялся ли порт tcp 1194:
Порт должен прослушиваться.
Настройка firewall
Теперь нужно настроить firewall. Открываем Windows Defender Firewall with Advanced Security.
Переходим в Inbound Rules.
Создаём правило — New Rule.
Тип правила — Port. Next.
Протоколы и порты — TCP 1194. Как в настройках сервера. Next.
Действия — Allow the connection. Next.
Для всех сетей. Next.
Указываем название правила — OpenVPN. Next.
Правило создано, теперь firewall не блокирует входящие TCP соединения на 1194 порту.
Настройка OpenVPN клиента на ПК Windows
На компьютере клиента устанавливаем OpenVPN Connect.
Я скачиваю версию для Windows.
Принимаем лицензионное соглашение. Next.
OpenVPN Connect устанавливается.
Установка завершена. Finish.
На рабочем столе появляется иконка OpenVPN Connect.
На сервере файл примера конфигурации client.ovpn копируем как internet-lab.ru.ovpn.
Здесь нужно указать протокол, порт адрес сервера и прочие параметры. Пути к ключам и сертификатам относительные.
Создаём директорию, например, C:openvpn. Копируем в неё с сервера файлы:
Запускаем OpenVPN Connect.
Agree. Переключаемся на File.
Перетаскиваем мышкой в окно файл C:openvpninternet-lab.ru.ovpn, или указываем через кнопку Browse.
Ставим галку «Connect after import».
Соединение с OpenVPN сервером установлено.
В логах сервера видим, что соединился юзер v.pupkin.
Настройка OpenVPN клиента на смартфоне Android
Копируем на телефон все те же файлы, что и для клиента.
Источник
Source tarball (gzip)
Source tarball (xz)
Source zip
Windows 32-bit MSI installer
Windows 64-bit MSI installer
Windows ARM64 MSI installer
Overview of changes since OpenVPN 2.4
Faster connections
Crypto specific changes
Server-side improvements
Linux-specific features
Windows-specific features
Important notices
BF-CBC cipher is no longer the default
Connectivity to some VPN service provider may break
Linux packages are available from
Useful resources
The OpenVPN community project team is proud to release OpenVPN 2.5.3. Besides a number of small improvements and bug fixes, this release fixes a possible security issue with OpenSSL config autoloading on Windows (CVE-2022-3606). Updated OpenVPN GUI is also included in Windows installers.
Source tarball (gzip)
Source tarball (xz)
Source zip
Windows 32-bit MSI installer
Windows 64-bit MSI installer
Windows ARM64 MSI installer
Overview of changes since OpenVPN 2.4
Faster connections
Crypto specific changes
Server-side improvements
Linux-specific features
Windows-specific features
Important notices
BF-CBC cipher is no longer the default
Connectivity to some VPN service provider may break
Linux packages are available from
Useful resources
The OpenVPN community project team is proud to release OpenVPN 2.5.2. It fixes two related security vulnerabilities (CVE-2020-15078) which under very specific circumstances allow tricking a server using delayed authentication (plugin or management) into returning a PUSH_REPLY before the AUTH_FAILED message, which can possibly be used to gather information about a VPN setup. In combination with «—auth-gen-token» or a user-specific token auth solution it can be possible to get access to a VPN with an otherwise-invalid account. OpenVPN 2.5.2 also includes other bug fixes and improvements. Updated OpenSSL and OpenVPN GUI are included in Windows installers.
Source tarball (gzip)
Source tarball (xz)
Source zip
Windows 32-bit MSI installer
Windows 64-bit MSI installer
Overview of changes since OpenVPN 2.4
Faster connections
Crypto specific changes
Server-side improvements
Linux-specific features
Windows-specific features
Important notices
BF-CBC cipher is no longer the default
Connectivity to some VPN service provider may break
Linux packages are available from
Windows ARM64 installers
Our MSI installer do not currently support the Windows ARM64 platform. You need to use our NSI-based snapshot installers from here. We recommend using the latest installer that matches one of these patterns:
Useful resources
The OpenVPN community project team is proud to release OpenVPN 2.5.1. It includes several bug fixes and improvements as well as updated OpenSSL and OpenVPN GUI for Windows.
Source tarball (gzip)
Source tarball (xz)
Source zip
Windows 32-bit MSI installer
Windows 64-bit MSI installer
Overview of changes since OpenVPN 2.4
Faster connections
Crypto specific changes
Server-side improvements
Linux-specific features
Windows-specific features
Important notices
BF-CBC cipher is no longer the default
Connectivity to some VPN service provider may break
Linux packages are available from
Windows ARM64 installers
Our MSI installer do not currently support the Windows ARM64 platform. You need to use our NSI-based snapshot installers from here. We recommend using the latest installer that matches one of these patterns:
Useful resources
The OpenVPN community project team is proud to release OpenVPN 2.5.0 which is a new major release with many new features.
Source tarball (gzip)
Source tarball (xz)
Source zip
Windows 32-bit MSI installer
Windows 64-bit MSI installer
Overview of changes since OpenVPN 2.4
Faster connections
Crypto specific changes
Server-side improvements
Linux-specific features
Windows-specific features
Important notices
BF-CBC cipher is no longer the default
Connectivity to some VPN service provider may break
Linux packages are available from
Useful resources
The OpenVPN community project team is proud to release OpenVPN 2.4.11. It fixes two related security vulnerabilities (CVE-2020-15078) which under very specific circumstances allow tricking a server using delayed authentication (plugin or management) into returning a PUSH_REPLY before the AUTH_FAILED message, which can possibly be used to gather information about a VPN setup. This release also includes other bug fixes and improvements. The I602 Windows installers fix a possible security issue with OpenSSL config autoloading on Windows (CVE-2022-3606). Updated OpenSSL and OpenVPN GUI are included in Windows installers.
Source Tarball (gzip)
Source Tarball (xz)
Source Zip
Windows 7/8/8.1/Server 2012r2 installer (NSIS)
Windows 10/Server 2016/Server 2019 installer (NSIS)
A summary of the changes is available in Changes.rst, and a full list of changes is available here.
Please note that LibreSSL is not a supported crypto backend. We accept patches and we do test on OpenBSD 6.0 which comes with LibreSSL, but if newer versions of LibreSSL break API compatibility we do not take responsibility to fix that.
Also note that Windows installers have been built with NSIS version that has been patched against several NSIS installer code execution and privilege escalation problems. Based on our testing, though, older Windows versions such as Windows 7 might not benefit from these fixes. We thus strongly encourage you to always move NSIS installers to a non-user-writeable location before running them.
Please note that OpenVPN 2.4 installers will not work on Windows XP. The last OpenVPN version that supports Windows XP is 2.3.18, which is downloadable as 32-bit and 64-bit versions.
If you find a bug in this release, please file a bug report to our Trac bug tracker. In uncertain cases please contact our developers first, either using the openvpn-devel mailinglist or the developer IRC channel (#openvpn-devel at irc.libera.chat). For generic help take a look at our official documentation, wiki, forums, openvpn-users mailing list and user IRC channel (#openvpn at irc.libera.chat).
Important: you will need to use the correct installer for your operating system. The Windows 10 installer works on Windows 10 and Windows Server 2016/2019. The Windows 7 installer will work on Windows 7/8/8.1/Server 2012r2. This is because of Microsoft’s driver signing requirements are different for kernel-mode devices drivers, which in our case affects OpenVPN’s tap driver (tap-windows6).
This is primarily a maintenance release with bugfixes and small improvements. Windows installers include the latest OpenSSL version (1.1.1i) which includes security fixes.
A summary of the changes is available in Changes.rst, and a full list of changes is available here.
Please note that LibreSSL is not a supported crypto backend. We accept patches and we do test on OpenBSD 6.0 which comes with LibreSSL, but if newer versions of LibreSSL break API compatibility we do not take responsibility to fix that.
Also note that Windows installers have been built with NSIS version that has been patched against several NSIS installer code execution and privilege escalation problems. Based on our testing, though, older Windows versions such as Windows 7 might not benefit from these fixes. We thus strongly encourage you to always move NSIS installers to a non-user-writeable location before running them.
Please note that OpenVPN 2.4 installers will not work on Windows XP. The last OpenVPN version that supports Windows XP is 2.3.18, which is downloadable as 32-bit and 64-bit versions.
If you find a bug in this release, please file a bug report to our Trac bug tracker. In uncertain cases please contact our developers first, either using the openvpn-devel mailinglist or the developer IRC channel (#openvpn-devel at irc.libera.chat). For generic help take a look at our official documentation, wiki, forums, openvpn-users mailing list and user IRC channel (#openvpn at irc.libera.chat).
Important: you will need to use the correct installer for your operating system. The Windows 10 installer works on Windows 10 and Windows Server 2016/2019. The Windows 7 installer will work on Windows 7/8/8.1/Server 2012r2. This is because of Microsoft’s driver signing requirements are different for kernel-mode devices drivers, which in our case affects OpenVPN’s tap driver (tap-windows6).
Source Tarball (gzip)
Source Tarball (xz)
Source Zip
Windows 7/8/8.1/Server 2012r2 installer (NSIS)
Windows 10/Server 2016/Server 2019 installer (NSIS)
Instructions for verifying the signatures are available here.
This release is also available in our own software repositories for Debian and Ubuntu, Supported architectures are i386 and amd64. For details. look here.
This is primarily a maintenance release with bugfixes and improvements. This release also fixes a security issue (CVE-2020-11810, trac #1272) which allows disrupting service of a freshly connected client that has not yet not negotiated session keys. The vulnerability cannot be used to inject or steal VPN traffic.
A summary of the changes is available in Changes.rst, and a full list of changes is available here.
Please note that LibreSSL is not a supported crypto backend. We accept patches and we do test on OpenBSD 6.0 which comes with LibreSSL, but if newer versions of LibreSSL break API compatibility we do not take responsibility to fix that.
Also note that Windows installers have been built with NSIS version that has been patched against several NSIS installer code execution and privilege escalation problems. Based on our testing, though, older Windows versions such as Windows 7 might not benefit from these fixes. We thus strongly encourage you to always move NSIS installers to a non-user-writeable location before running them. We are moving to MSI installers in OpenVPN 2.5, but OpenVPN 2.4.x will remain NSIS-only.
OpenVPN GUI bundled with the Windows installer has a large number of new features compared to the one bundled with OpenVPN 2.3. One of major features is the ability to run OpenVPN GUI without administrator privileges. For full details, see the changelog. The new OpenVPN GUI features are documented here.
Please note that OpenVPN 2.4 installers will not work on Windows XP. The last OpenVPN version that supports Windows XP is 2.3.18, which is downloadable as 32-bit and 64-bit versions.
If you find a bug in this release, please file a bug report to our Trac bug tracker. In uncertain cases please contact our developers first, either using the openvpn-devel mailinglist or the developer IRC channel (#openvpn-devel at irc.libera.chat). For generic help take a look at our official documentation, wiki, forums, openvpn-users mailing list and user IRC channel (#openvpn at irc.libera.chat).
Important: you will need to use the correct installer for your operating system. The Windows 10 installer works on Windows 10 and Windows Server 2016/2019. The Windows 7 installer will work on Windows 7/8/8.1/Server 2012r2. This is because of Microsoft’s driver signing requirements are different for kernel-mode devices drivers, which in our case affects OpenVPN’s tap driver (tap-windows6).
Source Tarball (gzip)
Source Tarball (xz)
Source Zip
Windows 7/8/8.1/Server 2012r2 installer (NSIS)
Windows 10/Server 2016/Server 2019 installer (NSIS)
NOTE: the GPG key used to sign the release files has been changed since OpenVPN 2.4.0. Instructions for verifying the signatures, as well as the new GPG public key are available here.
We also provide static URLs pointing to latest releases to ease automation. For a list of files look here.
This release is also available in our own software repositories for Debian and Ubuntu, Supported architectures are i386 and amd64. For details. look here.
You can use EasyRSA 2 or EasyRSA 3 for generating your own certificate authority. The former is bundled with Windows installers. The latter is a more modern alternative for UNIX-like operating systems.
This is primarily a maintenance release with bugfixes and improvements. The Windows installers (I601) have several improvements compared to the previous release:
A summary of the changes is available in Changes.rst, and a full list of changes is available here.
Please note that LibreSSL is not a supported crypto backend. We accept patches and we do test on OpenBSD 6.0 which comes with LibreSSL, but if newer versions of LibreSSL break API compatibility we do not take responsibility to fix that.
Also note that Windows installers have been built with NSIS version that has been patched against several NSIS installer code execution and privilege escalation problems. Based on our testing, though, older Windows versions such as Windows 7 might not benefit from these fixes. We thus strongly encourage you to always move NSIS installers to a non-user-writeable location before running them. We are moving to MSI installers in OpenVPN 2.5, but OpenVPN 2.4.x will remain NSIS-only.
OpenVPN GUI bundled with the Windows installer has a large number of new features compared to the one bundled with OpenVPN 2.3. One of major features is the ability to run OpenVPN GUI without administrator privileges. For full details, see the changelog. The new OpenVPN GUI features are documented here.
Please note that OpenVPN 2.4 installers will not work on Windows XP. The last OpenVPN version that supports Windows XP is 2.3.18, which is downloadable as 32-bit and 64-bit versions.
If you find a bug in this release, please file a bug report to our Trac bug tracker. In uncertain cases please contact our developers first, either using the openvpn-devel mailinglist or the developer IRC channel (#openvpn-devel at irc.libera.chat). For generic help take a look at our official documentation, wiki, forums, openvpn-users mailing list and user IRC channel (#openvpn at irc.libera.chat).
Important: you will need to use the correct installer for your operating system. The Windows 10 installer works on Windows 10 and Windows Server 2016/2019. The Windows 7 installer will work on Windows 7/8/8.1/Server 2012r2. This is because of Microsoft’s driver signing requirements are different for kernel-mode devices drivers, which in our case affects OpenVPN’s tap driver (tap-windows6).
Source Tarball (gzip)
Source Tarball (xz)
Source Zip
Windows 7/8/8.1/Server 2012r2 installer (NSIS)
Windows 10/Server 2016/Server 2019 installer (NSIS)
NOTE: the GPG key used to sign the release files has been changed since OpenVPN 2.4.0. Instructions for verifying the signatures, as well as the new GPG public key are available here.
We also provide static URLs pointing to latest releases to ease automation. For a list of files look here.
This release is also available in our own software repositories for Debian and Ubuntu, Supported architectures are i386 and amd64. For details. look here.
You can use EasyRSA 2 or EasyRSA 3 for generating your own certificate authority. The former is bundled with Windows installers. The latter is a more modern alternative for UNIX-like operating systems.
This is primarily a maintenance release with bugfixes and improvements. One of the big things is enhanced TLS 1.3 support. A summary of the changes is available in Changes.rst, and a full list of changes is available here.
Please note that LibreSSL is not a supported crypto backend. We accept patches and we do test on OpenBSD 6.0 which comes with LibreSSL, but if newer versions of LibreSSL break API compatibility we do not take responsibility to fix that.
Also note that Windows installers have been built with NSIS version that has been patched against several NSIS installer code execution and privilege escalation problems. Based on our testing, though, older Windows versions such as Windows 7 might not benefit from these fixes. We thus strongly encourage you to always move NSIS installers to a non-user-writeable location before running them. We are moving to MSI installers in OpenVPN 2.5, but OpenVPN 2.4.x will remain NSIS-only.
OpenVPN GUI bundled with the Windows installer has a large number of new features compared to the one bundled with OpenVPN 2.3. One of major features is the ability to run OpenVPN GUI without administrator privileges. For full details, see the changelog. The new OpenVPN GUI features are documented here.
Please note that OpenVPN 2.4 installers will not work on Windows XP. The last OpenVPN version that supports Windows XP is 2.3.18, which is downloadable as 32-bit and 64-bit versions.
If you find a bug in this release, please file a bug report to our Trac bug tracker. In uncertain cases please contact our developers first, either using the openvpn-devel mailinglist or the developer IRC channel (#openvpn-devel at irc.libera.chat). For generic help take a look at our official documentation, wiki, forums, openvpn-users mailing list and user IRC channel (#openvpn at irc.libera.chat).
Important: you will need to use the correct installer for your operating system. The Windows 10 installer will not work on Windows 7/8/8.1/Server 2012r2. This is because Microsoft’s driver signing requirements and tap-windows6. For the same reason you need to use an older installer with Windows Server 2016. This older installer has a local privilege escalation vulnerability issue which we cannot resolve for Windows Server 2016 until tap-windows6 passes the HLK test suite on that platform. In the meanwhile we recommend Windows Server 2016 users to avoid installing OpenVPN/tap-windows6 driver on hosts where all users can’t be trusted. Users of Windows 7-10 and Server 2012r2 are recommended to update to latest installers as soon as possible.
Source Tarball (gzip)
Source Tarball (xz)
Source Zip
Windows 7/8/8.1/Server 2012r2 installer (NSIS)
Windows 10 installer (NSIS)
Windows Server 2016 installer (NSIS)
NOTE: the GPG key used to sign the release files has been changed since OpenVPN 2.4.0. Instructions for verifying the signatures, as well as the new GPG public key are available here.
We also provide static URLs pointing to latest releases to ease automation. For a list of files look here.
This release is also available in our own software repositories for Debian and Ubuntu, Supported architectures are i386 and amd64. For details. look here.
You can use EasyRSA 2 or EasyRSA 3 for generating your own certificate authority. The former is bundled with Windows installers. The latter is a more modern alternative for UNIX-like operating systems.
This is primarily a maintenance release with minor bugfixes and improvements, and one security relevant fix for the Windows Interactive Service. Windows installer includes updated OpenVPN GUI and OpenSSL. Installer I601 included tap-windows6 driver 9.22.1 which had one security fix and dropped Windows Vista support. However, in installer I602 we had to revert back to tap-windows 9.21.2 due to driver getting reject on freshly installed Windows 10 rev 1607 and later when Secure Boot was enabled. The failure was due to the new, more strict driver signing requirements. The 9.22.1 version of the driver is in the process of getting approved and signed by Microsoft and will be bundled in an upcoming Windows installer.
Please note that LibreSSL is not a supported crypto backend. We accept patches and we do test on OpenBSD 6.0 which comes with LibreSSL, but if newer versions of LibreSSL break API compatibility we do not take responsibility to fix that.
Also note that Windows installers have been built with NSIS version that has been patched against several NSIS installer code execution and privilege escalation problems. Based on our testing, though, older Windows versions such as Windows 7 might not benefit from these fixes. We thus strongly encourage you to always move NSIS installers to a non-user-writeable location before running them. Our long-term plan is to migrate to using MSI installers instead.
A summary of the changes is available in Changes.rst, and a full list of changes is available here.
OpenVPN GUI bundled with the Windows installer has a large number of new features compared to the one bundled with OpenVPN 2.3. One of major features is the ability to run OpenVPN GUI without administrator privileges. For full details, see the changelog. The new OpenVPN GUI features are documented here.
Please note that OpenVPN 2.4 installers will not work on Windows XP.
If you find a bug in this release, please file a bug report to our Trac bug tracker. In uncertain cases please contact our developers first, either using the openvpn-devel mailinglist or the developha er IRC channel (#openvpn-devel at irc.libera.chat). For generic help take a look at our official documentation, wiki, forums, openvpn-users mailing list and user IRC channel (#openvpn at irc.libera.chat).
Source Tarball (gzip)
Source Tarball (xz)
Source Zip
Windows installer (NSIS)
NOTE: the GPG key used to sign the release files has been changed since OpenVPN 2.4.0. Instructions for verifying the signatures, as well as the new GPG public key are available here.
We also provide static URLs pointing to latest releases to ease automation. For a list of files look here.
This release is also available in our own software repositories for Debian and Ubuntu, Supported architectures are i386 and amd64. For details. look here.
You can use EasyRSA 2 or EasyRSA 3 for generating your own certificate authority. The former is bundled with Windows installers. The latter is a more modern alternative for UNIX-like operating systems.
Источник
При запуске OpenVPN сервера или подключения из клиента OpenVPN вы можете столкнуться с ошибкой:
All TAP-Windows adapters on this system are currently in use Exiting due to fatal error
Или
All wintun adapters on this system are currently in use or disabled
Или
No TAP Adapter Available
Вы можете увидеть эту ошибку логе OpenVPN сервера (файл C:Program FilesOpenVPNlogopenvpn.log) или в клиенте OpenVPN GUI/
Это известная ошибка, связанная с тем что в Windows не установлены или некорректно работают виртуальные сетевые адаптеры TAP или wintun.
В OpenVPN 2.5+ вместо сетевых адаптеров TAP можно использовать WinTun от разработчиков WireGuard. По словам разработчиков, wintun драйвер работает быстрее чем классический OpenVPN драйвер TAP. Вы можете выбрать какой сетевой драйвер использовать при установке OpenVPN (TAP-Windows6 или Wintun).
Чтобы исправить эту ошибку нужно выполнить один из следующих шагов (расположены в порядке от самого простого к самому сложному):
- Перезапустить TAP-Windows/WinTun через панель управления.
- Переустановить драйвер TAP-Windows/Wintun;
- Создать новый сетевой адаптер для OpenVPN (или другого VPN клиента)
Выведите список всех TAP адаптеров, доступных клиенту OpenVPN:
cd "c:Program FilesOpenVPNbin"
“C:Program FilesOpenVPNbinopenvpn.exe” --show-adapters
В нашем случае установлен как Wintun, так и TAP адаптер:
'OpenVPN Wintun' {1199219C-C5AD-4722-B195-C80332101710} wintun 'OpenVPN TAP-Windows6' {9C6B25CA-0AF0-4752-AD4A-032947F6A6FD} tap-windows6
Для устранения ошибки обычно достаточно включить и отключить TAP адаптер в панели управления Windows, перезагрузить компьютер или переустановить клиент OpenVPN.
Вы можете включить и отключить сетевой адаптер WinTap из панели управления ncpa.cpl. Щелкните в панели управления по нужному адаптеру (TAP-Windows или Wintun Userspace Tunnel) и выберите Disable. Затем включите его (Enable.)
Также вы можете перезапустить все сетевые интерфейсе OpenVPN TAP с помощью PowerShell:
$TapAdapter= Get-NetAdapter| where {$_.InterfaceDescription -like "*TAP-Windows*"}
Disable-NetAdapter -Name $TapAdapter -Confirm:$false
Enable-NetAdapter -Name $TapAdapter -Confirm:$false
Если предыдущий способ не помог, попробуйте переустановить драйвера для вашего виртуального TAP адаптера вручную
- Скачайте последнюю версию TAP драйвера для Windows здесь (http://build.openvpn.net/downloads/releases/). Например, tap-windows-9.24.7.zip или wintun-amd64-0.8.1.
- Распакуйте архив, запустите Device Manager (
devmgmt.msc
), щелкните правой кнопкой по сетевому адаптеру TAP-Windows Adapter v9 в секции Network Adapters и выберите Update driver; - Укажите путь к каталогу с драйвером TAP.
Если вы не видите в панели управления TAP-Windows Adapter V9, откройте консоль Device Manager и включите опцию View-> Show hidden device.
Если в секции Network adapters есть устройства типа unknown device, откройте его свойства, перейдите на вкладку Details и проверьте значение свойства Device instance path.
Если здесь указано ROOTNET000, значит попробуйте выполнить авматотический поиск дрвйвера или вручную укажите путь к INF файлу (например C:Program FilesOpenVPN Connectdriverstapamd64win10OemVista.inf). После этого в панели управления появится ваш TAP адаптер.
В Windows 7 драйвер TAP, подписанный с помощью SHA256, не будет работать корректно, пока вы вручную не установите обновление KB4474419.
В самых редких случаях может помочь полное пересоздание TAP/Wintun адаптера.
Перед установкой нужно удалить существующий сетевой адаптер TAP и его драйвер. Для этого запустите программу C:Program FilesTAP-WindowsUninstall.exe или просто удалите устройство из Device Manager (Uninstall device).
Для установки TAP драйвера используется утилита tapinstall.exe.
Распакуйте архив и запустите установочный файл с правами администратора.
В новых версиях OpenVPN для управления виртуальными сетевыми адаптерами используется утилита c:Program FilesOpenVPNbintapctl.exe.
Вывести список сетевых адаптеров OpenVPN:
tapctl.exe list
Удалить адаптер:
tapctl.exe delete "OpenVPN TAP-Windows6"
Создать новый адаптер TAP:
tapctl.exe create
Создать новый wintun адаптер:
tapctl.exe create --hwid wintun
Обязательно проверьте, что новый сетевой адаптер TAP-Windows Adapter появился в списке сетевых подключения в панели управления Windows (консоль ncpa.cpl
).
Также ошибка “ All TAP-Windows adapters on the system are currently in use” может возникнуть, если вы пытаетесь установить несколько OpenVPN подключений с одного компьютера. Для каждого VPN подключения нужно создать свой адаптер.
Вы можете создать дополнительный WinTap сетевой адаптер с помощью скрипта (bat файл) %ProgramFiles%TAP-Windowsbinaddtap.bat.
Или с помощью команды (в современных версиях клиента OpenVPN):
c:Program FilesOpenVPNbintapctl.exe.tapctl.exe create
В результате в панели управления появится два (или более) сетевых адаптеров TAP-Windows Adapter V9, и вы сможете одновременно установить несколько одновременных OpenVPN сессий с разными серверами.
Теперь вы можете использовать ваше OpenVPN подключение в Windows и настроить автоматическое подключение к VPN. [/alert]
When starting an OpenVPN server or establishing a new connection using the OpenVPN client, you may encounter an error:
All TAP-Windows adapters on this system are currently in use
Exiting due to fatal error
Or:
All wintun adapters on this system are currently in use or disabled
Or:
No TAP Adapter Available
The error can be displayed in the OpenVPN server log (file C:Program FilesOpenVPNlogopenvpn.log
).
Or in the OpenVPN GUI client:
This is a known bug related to the fact that TAP or Wintun virtual network adapters are not installed or do not work correctly in Windows.
In OpenVPN 2.5+, you can use Wintun network adapter (from the developers of WireGuard) instead of the TAP adapter. According to the developers, the Wintun driver is faster than the classic OpenVPN TAP driver. You can choose which network driver to use when installing OpenVPN (TAP-Windows6 or Wintun).
To fix this error, you need to do one of the following (in order from easiest to hardest):
- Restart TAP-Windows/Wintun via the Control Panel;
- Reinstall the TAP-Windows/Wintun driver;
- Create a new virtual network adapter for OpenVPN (or another VPN client).
List all network adapters available to the OpenVPN client:
cd "c:Program FilesOpenVPNbin"
"C:Program FilesOpenVPNbinopenvpn.exe" --show-adapters
In this case, both Wintun and TAP adapters are installed:
'OpenVPN Wintun' {1199219C-C5AD-4722-B195-C80332101710} wintun
'OpenVPN TAP-Windows6' {9C6B25CA-0AF0-4752-AD4A-032947F6A6FD} tap-windows6<c/ode>
To fix the error, it is usually enough to enable and disable the TAP adapter in the Windows control panel, restart the computer, or reinstall the OpenVPN client.
You can enable and disable the WinTap adapter from the Network Connections (ncpa.cpl
). Right-click on the network adapter (TAP-Windows or Wintun Userspace Tunnel) and select Disable. Then re-enable it (Enable.)
You can also restart all OpenVPN TAP network interfaces using PowerShell:
$TapAdapter= Get-NetAdapter| where {$_.InterfaceDescription -like "*TAP-Windows*"}
Disable-NetAdapter -Name $TapAdapter -Confirm:$false
Enable-NetAdapter -Name "$TapAdapter -Confirm:$false
In rare cases, you need to manually reinstall the TAP virtual adapter. The latest TAP driver for Windows can be downloaded here (http://build.openvpn.net/downloads/releases/). For example, download the file tap-windows-9.24.5.zip.
- Download the latest TAP/Wintun driver for Windows here (http://build.openvpn.net/downloads/releases/). For example, tap-windows-9.24.7.zip or wintun-amd64-0.8.1;
- Extract the archive, open the Device Manager (
devmgmt.msc
), right-click on the TAP-Windows Adapter v9 device in the Network Adapters section and select Update driver; - Specify the path to the directory with the TAP driver
If you don’t see TAP-Windows Adapter V9 in the Control Panel, open the Device Manager console and enable the View-> Show hidden device option. If there is an Unknown Device in the Network adapters section, then try opening its properties, go to the Details tab. and check the value of the Device instance path property.
If ROOTNET000 is listed here, then try to automatically search for the driver or manually specify the path to the INF file (for example C:Program FilesOpenVPN Connectdriverstapamd64win10OemVista.inf). After that, your TAP adapter will appear in the network connections.
On Windows 7, a TAP driver signed with SHA256 will not work correctly until you manually install update KB4474419.
In rare cases, a complete re-creation of the OpenVPN TAP/Wintun adapter may help.
First, you need to remove the existing TAP network adapter and its driver. To do this, run C:Program FilesTAP-WindowsUninstall.exe or just uninstall the network adapter from Device Manager (Uninstall device).
The tapinstall.exe utility is used to add the TAP adapter and install driver.
Extract the archive and run the installation file as an administrator.
In modern versions of OpenVPN, the C:Program FilesOpenVPNbintapctl.exe tool should be used to manage virtual network adapters.
List OpenVPN network adapters:
tapctl.exe list
Remove OpenVPN virtual network adapter:
tapctl.exe delete "OpenVPN TAP-Windows6"
Create a new TAP adapter:
tapctl.exe create
Create a new Wintun adapter:
tapctl.exe create --hwid wintun
Be sure to check that the new TAP-Windows Adapter has appeared in the list of network connections in the Windows Control Panel (ncpa.cpl
console).
Also, the problem “wintun adapters on this system are currently in use
” may occur if you are trying to establish multiple OpenVPN connections from your device. You must create a separate adapter for each VPN connection.
In this case, you can create an additional WinTap network adapter using the batch file %ProgramFiles%TAP-Windowsbinaddtap.bat.
Or using the following command (in current versions of the OpenVPN client):
c:Program FilesOpenVPNbintapctl.exe.tapctl.exe create
As a result, two (or more) TAP-Windows Adapter V9 will appear in the network connections and will be able to establish two simultaneous OpenVPN sessions to different VPN servers.
You can now enable the OpenVPN connection on Windows and configure it to start on startup.