Во многих небольших компаниях работает сервер OpenVPN, который кто-то настроил несколько лет назад, а с тех пор никто его не трогал. Он служит, пока не обновят операционную систему сервера или пока не появится новый ноутбук с последней версией клиента, и вдруг часть пользователей или все сразу не могут подключиться. Debian 12 и 13 и Ubuntu 24.04 поставляются с OpenVPN серии 2.6, собранным с OpenSSL 3, и вместе они отказываются от ряда старых значений по умолчанию. В руководстве рассказано, что обычно ломается при обновлении OpenVPN 2.6, как это исправить правильно, а не возвращая старые настройки, и что ещё проверить, пока конфигурация открыта.
Шифры: от cipher к OpenVPN data-ciphers
В старых конфигурациях часто есть строка вроде cipher BF-CBC или cipher AES-256-CBC, а иногда нет ничего, и используется прежний шифр по умолчанию Blowfish. Начиная с версии 2.5 OpenVPN согласовывает шифр канала данных по списку, который задаёт параметр OpenVPN data-ciphers; по умолчанию принимаются AES-256-GCM и AES-128-GCM, а в версии 2.6 ещё и CHACHA20-POLY1305, если криптографическая библиотека его поддерживает. Параметр cipher больше не добавляется в этот список автоматически. Очень старые клиенты, которые не умеют согласовывать шифр, и серверы, настроенные только на Blowfish, подключиться не смогут.
OpenSSL 3 добавляет второе препятствие: он больше не предлагает Blowfish и другие устаревшие алгоритмы, пока явно не загружен его модуль legacy. Этот вариант — временный мост, а не конечная цель. Надёжное решение — обновить клиентов и дать обеим сторонам согласовать AES-GCM или ChaCha20.
Сжатие по умолчанию отключено
Конфигурации времён 2.3 и 2.4 часто содержат comp-lzo или строку compress. Сжатие в сочетании с шифрованием может приводить к утечке сведений о трафике (атака VORACLE), поэтому сжатие в OpenVPN не рекомендуют уже много лет. В версии 2.6 параметр allow-compression по умолчанию равен no, если в конфигурации явно не упомянуто сжатие. Расхождение настроек сервера и клиента выглядит так: туннель поднимается, но трафик не идёт. Правильное решение — убрать сжатие и на сервере, и во всех клиентских профилях. Если часть клиентов нельзя обновить сразу, оставьте явную асимметричную настройку только на короткий переходный период.
Сертификаты, ключи и «CRL has expired»
При обновлении обычно всплывают три проблемы с сертификатами:
- Слабые старые ключи и подписи. OpenSSL 3 в том виде, в каком он настроен в Debian и Ubuntu, отклоняет ключи RSA короче 2048 бит и сертификаты, подписанные устаревшими хешами. Центр сертификации, созданный десять лет назад с короткими ключами, придётся заменить, а каждому пользователю выдать новый профиль.
- Истекающие сертификаты. Современные версии easy-rsa выпускают серверные и клиентские сертификаты с ограниченным сроком действия. Узнайте даты окончания сейчас, а не утром, когда срок истечёт.
- Просроченный список отозванных сертификатов. Если сервер использует crl-verify, у списка отзыва есть собственный срок действия — по умолчанию в easy-rsa 180 дней. Когда он проходит, все клиенты получают ошибку «CRL has expired», хотя больше ничего не менялось. Создайте список заново командой easyrsa gen-crl, скопируйте его туда, откуда читает сервер, и настройте регулярное обновление, чтобы это не повторилось.
Защита сервера OpenVPN заодно с обновлением
Обновление — хороший момент, чтобы добавить настройки, которых нет в старых конфигурациях:
- tls-crypt или tls-crypt-v2 с отдельным ключом для каждого клиента шифрует и аутентифицирует управляющий канал, поэтому сервер не отвечает никому без ключа. Это скрывает сервер от сканирования и ослабляет попытки отказа в обслуживании.
- Минимальная версия TLS 1.2 для управляющего канала.
- Отдельные сертификаты для каждого пользователя и второй фактор, чтобы одного скопированного профиля для подключения было недостаточно.
- Правила межсетевого экрана для каждой группы, чтобы профиль подрядчика открывал доступ к одному приложению, а не ко всей офисной сети.
- Разгрузка канала данных (data channel offload) в Linux — новинка версии 2.6, которая переносит шифрование пакетов в ядро и повышает пропускную способность на загруженных серверах.
Все параметры и их текущие значения по умолчанию перечислены в справочнике по OpenVPN 2.6; его стоит держать открытым во время работы.
Как обновить OpenVPN 2.6 без аварии в понедельник утром
- Скопируйте в надёжное место текущую конфигурацию сервера, ключи и клиентские профили.
- Составьте список всех используемых клиентов: операционная система, версия клиента и кому он принадлежит.
- Соберите новую конфигурацию на тестовом экземпляре или на втором порту и подключите по одному обновлённому клиенту каждого типа.
- Выдайте новые профили там, где меняются сертификаты или шифры, и отправьте пользователям короткие инструкции по настройке клиента OpenVPN на их устройствах.
- Переключайтесь в спокойное время и держите старый сервер наготове для отката, пока все не подключатся.
Если установку VPN на Linux делать с нуля, тот же список становится проектом: современные шифры, без сжатия, tls-crypt и сертификаты со списком отзыва, который обновляется сам. Если вы предпочитаете передать работу специалистам, наша услуга настройки OpenVPN охватывает центр сертификации, правила межсетевого экрана и клиентские профили.
Часто задаваемые вопросы: обновление OpenVPN 2.6
Нужны ли пользователям новые профили после обновления?
Только если меняется то, что у них есть: новый центр сертификации, новые сертификаты, ключ tls-crypt или другие настройки шифров. Отказ от сжатия обычно тоже требует правки профиля, поэтому многие обновления заканчиваются выдачей новых профилей всем.
Как сделать так, чтобы CRL снова не истёк?
Запускайте easyrsa gen-crl с запасом до окончания срока действия CRL, копируйте новый файл по пути, указанному в crl-verify, и настройте оповещение, когда дата следующего обновления приближается. Современные версии перечитывают файл при его изменении, поэтому перезапуск не нужен, но файл должен оставаться доступным для пользователя, от имени которого работает сервер OpenVPN.
Смогут ли старые клиенты работать в переходный период?
Недолго — да, если явно разрешить на сервере их шифры или сжатие. Относитесь к этому как к крайнему сроку, а не как к постоянной настройке.
Клиенты перестали подключаться после обновления или сервер OpenVPN годами оставался без внимания? Наша услуга установки и настройки OpenVPN включает защиту сервера, сертификаты и персональные профили для Windows, macOS, Linux и мобильных устройств, а как услуга настройки VPN она вписывается в более широкую работу по безопасности сети и VPN для офисов в Лонг-Бич и Лос-Анджелесе. Свяжитесь с нами, указав версию операционной системы сервера и версии клиентов, которые использует ваша команда.



