Easy rsa windows установка

Как настроить сервер OpenVPN на Windows

OpenVPN позволяет настроить VPN-сервер как на платформе Windows Server, так и версии для рабочего компьютера (Windows 10, 8, 7).

Установка OpenVPN Server

Переходим на официальный сайт OpenVPN и скачиваем последнюю версию программы для соответствующей версии Windows:

Запускаем скачанный файл — нажимаем NextI Agree — и выставляем галочку EasyRSA 2 Certificate Management Scripts (нужен для возможности сгенерировать сертификаты):

. снова Next и Install — начнется установка. В процессе мастер может выдать запрос на подтверждение установки виртуального сетевого адаптера — соглашаемся (Install/Установить).

После завершения нажимаем Next — снимаем галочку Show ReadmeFinish.

Создание сертификатов

Переходим в папку установки OpenVPN (по умолчанию, C:\Program Files\OpenVPN) и создаем каталог ssl.

После переходим в папку C:\Program Files\OpenVPN\easy-rsa, создаем файл vars.bat, открываем его на редактирование и приводим к следующему виду:

set «PATH=%PATH%;%ProgramFiles%\OpenVPN\bin»
set HOME=%ProgramFiles%\OpenVPN\easy-rsa
set KEY_CONFIG=openssl-1.0.0.cnf
set KEY_DIR=keys
set KEY_SIZE=2048
set KEY_COUNTRY=RU
set KEY_PROVINCE=Sankt-Petersburg
set KEY_CITY=Sankt-Petersburg
set KEY_ORG=Organization
set KEY_EMAIL=master@dmosk.ru
set KEY_CN=DMOSK
set KEY_OU=DMOSK
set KEY_NAME=server.domain.ru
set PKCS11_MODULE_PATH=DMOSK
set PKCS11_PIN=12345678

* в каталоге easy-rsa уже есть файл vars.bat.sample — можно переименовать и использовать его.
** значение HOME не меняем, если оставили путь установки программы по умолчанию; KEY_DIR — каталог, куда будут генерироваться сертификаты; KEY_CONFIG может быть разным — его лучше посмотреть в файле vars.bat.sample или по названию соответствующего файла в папке easy-rsa; KEY_NAME желательно, чтобы соответствовал полному имени VPN-сервера; остальные опции можно заполнить произвольно.

Запускаем командную строку от имени администратора:

Переходим в каталог easy-rsa:

Чистим каталоги от устаревшей информации:

Снова запускаем vars.bat (после clean переопределяются некоторые переменные):

Теперь генерируем последовательность центра сертификации:

На все запросы нажимаем Enter.

Запускаем build-dh.bat (сертификат с использованием алгоритма Диффи-Хеллмана):

openssl dhparam -out keys\dh.pem 2048

* команда может выполняться долго — это нормально.

Генерируем сертификат для сервера:

* где cert — имя сертификата; на все запросы нажимаем Enter. В конце подтверждаем два раза корректность информации вводом y.

После переносим из папки C:\Program Files\OpenVPN\easy-rsa\keys в C:\Program Files\OpenVPN\ssl следующие файлы:

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

Переходим в папку C:\Program Files\OpenVPN\config и создаем файл server.ovpn. Открываем его на редактирование и приводим к следующему виду:

port 443
proto udp
dev tun
dev-node «VPN Server»
dh «C:\\Program Files\\OpenVPN\\ssl\\dh.pem»
ca «C:\\Program Files\\OpenVPN\\ssl\\ca.crt»
cert «C:\\Program Files\\OpenVPN\\ssl\\cert.crt»
key «C:\\Program Files\\OpenVPN\\ssl\\cert.key»
server 172.16.10.0 255.255.255.0
max-clients 32
keepalive 10 120
client-to-client
comp-lzo
persist-key
persist-tun
cipher DES-CBC
status «C:\\Program Files\\OpenVPN\\log\\status.log»
log «C:\\Program Files\\OpenVPN\\log\\openvpn.log»
verb 4
mute 20

* где port — сетевой порт (443 позволит избежать проблем при использовании Интернета в общественных местах, но может быть любым из свободных, например 1194, занятые порты в Windows можно посмотреть командой netstat -a); dev-node — название сетевого интерфейса; server — подсеть, в которой будут работать как сам сервер, так и подключенные к нему клиенты.
** так как в некоторых путях есть пробелы, параметр заносится в кавычках.
*** при использовании другого порта необходимо проверить, что он открыт в брандмауэре или на время тестирования отключить его.

В сетевых подключениях Windows открываем управление адаптерами — TAP-адаптер переименовываем в «VPN Server» (как у нас указано в конфигурационном файле, разделе dev-node):

Теперь открываем службы Windows и находим «OpenVpnService». Открываем ее, настраиваем на автозапуск и включаем:

Ранее переименованный сетевой интерфейс должен включиться:

VPN-сервер работает. Проверьте, что сетевой адаптер VPN Server получил IP 172.16.10.1. Если он получает что-то, на подобие, 169.254. выключаем сетевой адаптер — перезапускаем службу OpenVpnService и снова включаем сетевой адаптер.

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

На сервере:

Читайте также:  How to open the ports in linux

На сервере генерируем сертификат для клиента. Для этого сначала чистим файл index.txt в папке C:\Program Files\OpenVPN\easy-rsa\keys.

Затем запускаем командную строку от имени администратора:

Установка и настройка OpenVPN (клиента и сервера) и Easy-RSA 3 в CentOS 7

Установка и настройка OpenVPN (клиента и сервера) и Easy-RSA 3 в CentOS 7

OpenVPN — свободная реализация технологии виртуальной частной сети с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами.
Easy-RSA — программа для создания и ведения инфраструктуры открытых ключей (PKI) в openVPN

Установка необходимого софта

Добавляем репозиторий EPEL и обновляемся

Устанавливает OpenVPN 2.4 и Easy-RSA 3

Проверим их версии

Настройка Easy-RSA 3

Скопируем скрипты easy-rsa в каталог /etc/openvpn/

Переходим в каталог /etc/openvpn/easy-rsa/3/ и создаем там файл vars

Делаем файл исполняемым

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

Прежде чем создавать ключ, нам нужно инициализировать каталог PKI и создать ключ CA.

На этом необходимо придумать пароль для своего CA-ключа, чтобы сгенерировались файлы ‘ca.crt’ и ‘ca.key’ в каталоге ‘pki’.
Этот пароль нам потребуется дальше

Создадим ключ сервера (название сервера srv-openvpn)

опция nopass — отключение пароля для srv-openvpn

Создаем ключ сервера

Подпишем ключ srv-openvpn используя наш CA-сертификат

В процессе у нас спросят пароль, который мы задавали ранее

Подписываем ключ, используя CA-сертификат

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

Все сертификата OpenVPN сервера созданы.

  • Корневой сертификат расположен: ‘pki/ca.crt’
  • Закрытый ключ сервера расположен: ‘pki/private/srv-openvpn.key’
  • Сертификат сервера расположен: ‘pki/issued/srv-openvpn.crt’

Создание ключа клиента

Сгенерируем ключ клиента client-01

Генерируем ключ клиента

Теперь подпишем ключ client-01, используя наш CA сертификат

В процессе у нас спросят пароль, который мы задавали ранее

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

Проверим файлы сертификата

Дополнительная настройка OpenVPN сервера

Сгенерируем ключ Диффи-Хеллмана

Генерация ключа Диффи-Хеллмана

Если мы в дальнейшем планируем отзывать клиентские сертификаты, нам необходимо сгенерировать CRL ключ

В процессе у нас спросят пароль, который мы задавали ранее

Генерируем CRL-ключ

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

где client-02 имя сертификата, который мы отзываем

Все необходимые сертификаты созданы, теперь их надо скопировать в директории

Копируем сертификаты сервера

Копируем сертификаты клиента

Копируем ключи DH и CRL

. Проверить, надо ли перегенерировать CRL и заново копировать его в каталог /etc/openvpn/server/ после отзыва сертификата .

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

Создадим файл конфигурации server.conf

Настройка Firewalld

Активируем модуль ядра port-forwarding

Добавим службу openvpn в firewalld, и интерфейс tun0 в доверенную зону

Активируем ‘MASQUERADE’ для доверенной зоны firewalld

Запустим OpenVPN и добавим его в автозагрузку

Проверяем, запущен ли OpenVPN

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

Создадим файл конфигурации client-01.ovpn

В строке ‘remote xx.xx.xx.xx 1194‘ надо прописать IP-адрес вместо ‘xx.xx.xx.xx

Теперь для надо заархивировать сертификаты (ca.crt, client-01.crt), ключ клиента (client-01.key), файл конфигурации (client-01.ovpn), и передать их на ПК, который будет подключаться к OpenVPN серверу

Установим архиватор zip и создадим архив с файлами

Пробуем подключиться с другого ПК к OpenVPN серверу и смотрим лог:

Установка OpenVPN сервера на Windows

Установим и настроим OpenVPN сервер. На сервере используется операционная система Windows Server 2019.

OpenVPN — бесплатная реализация технологии виртуальной частной сети (VPN) для создания зашифрованных каналов связи между компьютерами типа точка-точка или сервер-клиенты за NAT и Firewall.

Установка OpenVPN Server

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

Прокручиваем вниз, выбираем стабильную версию. Я буду использовать версию 2.4.9.

Для операционной системы Windows доступны два пакета:

  • WINDOWS 7/8/8.1/SERVER 2012R2 INSTALLER (NSIS)
  • WINDOWS 10/SERVER 2016/SERVER 2019 INSTALLER (NSIS)

Для Windows Server 2019 подходит второй вариант, скачиваю.

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

Открывается мастер установки. Next.

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

Выбираем компоненты. Выделите EasyRSA 2 Certificate Management Scripts. Для сервера OpenVPN GUI можно не устанавливать, если вы планируете запускать OpenVPN в качестве службы. Next.

Выбираем путь установки, я оставляю по умолчанию C:\Program Files\OpenVPN. Install.

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

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

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

После установки у нас появляется новый сетевой адаптер TAP-Windows Adapter V9.

Читайте также:  При установке windows 10 файлы сохраняются

Адаптер отключён. Если по каким-то причинам нужно добавить несколько таких адаптеров, то загляните в папку C:\Program Files\TAP-Windows\bin.

Здесь есть скрипты для установки адаптера, добавления адаптера и удаления всех адаптеров.

Пример установки адаптера. В командной строке под администратором:

В большинстве случаев дополнительно настраивать сетевой адаптер не требуется.

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

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

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

Создаётся файл vars.bat с настройками и примером готовых параметров для создания CSR запроса сертификатов. Заполним его. Открываем vars.bat блокнотом.

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

Заполняем переменные в нижней части файла, указываем:

  • KEY_COUNTRY — страна
  • KEY_PROVINCE — область
  • KEY_CITY — город
  • KEY_ORG — организация
  • KEY_EMAIL — e-mail
  • KEY_CN — (Common Name) имя сервера
  • KEY_NAME — (Name) имя сервера
  • KEY_OU — (Organization Unit) отдел
  • PKCS11_MODULE_PATH — для токенов двухфакторной аутентификации, нам не требуется, укажу имя сервера
  • PKC11_PIN — ПИН для токенов двухфакторной аутентификации, нам не требуется, укажу 1234

Для каждого сертификата нужно будет указывать свои NAME и COMMON NAME, можно их не указывать в vars.bat, потому как при генерации все параметры будут запрашивать.

Обращаем внимание на строку:

Это имя конфигурационного файла. Находим его в рабочей директории.

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

Сохраняем все изменения и возвращаемся к командной строке. Подгружаем утверждённые нами переменные:

Очищаем директорию с ключами:

Сертификаты, которые мы будем создавать, появятся в папке C:\Program Files\OpenVPN\easy-rsa\keys. Сейчас эта папка очистилась, в ней два файла: index.txt и serial.

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

В процессе генерации сертификата нас будут спрашивать все те же параметры, которые мы указали в vars.bat. Если параметр нас устраивает (а он нас устраивает), просто нажимаем ввод и переходим к следующему вопросу. После завершения работы скрипта в папке C:\Program Files\OpenVPN\easy-rsa\keys появляется два файла:

  • ca.crt — сертификат центра сертификации
  • ca.key — ключ центра сертификации

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

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

В папке C:\Program Files\OpenVPN\easy-rsa\keys появляется файл:

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

В процессе генерации серверного сертификата нас будут спрашивать те же параметры, которые мы указали в vars.bat. Если параметр нас устраивает (а он нас снова устраивает), просто нажимаем ввод и переходим к следующему вопросу. На вопрос Sign the certificate отвечаем y. На вопрос 1 out of 1 certificate requests certified, commit отвечаем y.

После завершения работы скрипта в папке C:\Program Files\OpenVPN\easy-rsa\keys появляется четыре файла:

  • 01.pem — не понадобится
  • server.crt — сертификат сервера
  • server.csr — запрос сертификата сервера, не понадобится
  • server.key — ключ сервера

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

Генерируем ключ и сертификат первого клиента. Для каждого клиента нужно указывать своё имя файла, Name и Common Name. Назовём первого клиента именем «client«:

В процессе генерации клиентского сертификата нас будут спрашивать те же параметры, которые мы указали в vars.bat. Нас устраивают все параметры кроме NAME и COMMON NAME, на них отвечаем client. Помним, что для другого клиента имя должно быть другим. На вопрос Sign the certificate отвечаем y. На вопрос 1 out of 1 certificate requests certified, commit отвечаем y.

После завершения работы скрипта в папке C:\Program Files\OpenVPN\easy-rsa\keys появляется четыре файла:

  • 02.pem — не понадобится
  • client.crt — сертификат первого клиента
  • client.csr — запрос сертификата первого клиента, не понадобится
  • client.key — ключ первого клиента

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

В настройках сервера можно потом включить настройку duplicate-cn, которая позволяет подключаться всем клиентам по одному общему сертификату, но это небезопасно и не рекомендуется. Используйте только в тестовых целях.

# Uncomment this directive if multiple clients
# might connect with the same certificate/key
# files or common names. This is recommended
# only for testing purposes. For production use,
# each client should have its own certificate/key
# pair.
#
# IF YOU HAVE NOT GENERATED INDIVIDUAL
# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
# EACH HAVING ITS OWN UNIQUE «COMMON NAME»,
# UNCOMMENT THIS LINE OUT.
;duplicate-cn

Читайте также:  Gt 545 3gb mac os

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

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

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

В папке C:\Program Files\OpenVPN\easy-rsa\keys появляется файл:

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

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

Чтобы случайно всё не удалить, создадим папку C:\Program Files\OpenVPN\ssl и скопируем в неё сертификаты. Это будет рабочая папка сервера.

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

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

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

Указываем параметры сервера, пути к ключам и сертификатам. Здесь же пути к логам. Для тестирования можно использовать tcp протокол:

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

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

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

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

Активировался сетевой адаптер TAP-Windows Adapter V9.

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

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

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

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

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

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

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

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

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

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

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

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

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

На компьютере клиента устанавливаем OpenVPN точно также как на сервер. Галку EasyRSA 2 Certificate Management Scripts не указываем. Галку OpenVPN GUI указываем.

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

Копируем в отдельную папку for_client (её содержимое отправим потом на компьютер клиента) на сервере файлы для клиента:

Туда же из папки C:\Program Files\OpenVPN\sample-config копируем client.ovpn

Переименовываю client.ovpn в config.ovpn. Можно использовать любое имя, лучше созвучное с названием организации. Вот такой получился набор.

Редактируем файл config.ovpn.

Здесь указываем пути к ключам и сертификатам клиента. Не забываем про адрес и порт сервера, куда подключаться, для примера я указал internet-lab.ru UDP 1194.

Отправляем подготовленные файлы на компьютер клиента и копируем в C:\Program Files\OpenVPN\config.

На клиента запускаем OpenVPN GUI.

В трее появляется значок OpenVPN.

Правой кнопкой — подключиться.

Значок позеленел, назначен адрес 10.8.0.6.

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

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

Отзыв сертификата

Иногда нужно отозвать сертификат, выданный клиенту. Кто-то увольняется, кто-то палит сертификаты.

Где client — это имя клиента.

В папке C:\Program Files\OpenVPN\keys появляется файл:

Копируем его с заменой в рабочую директорию сервера C:\Program Files\OpenVPN\ssl.

Добавляем строчку в конфигурационный файл сервера:

Перезапускаем службу OpenVPN сервера.

Если в конфигурационном файле уже был ранее указан путь к crl.pem, то службу можно не перезапускать, OpenVPN перечитывает CRL один раз в час. Но в течении этого часа клиенты с отозванными сертификатами смогут продолжать подключаться и работать.

Для клиента с отозванным сертификатом процесс подключения будет «зависать». В логе можно увидеть:

Чтобы клиент не стучался постоянно на сервер, у него в конфиге есть опция:

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

Оцените статью