Openssl about easy-rsa HOT 28 CLOSED

Openssl about easy-rsa
 HOT 28
 CLOSED Хостинг

Recommend Projects

  • React photo

    React

  • Vue.js photo

    Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo

    Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo

    TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo

    Django

    The Web framework for perfectionists with deadlines.

  • Laravel photo

    Laravel

    A PHP framework for web artisans

  • D3 photo

    D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Visualization

    Some thing interesting about visualization, use data art

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo

    Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo

    Microsoft

    Open source projects and samples from Microsoft.

  • Google photo

    Google

    Google ❤️ Open Source for everyone.

  • Alibaba photo

    Alibaba

    Alibaba Open Source for everyone

  • D3 photo

    D3

    Data-Driven Documents codes.

  • Tencent photo

    Tencent

    China tencent open source team.

OpenVPN – это набор open source программ, который заслуженно является одним из самых популярных и легких решений для реализации защищенной VPN сети. OpenVPN позволяет объединить в единую сеть сервер и клиентов (даже находящиеся за NAT или файерволами), или объединить сети удаленных офисов. Серверную часть OpenVPN можно развернуть практически на всех доступных операционных системах (пример настройки OpenVPN на Linux). Вы можете установить OpenVPN сервер даже на обычный компьютер с десктопной редакцией Windows 10.

В этой статье, мы покажем, как установить OpenVPN сервер на компьютер с Windows 10, настроить OpenVPN клиент на другом Windows хосте и установить защищенное VPN подключение.

Установка службы OpenVPN сервера в Windows

Если вы планируете, OpenVPN сервер работал в автоматическом режиме, можно не устанавливать OpenVPN GUI. Обязательно установите OpenVPN Services.

установка openvpn сервера в windows 10

Начиная с версии OpenVPN 2.5, поддерживается драйвер WinTun от разработчиков WireGuard. Считается, что этот драйвер работает быстрее чем классический OpenVPN драйвер TAP. Установите драйвер Wintun, откажитесь от установки TAP-Windows6.

Установите OpenSSL утилиту EasyRSA Certificate Management Scripts.

WinTun драйвер openvpn

По умолчанию OpenVPN устаналивается в каталог C:\Program Files\OpenVPN.

сетевой адаптер Wintun Userspace Tunnel

Создаем ключи шифрования и сертификаты для OpenVPN

OpenVPN основан на шифровании OpenSSL. Это означает, что для обмена трафиком между клиентом и серверов VPN нужно сгенерировать ключи и сертификаты с использованием RSA3.

Откройте командную строку и перейдите в каталог easy-rsa:

cd C:\Program Files\OpenVPN\easy-rsa

Создайте копию файла:

copy vars.example vars

Откройте файл vars с помощью любого текстового редактора. Проверьте пути к рабочим директориям.

Обязательно поправьте переменную EASYRSA_TEMP_DIR следующим образом:

set_var EASYRSA_TEMP_DIR "$EASYRSA_PKI/temp"

EASYRSA_TEMP_DIR

Можете заполнить поля для сертификатов (опционально)

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 "

конфигурационный файл vars при установке сертфикатов easyrsa

Срок действия сертификатов задается с помощью:

#set_var EASYRSA_CA_EXPIRE 3650
#set_var EASYRSA_CERT_EXPIRE 825

Сохраните файл и выполните команду:

Следующие команды выполняются в среде EasyRSA Shell:

Должна появится надпись:

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:

Задайте дважды пароль для CA:

CA creation complete and you may now import and sign cert requests.

Данная команда сформировала:

  • Корневой сертификат центра сертификации: «C:\Program Files\OpenVPN\easy-rsa\pki\ca.crt»
  • Ключ центра сертификации «C:\Program Files\OpenVPN\easy-rsa\pki\private\ca.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 Files\OpenVPN\easy-rsa\pki\issued\server.crt»)

сертификат сервера openvpn

Теперь можно создать ключи Диффи-Хеллмана (займет длительное время):
./easyrsa gen-dh

Openssl about easy-rsa
 HOT 28
 CLOSED

Для дополнительной защиты VPN сервера желательно включить tls-auth. Данная технология позволяет использовать подписи HMAC к handshake-пакетам SSL/TLS, инициируя дополнительную проверку целостности. Пакеты без такой подписи будут отбрасываться VPN сервером. Это защитит вас от сканирования порта VPN сервера, DoS атак, переполнения буфера SSL/TLS.

Сгенерируйте ключ tls-auth:

cd C:\Program Files\OpenVPN\bin
openvpn --genkey secret ta.key

Должен появиться файл «C:\Program Files\OpenVPN\bin\ta.key». Переместите его в каталог C:\Program Files\OpenVPN\easy-rsa\pki

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

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

./easyrsa gen-req kbuldogov
./easyrsa sign-req client kbuldogov

пароль для защиты ключа клиента easyrsa

Данный ключ («C:\Program Files\OpenVPN\easy-rsa\pki\private\kbuldogov.key») нужно передать клиенту и сообщить пароль. Клиент может снять защиту паролем для ключа:

openssl rsa -in "C:\Program Files\OpenVPN\easy-rsa\pki\private\kbuldogov.key"-out "C:\Program Files\OpenVPN\easy-rsa\pki\private\kbuldogov_use.key"

снять защиту паролем с ключа клиента

Если вы хотите сгенерировать ключ, не защищенный паролем, нужно выполнить команду:

./easyrsa gen-req имяклиента nopass

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

Вы можете отохвать скомпрометированные сертификаты клиентов:
cd C:\Program Files\OpenVPN\easy-rsa
EasyRSA-Start.bat
./easyrsa revoke kbuldogov

Итак, мы сгенерировали набор ключей и сертификатов для OpenVPN сервера. Теперь можно настроить и запустить службу OpenVPN.

Конфигурационный файл OpenVPN сервера в Windows

Скопируйте типовой конфигурационный файл OpenVPN сервера:

copy "C:\Program Files\OpenVPN\sample-config\server.ovpn" "C:\Program Files\OpenVPN\config-auto\server.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, чтобы включить службу:

запуск службы OpenVPNService

Откройте панель управления, и убедитесь, что виртуальный сетевой адаптер OpenVPN Wintun теперь активен. Если нет, смотрите лог «C:\Program Files\OpenVPN\log\server.log»

сетевой адаптер openvpn wintun

Если при запуске OpenVPN вы видите в логе ошибку:

Options error: In C:\Program Files\OpenVPN\config-auto\server.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 «HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters» /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

Теперь на компьютер с клиентом OpenVPN нужно с сервера скопировать файлы:

  • ca.crt
  • kbuldogov.crt
  • kbuldogov.key
  • dh.pem
  • ta.key
  • kbuldogov.ovpn

импорт конфигурации клиента ovpn в openvpn клиент

Теперь импортируйте файл с профилем *.ovpn и попробуйте подключиться к вашему VPN серверу.

Если все настроено правильно, появится такая картинка. подключение к openvpn установлено

Проверьте теперь лог OpenVPN на клиенте «C:\Program Files\OpenVPN Connect\agent.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 Files\OpenVPN\log\openvpn.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

Сообщения: 888
Благодарности: 15

./easyrsa init-pki
./easyrsa build-ca

Первая:
./easyrsa init-pki
Отрабатывает отлично и публичные ключи создаются

Но по:
./easyrsa build-ca
Выдаёт ошибку:

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 и генерируй там ключи, либо юниксойд на виртуалке поднимать.
Люди добрые помогите чем можете Openssl about easy-rsa
 HOT 28
 CLOSED

Missing or invalid openssl openvpn

Сообщения: 888
Благодарности: 15

./easyrsa init-pki
./easyrsa build-ca

Первая:
./easyrsa init-pki
Отрабатывает отлично и публичные ключи создаются

Но по:
./easyrsa build-ca
Выдаёт ошибку:

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 и генерируй там ключи, либо юниксойд на виртуалке поднимать.
Люди добрые помогите чем можете Openssl about easy-rsa
 HOT 28
 CLOSED

Missing or invalid openssl openvpn

Сообщения: 888
Благодарности: 15

./easyrsa init-pki
./easyrsa build-ca

Первая:
./easyrsa init-pki
Отрабатывает отлично и публичные ключи создаются

Но по:
./easyrsa build-ca
Выдаёт ошибку:

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 и генерируй там ключи, либо юниксойд на виртуалке поднимать.
Люди добрые помогите чем можете Openssl about easy-rsa
 HOT 28
 CLOSED

OpenVPN 2.5.1 сервер на Windows

Openssl about easy-rsa
 HOT 28
 CLOSED

Openssl about easy-rsa
 HOT 28
 CLOSED

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

Ударим шифрованием по злобным брутфорсерам! Ставим OpenVPN 2.5.1 сервер на Windows Server 2016.

  • Встретимся с Easy-RSA 3.
  • Решим неочевидный баг с директорией временных файлов.
  • Освоим OpenVPN Connect, в том числе на Android.
  • Запилим адаптер OpenVPN WinTun.

Установка OpenVPN Server

Скачиваем дистрибутив для установки OpenVPN:

Openssl about easy-rsa
 HOT 28
 CLOSED

Доступна версия OpenVPN 2.5.1. Скачиваю Windows 64-bit MSI installer, файл OpenVPN-2.5.1-I601-amd64.msi.

Openssl about easy-rsa
 HOT 28
 CLOSED

Запускаем инсталлятор OpenVPN.

Openssl about easy-rsa
 HOT 28
 CLOSED

Открывается мастер установки, предлагают выбрать тип установки, естественно, нажимаем Customize. Установка по умолчанию нас не устроит.

Openssl about easy-rsa
 HOT 28
 CLOSED

OpenVPN GUI отключаю. Мне нужно, чтобы OpenVPN на сервере работал автоматически.

Openssl about easy-rsa
 HOT 28
 CLOSED

А OpenVPN Service, наоборот, включаю. OpenVPN у меня будет работать как служба Windows.

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

Openssl about easy-rsa
 HOT 28
 CLOSED

Начиная с версии OpenVPN 2.5 появилась поддержка драйвера WinTUN от разработчиков WireGuard. Говорят, что работает быстрее чем TAP-Windows6. Поэтому драйвер TAP-Windows6 отключаю и включаю Wintun.

ПРИМЕЧАНИЕ: для включения драйвера Wintun необходимо в файле конфигурации сервера включить параметр:

Openssl about easy-rsa
 HOT 28
 CLOSED

Утилиты OpenSSL EasyRSA 3 Certificate Management Scripts включаю. Install Now.

Openssl about easy-rsa
 HOT 28
 CLOSED

Начинается процесс установки OpenVPN.

Openssl about easy-rsa
 HOT 28
 CLOSED

Установка успешно завершена. Close.

Openssl about easy-rsa
 HOT 28
 CLOSED

Установка выполнена в директорию C:\Program Files\OpenVPN.

Openssl about easy-rsa
 HOT 28
 CLOSED

Openssl about easy-rsa
 HOT 28
 CLOSED

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

Запускаем командную строку под администратором и переходим в рабочую директорию C:\Program Files\OpenVPN\easy-rsa.

В этой папке есть всё необходимое для генерации сертификатов.

Openssl about easy-rsa
 HOT 28
 CLOSED

Для работы в Windows нас интересует файл EasyRSA-Start.bat.

Openssl about easy-rsa
 HOT 28
 CLOSED

Openssl about easy-rsa
 HOT 28
 CLOSED

Запускается оболочка EasyRSA Shell.

Инициализируем новую конфигурацию:

Openssl about easy-rsa
 HOT 28
 CLOSED

Появляется новая директория C:\Program Files\OpenVPN\easy-rsa\pki.

Openssl about easy-rsa
 HOT 28
 CLOSED

Генерируем ключ и сертификат центра сертификации. Внимание, сейчас мы наступим на грабли, исправим ошибку и снова вернёмся к генерации файлов для центра сертификации.

Нас попросят для раза ввести пароль. Придумываем и вводим.

Openssl about easy-rsa
 HOT 28
 CLOSED

Extra arguments given.
genrsa: Use -help for summary.

Failed create CA private key

Исправим этот баг. Мне не совсем понятно, почему нельзя было всё сделать сразу по-человечески, чтобы люди не встречали эту ошибку. Копируем файл C:\Program Files\OpenVPN\easy-rsa\vars.example, называем копию C:\Program Files\OpenVPN\easy-rsa\vars.

Openssl about easy-rsa
 HOT 28
 CLOSED

Редактируем C:\Program Files\OpenVPN\easy-rsa\vars. В данном файле можно много чего прописать, но я не буду на этом сейчас останавливаться подробно. Находим строку:

И заменяем её на:

Openssl about easy-rsa
 HOT 28
 CLOSED

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

Генерируем ключ и сертификат центра сертификации:

Нас попросят для раза ввести пароль. Придумываем и вводим. После нас просят указать Common Name для центра сертификации, указываю «internet-lab.ru».

Openssl about easy-rsa
 HOT 28
 CLOSED

Операция проходит успешно.

Openssl about easy-rsa
 HOT 28
 CLOSED

Создаётся сертификат центра сертификации:

Сертификат создаётся на 10 лет, это значение можно переопределить в файле vars.

Openssl about easy-rsa
 HOT 28
 CLOSED

И ключ центра сертификации:

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

Генерируем ключ и запрос на сертификат сервера, назовём сервер именем «server«:

Нас просят указать Common Name для сервера, указываю «internet-lab.ru».

Openssl about easy-rsa
 HOT 28
 CLOSED

Операция проходит успешно.

Openssl about easy-rsa
 HOT 28
 CLOSED

Создаётся запрос на сертификат сервера:

Openssl about easy-rsa
 HOT 28
 CLOSED

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

Для создания сертификата сервера нужно подписать запрос на сертификат:

Для подписи нужно ввести слово «yes» и указать пароль от центра сертификации.

Openssl about easy-rsa
 HOT 28
 CLOSED

Создаётся сертификат сервера:

Сертификат сервера создаётся на 825 дней, это значение можно переопределить в файле vars.

Openssl about easy-rsa
 HOT 28
 CLOSED

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

На клиентской машине генерируем запрос на сертификат клиента и ключ без пароля:

  • Переносим REQ файл запроса на сертификат клиента на машину с нашим CA, импортируем, подписываем, отсылаем сгенерированный сертификат CRT обратно клиенту:
  • а машине с CA генерируем сертификат клиента и ключ с паролем:

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

    Генерируем ключ и запрос на сертификат клиента, назовём клиента именем «client«:

    Нас просят указать Common Name для клиента, указываю «v.pupkin».

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Операция проходит успешно.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Создаётся запрос на сертификат клиента:

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Для создания сертификата клиента нужно подписать запрос на сертификат:

    Для подписи нужно ввести слово «yes» и указать пароль от центра сертификации.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Создаётся сертификат клиента:

    Сертификат сервера создаётся на 825 дней, это значение можно переопределить в файле vars.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Генерируем ключ Диффи-Хеллмана:

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Операция займёт некоторое время.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Я на сервере собираюсь использовать tls-auth для дополнительной проверки целостности, это обеспечит дополнительный уровень безопасности протокола SSL/TLS при создании соединения:

    • Сканирование прослушиваемых VPN-сервером портов
    • Инициация SSL/TLS-соединения несанкционированной машиной на раннем этапе
    • DoS-атаки и флуд на порты OpenVPN
    • Переполнение буфера SSL/TLS

    При использовании tls-auth на клиенте не понадобится ключ Диффи-Хеллмана, но пусть будет. Генерируем ключ tls-auth. Для этого запускаем командную строку под администратором и выполняем:

    Openssl about easy-rsa
 HOT 28
 CLOSED

    В папке C:\Program Files\OpenVPN\bin создаётся файл ta.key.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Переносим его в папку C:\Program Files\OpenVPN\easy-rsa\pki.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Минимальный набор сертификатов сгенерирован.

    Настройка OpenVPN сервера

    Создадим конфигурационный файл сервера C:\Program Files\OpenVPN\config-auto\server.ovpn:

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Открываем блокнотом и редактируем:

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

    У меня здесь указаны пути к ключам и сертификатам, используется порт 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 сервера

    Переходим к службам:

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Находим службу OpenVPNService.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Настраиваем на автоматический запуск при загрузке сервера.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Запускаем (перезапускаем) службу.

    Согласно настройкам сервера в папке C:\Program Files\OpenVPN\log должны появиться логи. Это один из инструментов администратора OpenVPN сервера.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Активировался сетевой адаптер OpenVPN Wintun.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Согласно настройкам сервера IP адрес 10.8.0.1.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Проверяем поднялся ли порт tcp 1194:

    Порт должен прослушиваться.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Настройка firewall

    Теперь нужно настроить firewall. Открываем Windows Defender Firewall with Advanced Security.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Переходим в Inbound Rules.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Создаём правило — New Rule.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Тип правила — Port. Next.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Протоколы и порты — TCP 1194. Как в настройках сервера. Next.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Действия — Allow the connection. Next.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Для всех сетей. Next.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Указываем название правила — OpenVPN. Next.

    Правило создано, теперь firewall не блокирует входящие TCP соединения на 1194 порту.

    Настройка OpenVPN клиента на ПК Windows

    На компьютере клиента устанавливаем OpenVPN Connect.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Я скачиваю версию для Windows.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Принимаем лицензионное соглашение. Next.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Openssl about easy-rsa
 HOT 28
 CLOSED

    OpenVPN Connect устанавливается.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Установка завершена. Finish.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    На рабочем столе появляется иконка OpenVPN Connect.

    На сервере файл примера конфигурации client.ovpn копируем как internet-lab.ru.ovpn.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Здесь нужно указать протокол, порт адрес сервера и прочие параметры. Пути к ключам и сертификатам относительные.

    Создаём директорию, например, C:\openvpn. Копируем в неё с сервера файлы:

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Запускаем OpenVPN Connect.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Agree. Переключаемся на File.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Перетаскиваем мышкой в окно файл C:\openvpn\internet-lab.ru.ovpn, или указываем через кнопку Browse.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Ставим галку «Connect after import».

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Openssl about easy-rsa
 HOT 28
 CLOSED

    Соединение с OpenVPN сервером установлено.

    Openssl about easy-rsa
 HOT 28
 CLOSED

    В логах сервера видим, что соединился юзер v.pupkin.

    Настройка OpenVPN клиента на смартфоне Android

    Копируем на телефон все те же файлы, что и для клиента.

    Easy-rsa fails with «Missing or invalid OpenSSL»

    Trying to use easyrsa on MacOS High Sierra, it failed with an error message

    140736197817224: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

    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:

    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

    Читайте также:  Раскрытие возможностей протокола RPD: подробное руководство
    Оцените статью
    Хостинги