Comments
ecrist
added this to the
3.1 branch milestone
Oct 26, 2015
ecrist
added a commit
that referenced
this issue
Aug 23, 2018
Merge branch 'TinCanTech-libressl' This may also resolve the following issues: #130: cmd-opts nopass doesn't work #76: LibreSSL exposes misuse of $ENV #74: LibreSSL, Expected to find openssl command at: openssl #34: unexpected EOF when using init-pki on OSX 10.9 Signed-off-by: Eric F Crist <ecrist@secure-computing.net>
rolfchess
pushed a commit
to rolfchess/easy-rsa
that referenced
this issue
May 17, 2019
Merge branch 'TinCanTech-libressl' This may also resolve the following issues: OpenVPN#130: cmd-opts nopass doesn't work OpenVPN#76: LibreSSL exposes misuse of $ENV OpenVPN#74: LibreSSL, Expected to find openssl command at: openssl OpenVPN#34: unexpected EOF when using init-pki on OSX 10.9 Signed-off-by: Eric F Crist <ecrist@secure-computing.net>
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
Easy-rsa fails with «Missing or invalid OpenSSL»
Trying to use easyrsa on MacOS High Sierra, it failed with an error message
MacBook-Air:vpn me$ EasyRSA-3.0.3/easyrsa init-pki140736197817224:error:0E065068:configuration file routines:STR_COPY:variable has no value:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl- 22/libressl/crypto/conf/conf_def.c:573:line 3
Easy-RSA error:
Missing or invalid OpenSSL
Expected to find openssl command at: openssl
This seems to be a known issue with MacOS High Sierra which has migrated to Libressl instead of Openssl, and has an easy workaround:
MacBook-Air:vpn me$ EASYRSA_OPENSSL=/usr/local/Cellar/openssl/1.0.2n/bin/openssl EasyRSA-3.0.3/easyrsa init-pki
init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /Users/me/Documents/vpn/pki
Popular posts from this blog
Proxmox PCIe passthrough on HP gen8 — failed to set iommu for container
Problem Setting up PCIe passthrough from host to a VM was supposed to be easy. However, being an HP server, there was a bit more to it than usual. The VM simply refused to start when configured use Nvidia GPU from the host: vfio error: 0000:04:00.0: failed to setup container for group 21: failed to set iommu for container: Operation not permitted In dmesg there was a bit more background on what was wrong: fio-pci 0000:04:00.1: Device is ineligible for IOMMU domain attach due to platform RMRR requirement. Contact your platform vendor. Luckily, HP had issued a customer advisory on this. It describes a convoluted method to disable this RMRR per slot basis. It seems to work for me, so I thought I’d write down some notes if I ever run into this again. Basic setup Proxmox has decent instructions for preparing the host for passthrough setup in general, in summary: — add intel_iommu=on to GRUB_CMDLINE_LINUX_DEFAULT in the file /etc/default/grub — add vfio modules to /etc/modules
iMovie event library on a network drive, NAS
I was shocked to find that iMovie ’09 would not allow storing event libraries on networked disks. The AFP volume would show up, but remain non-functional with a yellow exclamation sign. There are plenty of instructions for hacking around the limitation with clumsy symbolic links. I discovered a much simpler approach, using an undocumented (?) setting built right into iMovie:»Allow Network Volumes». Use at your own risk, try the following command in Terminal defaults write -app iMovie allowNV -bool true
Содержание
- Easy rsa error missing or invalid openssl expected to find openssl command at openssl
- Easy rsa error missing or invalid openssl expected to find openssl command at openssl
- Easy rsa error missing or invalid openssl expected to find openssl command at openssl
- Easy rsa error missing or invalid openssl expected to find openssl command at openssl
- Easy rsa error missing or invalid openssl expected to find openssl command at openssl
Easy rsa error missing or invalid openssl expected to find openssl command at openssl
Сообщения: 886
Благодарности: 15
Профиль | Отправить PM | Цитировать
./easyrsa init-pki
./easyrsa build-ca
Первая:
./easyrsa init-pki
Отрабатывает отлично и публичные ключи создаются
Но по:
./easyrsa build-ca
Выдаёт ошибку:
easyrsa[2577]: openssl: not found
Missing or invalid OpenSSL
Expected to find openssl command at: openssl
Не находит OpenSSL подумал я, да и статьи в сети гласят об этом, но решения только для юникса, там всё просто, переустанови и всё зер-гуд.
на винде же я сносил OpenVPN ничем не помогло и комплектный OpenSSL так и не нашёлся.
Ну я давай искать отдельный пакет OpenSSL, скачал-установил..
Давай рыть копать как и где ищется этот openssl.exe
Нашёл в файлике easyrsa где указывается путь к openssl:
#set_var EASYRSA_OPENSSL »c:/OpenSSL-Win64/bin/openssl.exe»
Собсна вот я и указал путь :
set_var EASYRSA_OPENSSL «c:/OpenSSL-Win64/bin/openssl.exe»
Всё равно не найден. ну и процесс у меня остановился.. хоть бери старый роутер, зашивай в него OpenWRT и генерируй там ключи, либо юниксойд на виртуалке поднимать.
Люди добрые помогите чем можете
Источник
Easy rsa error missing or invalid openssl expected to find openssl command at openssl
Сообщения: 886
Благодарности: 15
Профиль | Отправить PM | Цитировать
./easyrsa init-pki
./easyrsa build-ca
Первая:
./easyrsa init-pki
Отрабатывает отлично и публичные ключи создаются
Но по:
./easyrsa build-ca
Выдаёт ошибку:
easyrsa[2577]: openssl: not found
Missing or invalid OpenSSL
Expected to find openssl command at: openssl
Не находит OpenSSL подумал я, да и статьи в сети гласят об этом, но решения только для юникса, там всё просто, переустанови и всё зер-гуд.
на винде же я сносил OpenVPN ничем не помогло и комплектный OpenSSL так и не нашёлся.
Ну я давай искать отдельный пакет OpenSSL, скачал-установил..
Давай рыть копать как и где ищется этот openssl.exe
Нашёл в файлике easyrsa где указывается путь к openssl:
#set_var EASYRSA_OPENSSL »c:/OpenSSL-Win64/bin/openssl.exe»
Собсна вот я и указал путь :
set_var EASYRSA_OPENSSL «c:/OpenSSL-Win64/bin/openssl.exe»
Всё равно не найден. ну и процесс у меня остановился.. хоть бери старый роутер, зашивай в него OpenWRT и генерируй там ключи, либо юниксойд на виртуалке поднимать.
Люди добрые помогите чем можете
Источник
Easy rsa error missing or invalid openssl expected to find openssl command at openssl
Сообщения: 886
Благодарности: 15
Профиль | Отправить PM | Цитировать
./easyrsa init-pki
./easyrsa build-ca
Первая:
./easyrsa init-pki
Отрабатывает отлично и публичные ключи создаются
Но по:
./easyrsa build-ca
Выдаёт ошибку:
easyrsa[2577]: openssl: not found
Missing or invalid OpenSSL
Expected to find openssl command at: openssl
Не находит OpenSSL подумал я, да и статьи в сети гласят об этом, но решения только для юникса, там всё просто, переустанови и всё зер-гуд.
на винде же я сносил OpenVPN ничем не помогло и комплектный OpenSSL так и не нашёлся.
Ну я давай искать отдельный пакет OpenSSL, скачал-установил..
Давай рыть копать как и где ищется этот openssl.exe
Нашёл в файлике easyrsa где указывается путь к openssl:
#set_var EASYRSA_OPENSSL »c:/OpenSSL-Win64/bin/openssl.exe»
Собсна вот я и указал путь :
set_var EASYRSA_OPENSSL «c:/OpenSSL-Win64/bin/openssl.exe»
Всё равно не найден. ну и процесс у меня остановился.. хоть бери старый роутер, зашивай в него OpenWRT и генерируй там ключи, либо юниксойд на виртуалке поднимать.
Люди добрые помогите чем можете
Источник
Easy rsa error missing or invalid openssl expected to find openssl command at openssl
Сообщения: 886
Благодарности: 15
Профиль | Отправить PM | Цитировать
./easyrsa init-pki
./easyrsa build-ca
Первая:
./easyrsa init-pki
Отрабатывает отлично и публичные ключи создаются
Но по:
./easyrsa build-ca
Выдаёт ошибку:
easyrsa[2577]: openssl: not found
Missing or invalid OpenSSL
Expected to find openssl command at: openssl
Не находит OpenSSL подумал я, да и статьи в сети гласят об этом, но решения только для юникса, там всё просто, переустанови и всё зер-гуд.
на винде же я сносил OpenVPN ничем не помогло и комплектный OpenSSL так и не нашёлся.
Ну я давай искать отдельный пакет OpenSSL, скачал-установил..
Давай рыть копать как и где ищется этот openssl.exe
Нашёл в файлике easyrsa где указывается путь к openssl:
#set_var EASYRSA_OPENSSL »c:/OpenSSL-Win64/bin/openssl.exe»
Собсна вот я и указал путь :
set_var EASYRSA_OPENSSL «c:/OpenSSL-Win64/bin/openssl.exe»
Всё равно не найден. ну и процесс у меня остановился.. хоть бери старый роутер, зашивай в него OpenWRT и генерируй там ключи, либо юниксойд на виртуалке поднимать.
Люди добрые помогите чем можете
Источник
Easy rsa error missing or invalid openssl expected to find openssl command at openssl
Сообщения: 886
Благодарности: 15
Профиль | Отправить PM | Цитировать
./easyrsa init-pki
./easyrsa build-ca
Первая:
./easyrsa init-pki
Отрабатывает отлично и публичные ключи создаются
Но по:
./easyrsa build-ca
Выдаёт ошибку:
easyrsa[2577]: openssl: not found
Missing or invalid OpenSSL
Expected to find openssl command at: openssl
Не находит OpenSSL подумал я, да и статьи в сети гласят об этом, но решения только для юникса, там всё просто, переустанови и всё зер-гуд.
на винде же я сносил OpenVPN ничем не помогло и комплектный OpenSSL так и не нашёлся.
Ну я давай искать отдельный пакет OpenSSL, скачал-установил..
Давай рыть копать как и где ищется этот openssl.exe
Нашёл в файлике easyrsa где указывается путь к openssl:
#set_var EASYRSA_OPENSSL »c:/OpenSSL-Win64/bin/openssl.exe»
Собсна вот я и указал путь :
set_var EASYRSA_OPENSSL «c:/OpenSSL-Win64/bin/openssl.exe»
Всё равно не найден. ну и процесс у меня остановился.. хоть бери старый роутер, зашивай в него OpenWRT и генерируй там ключи, либо юниксойд на виртуалке поднимать.
Люди добрые помогите чем можете
Источник
Hi All,
SO I’m trying to get openvpn working on openbsd 5.9 and sofar its been nothing but a nightmare with libre and easyrsa.
The install guide I am using is http://www.openbsdsupport.org/openvp…MissingOpenSSL
the fix was here: https://forums.openvpn.net/viewtopic.php?t=17800
For the sake of testing I installed EasyRsa-v3.0.0-rc2
OpenSSL> version
LibreSSL 2.3.2
My install process is:
pkg_add openvpn
install -m 700 -d /etc/openvpn/private
install -m 700 -d /etc/openvpn/private-client-conf
install -m 755 -d /etc/openvpn/certs
install -m 755 -d /var/log/openvpn
install -m 755 -d /var/openvpn/chrootjail/etc/openvpn
install -m 755 -d /etc/openvpn/chrootjail/etc/openvpn/ccd # client custom configuration dir
install -m 755 -d /var/openvpn/chrootjail/var/openvpn
install -m 755 -d /var/openvpn/chrootjail/tmp
mv /etc/openvpn/ccd/ /etc/openvpn/crl.pem /var/openvpn/chrootjail/etc/openvpn/
ln -s /var/openvpn/chrootjail/etc/openvpn/crl.pem /etc/openvpn/crl.pem
ln -s /var/openvpn/chrootjail/etc/openvpn/ccd/ /etc/openvpn/
ln -s /var/openvpn/chrootjail/etc/openvpn/replay-persist-file /etc/openvpn/replay-persist-file
everything except that move works..
tar czvf /ins/easyrsa.old.tgz /etc/openvpn/easy-rsa/3/
cd /etc/openvpn/easy-rsa/3/
tar tzvf /root/EasyRSA-3.0.0-rc2.tgz
tar tzvsf +EasyRSA[^/]*/++gp /root/EasyRSA-3/EasyRSA-3.0.0-rc2.tgz ‘*/easyrsa’ ‘*/openssl*.cnf’ ‘*/vars.example’ ‘*/x509-types’
tar xzvsf +EasyRSA[^/]*/++gp /3/EasyRSA-3.0.0-rc2.tgz ‘*/easyrsa’ ‘*/openssl*.cnf’ ‘*/vars.example’ ‘*/x509-types’
install -m 700 -d /etc/openvpn/private
install -m 700 -d /etc/openvpn/private-client-conf
install -m 755 -d /etc/openvpn/certs
install -m 755 -d /var/log/openvpn
install -m 755 -d /var/openvpn/chrootjail/etc/openvpn
install -m 755 -d /etc/openvpn/chrootjail/etc/openvpn/ccd # client custom configuration dir
install -m 755 -d /var/openvpn/chrootjail/var/openvpn
install -m 755 -d /var/openvpn/chrootjail/tmp
mv /etc/openvpn/ccd/ /etc/openvpn/crl.pem /var/openvpn/chrootjail/etc/openvpn/
ln -s /var/openvpn/chrootjail/etc/openvpn/crl.pem /etc/openvpn/crl.pem
ln -s /var/openvpn/chrootjail/etc/openvpn/ccd/ /etc/openvpn/
ln -s /var/openvpn/chrootjail/etc/openvpn/replay-persist-file /etc/openvpn/replay-persist-file
install -m 700 -d /etc/openvpn/easy-rsa /etc/openvpn/easy-rsa/3
cd /etc/openvpn/easy-rsa/3/
ls -alpd easyrsa vars*
less vars.example
tar czvf /ins/easyrsa.old.tgz /etc/openvpn/easy-rsa/3/
cd /etc/openvpn/easy-rsa/3/
tar tzvf /ins/EasyRSA-3.0.0-rc2.tgz
tar tzvsf +EasyRSA[^/]*/++gp /ins/EasyRSA-3.0.0-rc2.tgz ‘*/easyrsa’ ‘*/openssl*.cnf’ ‘*/vars.example’ ‘*/x509-types’
tar xzvsf +EasyRSA[^/]*/++gp /ins/EasyRSA-3.0.0-rc2.tgz ‘*/easyrsa’ ‘*/openssl*.cnf’ ‘*/vars.example’ ‘*/x509-types’
Then I get to this part
Optional — fixing error «Missing or invalid OpenSSL»
If you get an error with easyrsa like Missing or invalid OpenSSL or Expected to find openssl command at: openssl then search forward in this document for Appendix A — fixing error Missing or invalid OpenSSL
That was needed in November 2014 with OpenBsd 5.6 and EasyRSA-3.0.0-rc2
Appendix A — fixing error Missing or invalid OpenSSL
If you get an error with easyrsa like:
Easy-RSA error:
Missing or invalid OpenSSL
Expected to find openssl command at: openssl
Check the openssl version
openssl version
LibreSSL 2.0
If the version does not start with OpenSSL — then might be not recognized by easyrsa script and then needs correction. That was the case for OpenBsd version 5.6 and EasyRSA-3.0.0-rc2.
The fix is quite simple (but verify that all further executions of easyrsa are working correctly).
I mod the file as noted. I dont get any errors.. but the Diff command returns no changes. ?!?!?
cp -p easyrsa easyrsa.old
## cat easyrsa.old | perl -pe ‘s/([ «${val.. *}» = «)OpenSSL(» ] || die)/$1LibreSSL$2/’ > easyrsa
cat easyrsa.old | perl -pe ‘s/([)( «${val.. *}» = «)(OpenSSL)(«)( ] || die)/$1$2$3$4 -o $2LibreSSL$4$5/’ > easyrsa;
diff easyrsa easyrsa.old
291c291
< [ «${val%% *}» = «LibreSSL» ] || die «
—
[ «${val%% *}» = «OpenSSL» -o «${val%% *}» = «LibreSSL» ] || die «
ls -alp /etc/openvpn/private/vpn-ta.key || openvpn —genkey —secret /etc/openvpn/private/vpn-ta.key
I can generate the private key
it shows up here…
/etc/openvpn/private/vpn-ta.key
I get right up to here
./easyrsa —batch=0 init-pki # creates empty dirs pki/ pki/private/ pki/reqs/ . batch=1 — overwrite/delete without asking
And it dies horrifically The Diff command does not report any changes.
ki/private/ pki/reqs/ . batch=1 — overwrite/delete without asking <
560871696:error:0E065068:configuration file routines:STR_COPY:variable has no value:/usr/src/lib/libcrypto/crypto/../../libssl/src/crypto/conf/conf_def.c:573:line 3
Easy-RSA error:
Missing or invalid OpenSSL
Expected to find openssl command at: openssl
————————
I’ve never set up openvpn but just wondering:
DO I need this easy rsa? can this stuff be generated with libre its self? if so what would I need? should i do all this stuff on a linux box with openssl?
any help would be awesome.. thanks