Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Сетевое оборудование и VPN

Защита OpenVPN сервера: настройка tls-auth и tls-crypt от атак и сканеров

Обновлено: 27.08.2026 · Официальная документация ↗

Уязвимость открытого порта OpenVPN

Когда OpenVPN сервер слушает интернет на стандартном порту UDP 1194, автоматические сканеры портов (Shodan, Masscan) непрерывно отправляют TLS-запросы инициации соединения. Сервер тратит ценные ресурсы CPU на генерацию криптографических ответов и валидацию handshake, что делает его уязвимым для атак отказа в обслуживании (DoS/DDoS) и уязвимостей в библиотеке OpenSSL.

Сравнение механизмов защиты tls-auth и tls-crypt

Функция безопасностиtls-auth (Классический)tls-crypt (Современный стандарт)
Защита от сканирования портовДа (Скрывает порт от чужих пакетов)Да (Сервер полностью невидим для сканеров)
Подпись пакетов рукопожатия (HMAC)Да (Аутентификация пакетов)Да
Шифрование управляющих заголовков TLSНЕТ (Заголовки и сертификаты видны DPI)ДА (Полное шифрование инициации сессии)
Маскировка от провайдерских DPIНизкаяВысокая (DPI видит только случайный мусор)

Пошаговая настройка современного режима tls-crypt

  1. Генерация общего статического ключа подписи/шифрования:

    На сервере OpenVPN выполните команду создания ключа:

    openvpn --genkey secret tls-crypt.key
  2. Настройка конфигурации сервера (server.conf):

    Добавьте директиву tls-crypt в файл конфигурации сервера:

    # Отключаем устаревший tls-auth, если был включен:
    ;tls-auth ta.key 0
    
    # Включаем современный режим tls-crypt:
    tls-crypt /etc/openvpn/server/tls-crypt.key
  3. Настройка клиентского конфигурационного файла (.ovpn):

    Вставьте содержимое сгенерированного ключа прямо внутрь клиентского профиля в виде инлайн-блока:

    <tls-crypt>
    -----BEGIN OpenVPN Static key V1-----
    ЗДЕСЬ_ВАШ_СГЕНЕРИРОВАННЫЙ_ХЭШ_КЛЮЧА_TLS_CRYPT
    -----END OpenVPN Static key V1-----
    </tls-crypt>
  4. Перезапуск сервера OpenVPN:
    sudo systemctl restart openvpn-server@server

Как работает защита: Если входящий пакет не подписан корректным ключом tls-crypt.key, демон OpenVPN отбрасывает его мгновенно на уровне ядра без вызова функций библиотеки OpenSSL. Сканеры портов считают, что порт полностью закрыт (Closed/Filtered).

💡 Практика специалистов: При использовании режима tls-crypt в условиях жесткой цензуры и DPI-блокировок размер исходного первого пакета Client Hello становится фиксированным. Рекомендуется сочетать tls-crypt со сменой стандартного порта 1194 на порт 443/UDP или нестандартный диапазон (например, UDP 24580), чтобы свести вероятность блокировки туннеля к минимуму.

Частые вопросы (FAQ)

В чем разница между направлениями ключей (0 и 1) в tls-auth?

В старом режиме tls-auth требовалось явно указывать направление: например, 'tls-auth ta.key 0' на сервере и 'tls-auth ta.key 1' на клиенте. В современном tls-crypt указывать цифры направления не требуется.

Защищает ли tls-crypt от кражи логина и пароля пользователя?

Да, благодаря tls-crypt передаваемые учетные данные и имена сертификатов внутри туннеля шифруются дополнительным слоем еще до начала основного TLS-диалога.

Что такое tls-crypt-v2?

Версия tls-crypt-v2 позволяет использовать индивидуальный клиентский ключ для каждого пользователя вместо одного общего ключа, что упрощает отзыв доступа отдельным клиентам.

Поддерживается ли tls-crypt официальным клиентом OpenVPN Connect на смартфонах?

Да, официальные приложения OpenVPN Connect v3 для iOS и Android полностью поддерживают инлайн-блоки <tls-crypt>.

Полезные материалы
Рекомендуем