Security Lab

Настройка OpenVPN-сервера на Windows — полное пошаговое руководство

Настройка OpenVPN-сервера на Windows — полное пошаговое руководство

Иногда хочется надёжного VPN-сервера «здесь и сейчас»: без покупки лишнего железа, без плясок с пакетным менеджером, — прямо на привычной Windows-машине. OpenVPN остаётся золотым стандартом — открытый исходный код, сотни аудитов , поддержка почти любой ОС и, что особенно приятно, абсолютно бесплатная лицензия.
К тому же последняя стабильная ветка 2.6.x для Windows распространяется в виде обычного MSI-установщика и уже включает драйвер DCO, ускоряющий работу туннеля на уровне ядра. 

Минимальные требования и подготовка

Нам понадобится:

  • ПК или сервер под управлением Windows 10/11 Pro или Windows Server 2019/2022/2025;
  • Локальная учётка с правами администратора;
  • Доступ к порту 1194/UDP на внешнем фаерволе (можно поменять, но именно этот порт «знают» многие клиенты);
  • Свободные 200 МБ на диске (реально меньше, но оставим запас под логи);
  • Кружка кофе на случай «а где же опять галочка — я только что её здесь видел?».

Шаг 1. Загружаем и ставим OpenVPN 2.6

Идём на официальную страницу Community Downloads и скачиваем актуальный MSI (amd64 для 64-битной системы, arm64 для Surface Pro X и т. д.). Помимо самого сервера в пакет входят:

  1. OpenSSL 3, собранный специально под Windows;
  2. OpenVPN GUI (можно скрыть, если сервер будет работать как служба);
  3. Служба OpenVPNService, готовая стартовать с системным драйвером.

Запускаем установщик, жмём Next → I Agree → Install и ждём, пока появится заветная надпись Completed. Всё, серверный бинарник openvpn.exe уже лежит в C:Program FilesOpenVPNbin

Шаг 2. Скачиваем EasyRSA 3.1 и разворачиваем собственный центр сертификации

Чтобы клиенты доверяли нашему серверу, нужен PKI: корневой сертификат CA, сертификат сервера и каждого клиента. Самый популярный способ — маленькая утилита EasyRSA 3, а с версии 3.1 она наконец поставляется в виде готового архива для Windows: берём EasyRSA-3.1.x-win64.zip на GitHub, распаковываем, например, в C:EasyRSA.

Инициализация PKI

Открываем PowerShell от имени администратора:

cd C:EasyRSA
 .easyrsa init-pki
 

Команда создаст папку pki и пару полезных скриптов.

Создаём корневой сертификат (CA)

.easyrsa build-ca
 

Система предложит дважды ввести защищённый пароль и задать Common Name. Совет: используйте что-нибудь говорящeе, например Company-VPN-CA. Если потеряете пароль, придётся пересоздавать всю инфраструктуру PKI — к вопросу о резервных копиях!

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

.easyrsa build-server-full server01 nopass
 

Параметр nopass убирает парольную защиту приватного ключа сервера, чтобы OpenVPN мог стартовать автоматически. Для особо параноидальных можно оставить пароль и использовать утилиту NSSM , но сегодня делаем быстро и сердито.

Генерируем сертификаты клиентов

.easyrsa build-client-full alice
 .easyrsa build-client-full bob
 
Каждому клиенту — свой сертификат. Потом будет удобно отозвать «забывчивый» ноутбук, не трогая остальных.

Файл ta.key (HMAC)

Для дополнительной защиты от DoS запускаем:

openvpn --genkey --secret ta.key
 
Файл кладём в ту же папку pki.

Шаг 3. Создаём конфигурацию сервера

В C:Program FilesOpenVPNconfig создаём файл server.ovpn со следующим содержимым:

port 1194
 proto udp
 dev tun
 server 10.8.0.0 255.255.255.0
 push "redirect-gateway def1 bypass-dhcp"
 push "dhcp-option DNS 1.1.1.1"
 push "dhcp-option DNS 8.8.8.8"
 
 ca   "C:EasyRSApkica.crt"
 cert "C:EasyRSApkiissuedserver01.crt"
 key  "C:EasyRSApkiprivateserver01.key"
 dh   "C:EasyRSApkidh.pem"
 tls-crypt "C:EasyRSAta.key"
 
 keepalive 10 120
 cipher AES-256-GCM
 user nobody
 group nogroup
 persist-key
 persist-tun
 verb 3
 

Несколько моментов:

  • server 10.8.0.0 255.255.255.0 — виртуальная подсеть, где будут жить все VPN-клиенты;
  • push "redirect-gateway ..." — форсируем весь трафик через туннель; если нужно только «доступ к офису», уберите;
  • tls-crypt вместо tls-auth — вшиваем HMAC прямо в TLS-рукопожатие, меньше утечек метаданных.

Шаг 4. Запускаем OpenVPN как службу

После установки у вас уже есть сервис OpenVPNServiceInteractive. Он запускает отдельный процесс для каждой .ovpn, что лежит в config-auto. Поэтому:

mkdir "C:Program FilesOpenVPNconfig-auto"
 copy "C:Program FilesOpenVPNconfigserver.ovpn" ^
      "C:Program FilesOpenVPNconfig-auto"
 

Теперь идём в Services → OpenVPN Service, ставим Startup type — Automatic и жмём Start. Сервер готов принимать подключения даже до входа пользователя. 

Шаг 5. Открываем порт в брандмауэре Windows

PowerShell-однострочник спасёт от кликов:

New-NetFirewallRule -DisplayName "OpenVPN-UDP-1194" `
     -Direction Inbound -Protocol UDP -LocalPort 1194 -Action Allow
 

Не забудьте проделать аналогичное на внешнем маршрутизаторе или облаке — иначе клиенты снаружи просто не увидят сервер.

Шаг 6. Создаём клиентские профили (.ovpn)

Самый удобный способ — файл «всё-в-одном». Достаточно упаковать сертификаты прямо внутрь:

client
 dev tun
 proto udp
 remote vpn.example.com 1194
 resolv-retry infinite
 nobind
 persist-key
 persist-tun
 remote-cert-tls server
 cipher AES-256-GCM
 verb 3
 
 
 # вставьте содержимое ca.crt
 
 
 # вставьте содержимое alice.crt
 
 
 # вставьте содержимое alice.key
 
 
 # вставьте содержимое ta.key
 
 

Эти .ovpn-файлы без проблем открываются в OpenVPN Connect v3 для Windows, macOS, iOS, Android и даже в systemd-friendly NetworkManager на Linux. Для Windows-клиентов начиная с версии 3.2 доступен режим Service Daemon, запускающий туннель ещё до логина пользователя (актуально для киосков и серверных скриптов). 

Шаг 7. Проверяем соединение

  • С клиента запускаем «ping 10.8.0.1» (IP сервера внутри туннеля);
  • Если ответов нет — смотрим C:Program FilesOpenVPNlogserver.log;
  • Проверяем MTU: иногда помогает mssfix 1400 в конфиге сервера;
  • Убедитесь, что forwarding включён: Set-NetIPInterface -InterfaceAlias "Ethernet" -Forwarding Enabled.

Частые ошибки и их быстрое решение

AUTH FAILED на клиенте? Убедитесь, что в server.ovpn стоит remote-cert-tls client (не server!).
TLS Error: TLS key negotiation failed? Сервер и клиент используют разные ta.key или порт/протокол.
Ничего не грузится, но пинг работает? Проверьте правила NAT на интернет-шлюзе или активируйте на сервере netsh interface ip set interface "Ethernet" forwarding=enabled.

Бонус: LDAP-авторизация и двухфакторка

Если сертификаты — это «слишком 2005 год», используйте OpenVPN Access Server . Он ставится поверх Community Edition, умеет связываться с Active Directory, RADIUS и даже раздавать TOTP-коды. Плата берётся только за клиентские подключения сверх 2, так что для домашнего офиса часто хватает и «бесплатного» тарифа.

Итоги

Всего за пару десятков команд и один MSI-установщик вы получили полноценный VPN-шлюз: шифрование AES-256-GCM, собственный CA, автостарт как служба и кроссплатформенных клиентов. Для продакшена осталось «довести до блеска»: настроить резервное копирование PKI, запретить слабые шифры, включить CRL и прописать политику least-privilege для администраторов. А если что-то сломается — логи честно расскажут, кто проспал пароль.
Надеюсь, ваши пользователи будут счастливо кататься по туннелю, а вы — спокойно пить кофе, убеждённые, что весь трафик надёжно упакован и доставлен туда, куда нужно. Удачного деплоя!

OpenVPN OpenVPN Windows настройка VPN EasyRSA Windows Windows Server 2025 сервер VPN руководство туннель PKI
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.

Красная или синяя таблетка?

В Матрице безопасности выбор очевиден.


Николай Нечепуренков

Я – ваш цифровой телохранитель и гид по джунглям интернета. Устал видеть, как хорошие люди попадаются на уловки кибермошенников, поэтому решил действовать. Здесь я делюсь своими секретами безопасности без занудства и сложных терминов. Неважно, считаешь ты себя гуру технологий или только учишься включать компьютер – у меня найдутся советы для каждого. Моя миссия? Сделать цифровой мир безопаснее, а тебя – увереннее в сети.