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

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

Установка OpenVPN Server

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

Скачиваем OpenVPN для Windows

Запускаем скачанный файл - нажимаем Next - I Agree - и выставляем галочку «OpenVPN RSA Certificate Management Scripts» (нужен для возможности сгенерировать сертификаты):

Во время установки, ставим галочку OpenVPN RSA Certificate Management Scripts

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

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

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

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

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

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:

cd %ProgramFiles%\OpenVPN\easy-rsa

Запускаем vars.bat:

vars.bat

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

clean-all.bat

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

vars.bat

Теперь генерируем сертификат:

build-ca.bat

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

Запускаем build-dh.bat:

build-dh.bat

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

build-key-server.bat cert

* где 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\\dh2048.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 позволит избежать проблем при использовании Интернета в общественных местах, но может быть любым из свободных, например 1723, занятые порты в Windows можно посмотреть командой netstat -a); dev-node — название сетевого интерфейса; server — подсеть, в которой будут работать как сам сервер, так и подключенные к нему клиенты.
** так как в некоторых путях есть пробелы, параметр заносится в кавычках.

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

Переименовываем сетевой интерфейс в Windows

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

Настраиваем автозапуск OpenVpnService и включаем ее

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

Включенный TAP адаптер

VPN-сервер работает.

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

На сервере:

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

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

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

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

cd %ProgramFiles%\OpenVPN\easy-rsa

Запускаем vars.bat:

vars.bat

И генерируем сертификат пользователя:

build-key.bat clients

* на все запросы наживаем Enter, в конце — y.
** Мы можем на каждого клиента сгенерировать свой сертификат, а можем использовать один на всех. Первый вариант безопаснее, второй — удобнее. Каким пользоваться — решать исходя из личного опыта, требований политики безопасности компании и уровня доверия к пользователям.

Теперь из папки keys копируем файлы clients.crtclients.keyca.crt и dh2048.pem и переносим их на клиентский компьютер.

На клиенте:

Заходим на официальную страницу загрузки openvpn и скачиваем клиента для Windows:

Скачиваем OpenVPN для Windows

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

Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».

Переходим в папку C:\Program Files\OpenVPN\config. И копируем в нее сертификаты, которые перенесли с сервера.

Теперь открываем блокнот от имени администратора и вставляем следующие строки:

client
resolv-retry infinite
nobind
remote 192.168.0.15 443
proto udp
dev tun
comp-lzo
ca ca.crt
cert clients.crt
key clients.key
dh dh2048.pem
float
cipher DES-CBC
keepalive 10 120
persist-key
persist-tun
verb 0

* где 192.168.0.15 443IP-адрес OpenVPN-сервера и порт, на котором он принимает запросы. Для боевой среды это будет внешний адрес.

Сохраняем файл с именем config.ovpn в папке C:\Program Files\OpenVPN\config.

Запускаем с рабочего стола программу «OpenVPN GUI» от имени администратора (это важно).

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

Запуск подключения openvpn-клиента к серверу

Произойдет подключение и значок поменяет цвет с серого/желтого на зеленый.

Возможные проблемы

Большая часть проблем решается при помощи логов, которые находятся в папке C:\Program Files\OpenVPN\log. Уровень детализации лога контролируется параметром verb в конфигурационном файле сервера или клиента.

Также возможны следующие часто возникающие проблемы:

  1. Проблема: клиент постоянно пытается подключиться к серверу, но соединения не происходит или подключение зависает.
    Причина: сервер блокирует подключения по настроенному порту VPN (в нашем примере, 443).
    Решение: на сервере необходимо добавить 443 порт в исключения брандмауэра или отключить последний.
     
  2. Проблема: при попытке подключиться к серверу выскакивает ошибка «Не удалось подключиться к config».
    Причина: ошибка в настройках.
    Решение: перепроверьте каждую строчку файла конфигурации. Проверьте наличие всех файлов, на которые ссылаетесь в настройках.

 

Возможно, Вы это тоже захотите попробовать

  1. Настройка OpenVPN-сервера с аутентификацией через LDAP (Active Directory) на Ubuntu Server
  2. Установка и настройка OpenVPN на Linux CentOS 7
#Сети #Интернет #Сервера #Безопасность #Windows
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет