24.11.2020

Доступен OpenVPN 2.5.0


После почти четырёх лет с момента публикации ветки 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 только если клиент его поддерживает.
  • Поддержка TLS 1.3. Для использования TLS 1.3 требуется как минимум OpenSSL 1.1.1. Для тонкой настройки параметров TLS добавлены опции «—tls-ciphersuites» и «—tls-groups».
  • Из конфигурации по умолчанию убрана поддержка шифра 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-ciphers и включён режим data-ciphers-fallback.
  • В плагин auth-pam добавлна поддержка асинхронной (отложенной) аутентификации. Аналогично в опцию «—client-connect» и API для подключения плагинов добавлена возможность отложенного возвращения файла конфигурации.
  • Ускорен процесс установки соединения — клиент теперь может указать переменную IV_PROTO в pull-режиме, после чего сервер передаст клиенту конфигурацию, не дожидаясь сообщения PULL_REQUEST.
  • Поддержка настройки IP-адресов и маршрутов при помощи интерфейса Netlink, предоставляемого ядром Linux. Netlink применяется при сборке без опции «—enable-iproute2» и позволяет запускать OpenVPN без дополнительных привилегий, необходимых для выполнения утилиты «ip». Поддержка запуска утилит ifconfig и route прекращена.
  • В протокол добавлена возможность применения двухфакторной аутентификации или дополнительной аутентификации через Web (SAML), без разрыва сеанса после первой проверки (после первой проверки сеанс остаётся в состоянии «не аутентифицирован» и ожидает завершения второй стадии аутентификации).
  • Поддержка тегированных VLAN (802.1q) при работе сервера в режиме TAP, позволяющая разделять клиентов по группам и применять к этим группам разные настройки (выносить в разные подсети, использовать свои правила пакетного фильтра и т.п.). Настройка производится при помощи опций «—vlan-tagging», «—vlan-accept» и «—vlan-pvid».
  • Для 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».
  • Поддержка передачи через 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 для доступа к закрытому ключу (например, TPM).
  • В опции «—auth-gen-token» появилась поддержка генерации токена на базе HMAC.
  • Возможность использования сетевых масок /31 в настройках IPv4 (OpenVPN больше не пытается настроить широковещательный адрес).
  • Добавлена опция «—block-ipv6» для блокирования любых пакетов IPv6.
  • В опциях «—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 по восстановлению содержимого.

Источник: https://www.opennet.ru/opennews/art.shtml?num=53981

Добавить комментарий