Настройка OpenVPV-сервера на Windows Server

Представляю подробную инструкцию по OpenVPN на Windows server 2012 c уровнем шифрования OpenSSL.  А также как подключить клиентов к созданной виртуальной частной сети. Здесь подробно описаны все параметры.

OpenVPN — открытая реализация технологии VPN — Virtual Private Network, которая предназначена для создания виртуальных частных сетей между группой территориально удаленных узлов поверх открытого канала интернет. OpenVPN подходит для таких задач, как безопасное удаленное сетевое подключение к серверу без открытия интернет-доступа к нему, как будто вы подключаетесь к хосту в своей локальной сети. Безопасность соединения достигается шифрованием OpenSSL.

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

Зайдите в систему от имени Администратора. Кто не знает как активировать учетную запись Администратора читайте тут.
Скачайте и установите актуальную версию OpenVPN. Запустите установщик, убедитесь что на третьем шаге мастера установки выбраны все компоненты для установки.

OpenVPN setup

OpenVPN установливаем в директорию по-умолчанию «C:\Program Files\OpenVPN».

Разрешаем добавление виртуального сетевого адаптера TAP в ответ на соответствующий запрос и дожидаемся завершения установки.

Генерация ключей (PKI) центра сертификации, сервера, клиента

Для управления парами «ключ/сертификат» всех узлов создаваемой частной сети используется утилита easy-rsa, работающая через командную строку.

Переходим в папку установки OpenVPN и создаем папки ssl и ccd.
Заходим в папку easy-rsa. Там есть файл vars.bat.sample, копируем его и переименовываем в vars.bat.

cd \
cd C:\Program Files\OpenVPN\easy-rsa
copy vars.bat.sample vars.bat

Открываем файл vars.bat. для редактирования, например, в программе Notepad++.
Перед FOR вводим rem, а перед set «PATH=%PATH%;C:\Program Files\OpenVPN\bin» удаляем rem.
А также правим следующие строки:
set KEY_DIR=keys //каталог, куда будут генерироваться сертификты;
set DH_KEY_SIZE=2048 //длина ключа Диффи Хельмана
set KEY_SIZE=2048 //длина личного ключа
set KEY_COUNTRY=RU //Код страны, RU для России
set KEY_PROVINCE=Moscow //Регион страны
set KEY_CITY=Moscow //Город
set KEY_ORG=Organization //Название организации или ФИО
set KEY_EMAIL=master@dmosk.ru //Адрес вашей почты
set KEY_CN=server //Общее имя
set KEY_OU=server //имя
set KEY_NAME=server.domain.ru //Имя сервера. Желательно, чтобы соответствовал полному имени VPN-сервера
set PKCS11_MODULE_PATH=DMOSK //путь к модулю pkcs#11, можно не менять
set PKCS11_PIN=12345678 //ПИН-код к смарт-карте, можно не менять

Проверяем, что в файле openssl-1.0.0.cnf параметр default_days (срок жизни сертификата) имеет значение 3650 или то, которое вам нужно.
Очищаем старые данные
vars.bat
clean-all.bat

Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появились файлы index.txt и serial.
Создаем ключ HMAC для дополнительной защиты от DoS-атак и флуда.
openvpn --genkey --secret %KEY_DIR%\ta.key
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появился файл ta.key.
Генерируем ключ Диффи Хельмана (процесс достаточно длительный).
build-dh.bat
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появился файл dh2048.pem
Генерируем сертификат
build-ca.bat
На все запросы нажимаем Enter.
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появились файлы ca.crt и ca.key.
Генерируем сертификат для сервера:
build-key-server.bat server
Где server — имя сертификата. Можно ввести другое. На все запросы нажимаем Enter. В конце подтверждаем два раза корректность информации вводом y.
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появились файлы server.crt, server.key и server.csr.
Создаем пользовательский сертификат removecrt для последующего создания файла crl.pem, который отвечает за проверку и последующий отзыв сертификатов. Можно обойтись и без него, но тогда нельзя будет отозвать сертификат пользователя. Так что лучше это сделать.
build-key removecrt
Нажимаем Enter, пока не появятся вопросы Common Name и Name. При их появлении вводим название нашего сертификата — removecrt. Завершаем вводом y два раза.
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появились файлы removecrt.crt, removecrt.key и removecrt.csr.
Далее вводим команду которая отвечает за отзыв сертификата и создает файл crl.pem
revoke-full removecrt
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появился файл crl.pem
Создаем сертификат пользователя
build-key user
где user — имя пользователя. Для каждого пользователя надо создавать свой сертификат, поэтому желательно давать осмысленные имена. Также напоминаю, что при появлении запроса Common Name и Name надо вводить название нашего сертификата user.
Не закрывая командную строку, проверяем, что в папке C:\Program Files\OpenVPN\easy-rsa\keys появились файлы user.crt, user.key и user.csr.
Есть второй способ создания сертификата пользователя. в этом случае меньше файлов надо передавать пользователю, но при подключении надо будет вводить пароль.
Вводим команду
build-key-pkcs12 user
Нажимаем Enter пока не появится запрос Export Password. Здесь вводим пароль пользователя, например 777777. Данный пароль будет назначен сертификату user.p12, который должен появиться в папке C:\Program Files\OpenVPN\easy-rsa\keys. Учтите, что и файлы конфигурации клиента будут разные. Но об этом позднее.
На этом генерация ключей закончена.
Из папки C:\Program Files\OpenVPN\easy-rsa\keys копируем в папку C:\Program Files\OpenVPN\ssl которую мы создали ранее следующие файлы:

  1. ca.crt
  2. server.crt
  3. server.key
  4. dh2048.pem
  5. ta.key

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

  1. ca.crt
  2. user.crt
  3. user.key
  4. ta.key

Для второго варианта

  1. user.p12
  2. ta.key

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

Переходим к настройке сервера VPN. Создаем файл конфигурации. В папке C:\Program Files\OpenVPN\sample-config есть образцы файлов конфигурации. Возьмем их за основу. Копируем файл server.ovpn в папку C:\Program Files\OpenVPN\config.
Открываем его в Notepad++. И исправляем:
port 1194 //Номер порта на котором будем слушать. Замечание см. ниже
proto udp //Указываем протокол для подключения.
dev tun //Создаем маршрутизируемый IP туннель.
ca "C:\\Program Files\\OpenVPN\\ssl\\ca.crt" //Указываем путь к доверенному сертификату.
cert "C:\\Program Files\\OpenVPN\\ssl\\Server.crt" //Указываем путь к сертификату сервера.
key "C:\\Program Files\\OpenVPN\\ssl\\Server.key" //Указываем путь к ключу сервера.
dh "C:\\Program Files\\OpenVPN\\ssl\\dh2048.pem" //Указываем путь к ключю Диффи Хельмана
server 172.16.32.0 255.255.255.0 //Указываем адресацию сети.
ifconfig-pool-persist "C:\\Program Files\\OpenVPN\\ccd\\ipp.txt" //Указываем файл с описанием сетей между клиентом и сервером.
client-config-dir "C:\\Program Files\\OpenVPN\\ccd" //Указываем каталог с описаниями конфигураций каждого из клиентов.
client-to-client //Разрешаем общаться клиентам внутри тоннеля.
keepalive 10 120
tls-auth "C:\\Program Files\\OpenVPN\\ssl\\ta.key" 0 //Указываем путь к ключу безопасности и устанавливаем параметр сервера 0
cipher AES-256-CBC //Указываем алгоритм шифрования должен быть одинаковый клиент/сервер.
comp-lzo //Включаем сжатие.
persist-key //Указываем не пересчитавать файлы ключей при перезапуске туннеля.
persist-tun
status "C:\\Program Files\\OpenVPN\\log\\logopenvpn-status.log" //Указываем путь к логу со статусом.
log "C:\\Program Files\\OpenVPN\\log\\openvpn.log" //Указываем путь к логу.
verb 3
crl-verify "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\crl.pem" //Указывает сверку по отозванным сертификатам.

Остальное не меняем. Сохраняем, закрываем.
Теперь замечание по поводу номера порта. Если вы собираетесь использовать нестандартный порт, то необходимо открыть этот порт в Брандмауэре Windows по протоколу UDP для входящих и исходящих подключений. А также убедиться, что у провайдера этот порт тоже открыт.
Теперь переходим Панель управления → Администрирование → Службы и находим OpenVPNService. Нажимаем правой кнопкой мыши и выбираем Свойства. Устанавливаем Тип запуска — Автоматически. Нажимаем Запустить, затем ОК. Закрываем все окна.

На рабочем столе запускаем OpenVPN GUI.
StartGUI
Сервер VPN запущен. В случае появления ошибок смотрите логи в папке C:\Program Files\OpenVPN\log.

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

Настройку клиента начинаем с того, что копируем с компьютера-сервера на компьютер-клиент следующие файлы:

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

Запускаем установку OpenVPN. Все компоненты оставляем как есть, путь установки тоже по умолчанию. Установка TAP-адаптера — да.
Переходим в папку установки OpenVPN и создаем папку ssl. в нее копируем файлы ключей и сертификатов для данного клиента.
Возвращаемся в каталог установки и из папки C:\Program Files\OpenVPN\sample-config копируем файл client.ovpn в папку C:\Program Files\OpenVPN\config.
Открываем его в Notepad++. И исправляем:
client //Указываем чтобы клиент забирал информацию о маршрутизации с сервера.
dev tun //Создаем маршрутизируемый IP туннель.
proto udp //Указываем протокол для подключения.
remote X.X.X.X 1194 //Указываем IP аддрес сервера с портом.
persist-key //Указываем не пересчитавать файлы ключей при перезапуске туннеля.
persist-tun
ca "C:\\Program Files\\OpenVPN\\ssl\\ca.crt" //Указываем путь к доверенному сертификату.
cert "C:\\Program Files\\OpenVPN\\ssl\\user.crt" //Указываем путь к сертификату сервера.
key "C:\\Program Files\\OpenVPN\\ssl\\user.key" //Указываем путь к ключу сервера.
tls-auth "C:\\Program Files\\OpenVPN\\ssl\\ta.key" 1 //Указываем путь к ключу безопасности и устанавливаем параметр клиента 1
cipher AES-256-CBC //Указываем алгоритм шифрования должен быть одинаковый клиент/сервер.
comp-lzo //Включаем сжатие.
verb 3

Не забываем изменить user на имя которое вы присвоили данному клиенту.
Сохраняем. Запускаем OpenVPN GUI на рабочем столе обязательно от имени администратора. Нажимаем правой кнопкой по появившемуся в трее значку и выбираем «Подключиться»:

Появится следующее окно.
OpenVPN-client
Теперь можно проверить соединение ping.
На этом пока все. Дополнительную настройку OpenVPN см здесь.

Эта запись опубликована в разделе   Windows.
Bookmark the   permalink.

admin has written 13 articles

Leave a Reply

Your email address will not be published. Required fields are marked *

* Copy This Password *

* Type Or Paste Password Here *

3 190 Spam Comments Blocked so far by Spam Free Wordpress

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>