Доступен OpenVPN 2.5.0
28 октября 2020 года
После почти четырёх лет с момента публикации ветки 2.4 подготовлен релиз OpenVPN 2.5.0, пакета для создания виртуальных частных сетей, позволяющего организовать шифрованное соединение между двумя клиентскими машинами или обеспечить работу централизованного VPN-сервера для одновременной работы нескольких клиентов. Код OpenVPN распространяется под лицензией GPLv2, готовые бинарные пакеты формируются для Debian, Ubuntu, CentOS, RHEL и Windows.
Основные новшества:
- Поддержка шифрования канала передачи данных с использованием потокового шифра ChaCha20 и алгоритма аутентификации сообщений (MAC) Poly1305, разработанных Дэниелом Бернштейном (Daniel J. Bernstein), Таней Ланге (Tanja Lange) и Питером Швабе (Peter Schwabe). ChaCha20 и Poly1305 позиционируются как более быстрые и безопасные аналоги AES-256-CTR и HMAC, программная реализация которых позволяет добиться фиксированного времени выполнения без задействования специальной аппаратной поддержки. ChaCha20 и Poly1305 также применяются в VPN WireGuard.
- Возможность предоставления каждому клиенту своего уникального ключа tls-crypt, что позволяет крупным организациям и VPN-провайдерам применять такие же методы защиты стека TLS и предотвращения DoS-атак, которые ранее были доступны в небольших конфигурациях, использующих tls-auth или tls-crypt. Режим активируется при помощи опции "--tls-crypt-v2".
- Улучшен механизм согласования шифра, применяемого для защиты канала передачи данных. Опция ncp-ciphers переименована в data-ciphers для того чтобы избежать неоднозначности при наличии опции tls-cipher, и подчеркнуть, что data-ciphers является предпочтительным для настойки шифров канала данных (поддержка старого названия сохранена для обеспечения совместимости). Клиенты теперь передают на сервер список всех поддерживаемых ими шифров из набора data-ciphers, используя переменную IV_CIPHERS, что позволяет серверу выбрать первый поддерживаемый обеими сторонами шифр. Указанное изменение, например, позволяет указать в data-ciphers набор ChaCha20-Poly1305:AES-256-GCM, но использовать ChaCha20-Poly1305 только если клиент его поддерживает.
- Из конфигурации по умолчанию убрана поддержка шифра BF-CBC. В OpenVPN 2.5 по умолчанию теперь принимаются только шифры AES-256-GCM и AES-128-GCM. Изменить данное поведение можно при помощи опции data-ciphers, напрмер, указав в настройках "data-ciphers AES-256-GCM:AES-128-GCM:BF-CBC", а для поддержки очень старых узлов, не поддерживающих согласование шифров (режим "--cipher"), можно указать "data-ciphers-fallback BF-CBC". При обновлении до новой версии OpenVPN настройка "cipher BF-CBC" в старых файлах конфигурации будет преобразована в добавление BF-CBC к data-cipher и включение data-ciphers-fallback.
- В плагин auth-pam добавлна поддержка асинхронной (отложенной) аутентификации. Аналогично в опцию "--client-connect" и API для подключения плагинов добавлена возможность отложенного возвращения файла конфигурации.
- Ускорен процесс установки соединения - клиент теперь может указать переменную IV_PROTO в pull-режиме, после чего сервер передаст клиенту конфигурацию не дожидаясь сообщения PULL_REQUEST.
- Поддержка настройки IP-адресов и маршрутов при помощи интерфейса Netlink, предоставляемого ядром Linux. Netlink применяется при сборке без опции "--enable-iproute2" и позволяет запускать OpenVPN без дополнительных привилегий, необходимых для выполнения утилиты "ip". Поддержка запуска утилит ifconfig и route прекращена.
- На платформе Windows добавлена поддержка интерфейса wintun, который быстрее, чем традиционные интерфейсы tap9 tun/tap, но не поддерживает режим "--dev tap". Для включения следует использовать опцию "--windows-driver wintun". Обеспечено корректное определение Windows 10. Добавлена поддержка установки через msi.
- Возможность работы при наличии только адресов IPv6 внутри VPN-туннеля (ранее требовалось указание адресов IPv4)
- В Linux добавлена поддержка сетевых интерфейсов виртуальной маршрутизации и перенаправления (VRF, Virtual routing and forwarding). Для помещения внешнего сокета в VRF предложена опция "--bind-dev"
- Поддержка TLS 1.3. Для использования TLS 1.3 требуется как минимум OpenSSL 1.1.1. Для тонкой настройки параметров TLS добавлены опции "--tls-ciphersuites" и "--tls-groups".
- Поддержка передачи через DHCP базового домена для маски "dns search" в resolv.conf, прикрепляемой по умолчанию при операциях поиска по имени в DNS. В Windows домен задаётся при помощи опции "--dhcp-option DOMAIN-SEARCH my.example.com", в Linux через "--up script", а в macOS через GUI.
- Возможность привязки отдельных настроек data-ciphers и data-ciphers-fallback к клиентам из скрипта client-connect.
- Возможность указания размера MTU для интерфейса tun/tap в Windows.
- Поддержка выбора движка OpenSSL для доступа к закрытому ключу.
- В опции "--auth-gen-token" появилась поддержка генерации токена на базе HMAC.
- В протокол добавлена возможность применения двухфакторной аутентификации или дополнительной аутентификации через Web (SAML), без разрыва сеанса после первой проверки (после первой проверки сеанс остаётся в состоянии не аутентифицирован и ожидает завершения второй стадии аутентификации).
- Поддержка таггированных VLAN (802.1q) при работе сервера в режиме TAP, позволяющая разделять клиентов по группам и применять к этим группам разные настройки (выносить в разные подсети, использовать свои правила пакетного фильтра и т.п.). Настройка производится при помощи опций "--vlan-tagging", "--vlan-accept" и "--vlan-pvid".
- Возможность использования сетевых масок /31 в настройках IPv4 (OpenVPN больше не пытается настроить широковещательный адрес).
- Добавлена опция "--block-ipv6" для блокирования любых пакетов IPv6 (ICMPv6).
- В опциях "--ifconfig-ipv6" и "--ifconfig-ipv6-push" разрешено указание имени хоста вместо IP-адреса (адрес будет определён через DNS).
- Объявлены устаревшими или удалены: ncp-disable, вызов через inetd, no-iv, "--client-cert-not-required", "--ifconfig-pool-linear", "--compress xxx", "--disable-multi", "--key-method 1". Прекращена поддержка сборки с OpenSSL 1.0.1. Запрещена сборка без поддержки шифрования (сборочная опция "--disable-crypto" больше не работает, но сохранён режим "--cipher none"). Применение сжатия пакетов признано рискованным из-за возможность совершения атаки VORACLE по восстановлению содержимого.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.