Кого пускает VPN — устройство или человека: как я выбираю между OpenVPN и WireGuard для компании до 50 мест
WireGuard пускает устройство по ключу, OpenVPN может пускать человека по сертификату, паролю и второму фактору. Для корпоративных ноутбуков я ставлю WireGuard, для личных устройств и подрядчиков, где нужен MFA и журнал по людям, — OpenVPN 2.7. Скорость на офисных каналах почти не решает. Ниже — критерии, конфиги, процедура отзыва и кейс на 16 мест.
Главное различие OpenVPN и WireGuard — модель доверия, а не скорость
Если уволенный сотрудник всё ещё может подключиться к серверу, бизнесу уже неважно, какой протокол быстрее в синтетическом тесте. Поэтому, когда ко мне приходят с вопросом «OpenVPN или WireGuard», я сначала спрашиваю: кого мы пускаем — устройство или человека? Именно с этого начинается любой наш проект по VPN и удалённому доступу, а выбор протокола получается уже почти автоматически.
WireGuard аутентифицирует устройство по ключу. В нём нет логинов, паролей и групп каталога — только пары ключей, адреса и AllowedIPs. Криптография зафиксирована: Curve25519, ChaCha20-Poly1305, BLAKE2s, HKDF. Настраивать нечего, ошибиться в выборе шифров невозможно. Но если сотрудник передал разблокированный ноутбук коллеге, сервер не узнает, кто за ним работает. Для корпоративного ноутбука с шифрованием диска, блокировкой экрана и уникальным ключом этот риск для малого бизнеса обычно приемлем.
OpenVPN может аутентифицировать человека. К клиентскому сертификату добавляются логин, пароль и второй фактор через плагин или внешний сервер, в журнале видно имя пользователя, отозванные сертификаты отсекаются через CRL. Цена — более длинный конфиг, своя PKI и больше мест, где можно ошибиться. Сравнение «в лоб» по установке и скорости я уже делал в статье OpenVPN или WireGuard для офиса; здесь разбираю другой вопрос — как выбрать по модели доступа и как потом этим доступом управлять.
- WireGuard: корпоративные устройства, стабильный состав сотрудников, связь офиса с хабом
- OpenVPN: личные устройства, подрядчики, обязательный MFA, журнал по людям, работа через TCP/443
- на каналах 100–300 Мбит/с оба упираются в интернет раньше, чем в процессор
Что значит «корпоративный VPN» для компании на 10–50 мест
В малом бизнесе слово «корпоративный» я понимаю не как дорогую лицензию, а как управляемость. Кто имеет доступ? К каким адресам и портам? Как отключить человека за пять минут? Где видно, кто когда подключался? Кто проверил резервную копию шлюза? Если на эти вопросы нет ответов, хороший алгоритм шифрования ситуацию не спасёт.
У OpenVPN богаче собственный слой идентификации: UDP и TCP, клиентские сертификаты, проверка логина и пароля через плагины или скрипты (auth-user-pass-verify), индивидуальные настройки через client-config-dir, отзыв через crl-verify. На 23.09.2026 актуальный выпуск — 2.7.7 от 3 сентября, в нём закрыто несколько уязвимостей, в основном в клиенте под Windows; ветка 2.6 ещё получает обновления (2.6.22), но новые внедрения я делаю на 2.7. Для ядра Linux 6.16 и новее модуль ускорения DCO (ovpn) входит в основное ядро и работает только с OpenVPN 2.7; на Debian 13 с ядром 6.12 для него нужен отдельный пакет ovpn-dkms.
WireGuard намеренно не выдаёт сертификатов и не спрашивает пароль. Параметр AllowedIPs часто принимают за ACL, а это не так: он определяет, какие адреса источника допустимы от конкретного peer и куда направлять исходящий трафик. Разрешить бухгалтеру только RDP к одному серверу он не может. Это делается межсетевым экраном на шлюзе, а не надеждой на клиентский конфиг, который пользователь в любой момент может отредактировать.
Как в OpenVPN появляется второй фактор на практике. Самый простой путь для малого офиса — PAM-плагин из пакета OpenVPN и PAM-модуль одноразовых кодов (TOTP) на сервере: клиент присылает логин и пароль с кодом, PAM проверяет и то и другое. Чтобы пользователю не приходилось склеивать пароль с кодом вручную, в клиентский профиль добавляют static-challenge — клиент сам спросит код отдельным полем. Если в компании уже есть RADIUS или сервер одноразовых паролей, OpenVPN подключается к нему через плагин, и учёт вторых факторов остаётся в одном месте. Мелочь, на которой спотыкаются чаще всего: TOTP чувствителен к времени, поэтому на сервере обязателен NTP, а у пользователей — автоматическая синхронизация часов.
- уникальный ключ или сертификат на каждое устройство
- реестр: владелец, устройство, адрес, дата выдачи, статус
- раздельные сети для сотрудников и администраторов
- фильтрация на шлюзе, а не только маршруты на клиенте
- проверенная процедура экстренного отзыва
Когда WireGuard, а когда OpenVPN: мои критерии выбора
WireGuard беру, когда выполнены три условия: устройства принадлежат компании, на них есть шифрование диска и блокировка экрана, а кадровая служба вовремя сообщает об увольнениях. Плюсы тогда ощутимы: туннель мгновенно поднимается после сна ноутбука, спокойно переживает переход с Wi-Fi на LTE, потому что endpoint обновляется по адресу последнего корректно аутентифицированного пакета. PersistentKeepalive = 25 официальная документация называет разумным для peer за NAT, которому нужно принимать входящие после простоя, — ставлю его на клиентах, а не всем подряд.
OpenVPN беру, когда в доступе участвуют личные компьютеры, подрядчики или данные, где мне нужен журнал по конкретным людям и второй фактор. Второй аргумент — сети, где UDP режут: WireGuard работает только по UDP, штатного переключения на TCP у него нет, а OpenVPN умеет TCP/443. Цена TCP известна: поверх нестабильного канала TCP внутри TCP заметно проседает, и интерактивный RDP это чувствует. Поэтому TCP я держу как запасной профиль, а не основной.
Скорость в выборе почти не участвует. OpenVPN без DCO действительно медленнее и сильнее грузит процессор, с DCO разрыв сокращается в разы. Но для офиса с каналом до 300 Мбит/с разница между 700 и 800 Мбит/с на тестовом стенде ничего не значит. Если нужна связка «много филиалов и удалёнщиков без ручной маршрутизации», смотрите на надстройки над WireGuard — вариант с контроллером я разбирал в статье про NetBird на WireGuard.
- WireGuard: свои устройства + шифрование диска + дисциплина увольнений
- OpenVPN: личные устройства, подрядчики, MFA, журнал по людям, TCP/443
- гибрид: WireGuard для связи площадок, OpenVPN для людей
Разбор из практики: психологический центр на 16 рабочих мест
Центр психологического консультирования «Ясный разговор», 16 рабочих мест: шесть сотрудников администрации и бухгалтерии в офисе и десять психологов, из которых семеро часть недели ведут онлайн-сессии из дома. Им нужен доступ к внутренней CRM с карточками клиентов и расписанием, а бухгалтеру — к терминальному серверу с 1С. Проблема была в том, что прежний подрядчик раздал всем один общий WireGuard-конфиг, и шесть из семи психологов работали с личных ноутбуков. Для записей о клиентах психолога это недопустимо: конфиденциальность — основа профессии.
Я выбрал гибрид. Офис подключили к хабу в российском ЦОД со статическим адресом отдельным WireGuard-туннелем: маршрутизатор офиса — наше устройство, ключ на нём, и при переключении на резервный LTE профили сотрудников менять не нужно. Людей перевели на OpenVPN 2.7.7: клиентский сертификат на каждое устройство плюс одноразовый код из приложения-аутентификатора через PAM-плагин. Хаб — Debian 13, 2 vCPU, 2 ГБ RAM; при пике в 11 одновременных подключений нагрузка на процессор не поднималась выше 15 %, поэтому DCO даже не понадобился.
Права разделили на шлюзе: психологи видят только веб-интерфейс CRM (TCP 443) и внутренний DNS, бухгалтер — дополнительно RDP к терминальному серверу, администратор — сеть управления. Общий старый ключ удалили в первый же день. Проект занял неделю: два дня на PKI, шлюз и правила, три дня на выдачу профилей с личной встречей или видеозвонком, остальное — документация и инструкция по отзыву.
За три месяца после запуска зафиксировали одну утерю ноутбука: сертификат отозвали, активную сессию завершили через интерфейс управления, на всё ушло шесть минут, в журнале видно, что после этого попыток входа с этого сертификата не было. Ещё два обращения оказались не про VPN: у одного психолога сбились часы на ноутбуке и не проходил одноразовый код, у другого домашний роутер блокировал исходящий UDP — выручил запасной TCP-профиль. Результат хороший, но обеспечили его не протокол, а реестр доступа и отработанная процедура.
- 16 мест: 6 в офисе, 10 психологов, 7 работают удалённо
- люди: OpenVPN 2.7.7, сертификат + одноразовый код
- офис ↔ хаб: WireGuard site-to-site, резервный LTE без смены профилей
- отзыв утерянного устройства: 6 минут от звонка до закрытой сессии
Конфигурация: маршруты отдельно, права отдельно
Ниже сокращённый WireGuard-профиль для площадки или корпоративного ноутбука. Через VPN идут только нужные сети, весь интернет — нет. Ключи в примере заменены заглушками; свои генерируйте на самом устройстве с umask 077 и никогда не пересылайте приватный ключ.
[Interface]
PrivateKey = <приватный ключ устройства>
Address = 10.77.0.34/32
DNS = 10.20.0.53
[Peer]
PublicKey = <публичный ключ хаба>
Endpoint = vpn.example.com:51820
AllowedIPs = 10.20.0.15/32, 10.20.0.53/32
PersistentKeepalive = 25umask 077
wg genkey | tee private.key | wg pubkey > public.keyРазграничение доступа — на хабе, в nftables. Политика цепочки по умолчанию drop, ответы уже установленных соединений разрешены отдельно, сети сотрудников и администраторов разные:
table inet vpn_filter {
chain forward {
type filter hook forward priority filter; policy drop;
ct state established,related accept
iifname { "wg0", "tun0" } ip saddr 10.78.0.0/24 ip daddr 10.20.0.15 tcp dport 443 accept
iifname { "wg0", "tun0" } ip saddr 10.78.0.0/24 ip daddr 10.20.0.53 meta l4proto { tcp, udp } th dport 53 accept
iifname "wg0" ip saddr 10.77.0.8/29 ip daddr { 10.20.0.0/24, 10.20.1.0/24 } accept
}
}Серверный профиль OpenVPN длиннее, зато PKI и CRL в него входят естественно. На новом сервере использую только AEAD-шифры и tls-crypt-v2, не возвращаю устаревший BF-CBC ради забытого клиента, маршруты выдаю группам через client-config-dir, а не одним широким push всем. Второй фактор подключаю через PAM-плагин из пакета OpenVPN; путь к нему в Debian проверьте в своей системе командой dpkg -L openvpn.
port 1194
proto udp
dev tun
topology subnet
server 10.78.0.0 255.255.255.0
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key
dh none
tls-crypt-v2 /etc/openvpn/server/tc2-server.key
data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305
verify-client-cert require
crl-verify /etc/openvpn/server/crl.pem
plugin /usr/lib/x86_64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn
client-config-dir /etc/openvpn/server/ccd
management 127.0.0.1 7505
keepalive 10 120
user nobody
group nogroup
persist-key
persist-tunКак отзывать доступ и обслуживать VPN без сюрпризов
WireGuard требует дисциплины вокруг ключей. В реестре храню публичный ключ, туннельный адрес, владельца, серийный номер устройства, дату выдачи и статус; приватный ключ остаётся только на устройстве. wg show all dump годится для мониторинга, но поле latest handshake — не пользовательская сессия: молчащий peer может быть исправен, а украденный разблокированный ноутбук выглядит как штатный.
У OpenVPN отзыв тоже не сводится к записи в CRL. Новый вход будет отклонён, но действующее соединение надо закрыть через интерфейс управления (management), иначе оно проживёт до переподключения. Этот шаг я всегда вписываю в инструкцию увольнения. Параллельно блокируются учётная запись, почта и устройство — VPN не должен быть единственной линией обороны. Про то, почему обычные «удалёнки» вроде AnyDesk не заменяют такой контроль, я писал в разборе безопасности утилит удалённого доступа.
Приоритеты такие. Сначала инвентаризация и уникальные ключи или сертификаты, затем правила на шлюзе и процедура отзыва, потом мониторинг и резервная копия конфигурации шлюза. На тонкую настройку шифров, ручной MTU и погоню за гигабитом можно не тратить время, пока замеры не показали реальную проблему. А вот обновления откладывать нельзя: у OpenVPN с июля по сентябрь 2026 вышли три выпуска ветки 2.7 (2.7.5, 2.7.6, 2.7.7) с исправлениями уязвимостей, и клиенты на Windows обновлять нужно так же, как сервер.
- потеря устройства: отозвать сертификат или удалить peer, закрыть сессию, заблокировать учётку, проверить журнал
- раз в месяц: сверка реестра доступа с кадровым списком, обновление сервера и клиентов
- после изменения правил: проверить доступ к разрешённому и отсутствие доступа к соседним сетям
- раз в квартал: восстановление шлюза из резервной копии на стенде
Частые вопросы
Что безопаснее: OpenVPN или WireGuard?
Оба пригодны при актуальных версиях и правильной эксплуатации. WireGuard уменьшает риск ошибиться в криптографии, OpenVPN лучше интегрируется с пользовательской аутентификацией и MFA. Общие ключи и несвоевременный отзыв опаснее выбора протокола.
Можно ли использовать WireGuard без MFA?
Да, на корпоративном устройстве с шифрованием диска, блокировкой экрана и уникальным ключом, который можно быстро отозвать. Для личных устройств и подрядчиков я добавляю второй фактор через OpenVPN или внешний контроллер доступа.
Заменяет ли AllowedIPs межсетевой экран?
Нет. AllowedIPs определяет допустимые адреса источника от peer и маршрутизацию, но не ограничивает порты и сервисы. Права задаются правилами nftables или межсетевого экрана на шлюзе.
Нужен ли DCO для OpenVPN в малом офисе?
Обычно нет: на 10–20 одновременных подключений и канале до 300 Мбит/с процессор не становится узким местом. DCO работает только с OpenVPN 2.7 и входит в ядро Linux начиная с 6.16.
Как быстро отозвать доступ в OpenVPN?
Отозвать сертификат и обновить CRL, затем закрыть активную сессию через интерфейс управления, заблокировать учётную запись и проверить журнал. CRL сам по себе действующее соединение не разрывает.
Можно ли оставить OpenVPN 2.6?
Ветка 2.6 ещё получает обновления (2.6.22), но для новых внедрений я выбираю 2.7.x и обновляюсь на последние выпуски с исправлениями безопасности.
Источники
- OpenVPN на GitHub: релизы — Выпуски v2.7.7 (03.09.2026, исправления CVE) и v2.6.22 (06.08.2026): https://github.com/OpenVPN/openvpn/releases
- OpenVPN: README.dco.md — Модуль ovpn в основном ядре Linux с 6.16, совместимость только с OpenVPN 2.7+: https://github.com/OpenVPN/openvpn/blob/master/README.dco.md
- OpenVPN 2.6 Reference Manual — data-ciphers, tls-crypt-v2, client-config-dir, crl-verify, plugin, management: https://build.openvpn.net/man/openvpn-2.6/openvpn.8.html
- WireGuard: Protocol & Cryptography — Криптографические примитивы, только UDP, роуминг endpoint: https://www.wireguard.com/protocol/
- WireGuard: Quick Start — Генерация ключей, PersistentKeepalive 25 для peer за NAT: https://www.wireguard.com/quickstart/
- wireguard-tools: wg(8) — AllowedIPs, wg set … remove, wg syncconf, wg show dump; актуальный тег v1.0.20260223: https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8



