Po dvou a půl letech od vydání verze 2.5 byl připraven release OpenVPN 2.6.0, balíku pro vytváření virtuálních privátních sítí, který umožňuje zřídit šifrované spojení mezi dvěma klientskými stroji nebo zprovoznit centralizovaný VPN server pro současný provoz několika klientů. Kód OpenVPN je distribuován pod licencí GPLv2, hotové binární balíčky jsou sestavovány pro Debian, Ubuntu, CentOS, RHEL a Windows.
Hlavní novinky:
- Byla zajištěna podpora neomezeného počtu spojení.
- Součástí je modul jádra ovpn-dco, který výrazně zrychluje výkon. VPN. Zrychlení se dosahuje tím, že všechny operace šifrování, zpracování paketů a správy spojení jsou přesunuty na stranu jádra Linuxu, což eliminuje režijní náklady spojené se změnou kontextu, umožňuje optimalizaci práce skrze přímý přístup k internímu API jádra a vylučuje pomalý přenos dat mezi jádrem a uživatelským prostorem (šifrování, dešifrování a směrování jsou prováděny modulem bez odeslání provozu do zpracovatele v uživatelském prostoru).
V provedených testech ve srovnání s konfigurací založenou na rozhraní tun použití modulu na straně klienta a serveru při použití šifry AES-256-GCM umožnilo dosáhnout nárůstu propustnosti o 8x (ze 370 Mbit/s na 2950 Mbit/s). Při použití modulu pouze na straně klienta se propustnost zvýšila třikrát pro odchozí provoz a nezměnila se pro příchozí. Při použití modulu pouze na straně serveru se propustnost zvýšila 4x pro příchozí provoz a o 35 % pro odchozí.
- Byla poskytnuta možnost používání režimu TLS se self-signed certifikáty (při použití volby „—peer-fingerprint“ není nutné uvádět parametry „—ca“ a „—capath“ a lze se obejít bez spuštění PKI serveru na základě Easy-RSA nebo podobného softwaru).
- V UDP serveru byl implementován režim dohodování spojení na základě Cookie, při kterém se jako identifikátor relace používá Cookie založená na HMAC, což umožňuje serveru provádět verifikaci bez uchovávání stavu.
- Byla přidána podpora sestavení s knihovnou OpenSSL 3.0. Přidán parametr „—tls-cert-profile insecure“ pro výběr minimální úrovně bezpečnosti OpenSSL.
- Byly přidány nové řídicí příkazy remote-entry-count a remote-entry-get pro počítání počtu externích připojení a výpis jejich seznamu.
- Při souhlasu s klíči je prioritnějším způsobem získání materiálu pro generaci klíčů teď mechanismus EKM (Exported Keying Material, RFC 5705), namísto specifického mechanismu OpenVPN PRF. Pro použití EKM je potřeba knihovna OpenSSL nebo mbed TLS 2.18+.
- Byla zajištěna kompatibilita s OpenSSL v režimu FIPS, což umožňuje používat OpenVPN na systémech splňujících bezpečnostní požadavky FIPS 140-2.
- V mlock byla implementována kontrola rezervace dostatečné velikosti paměti. Při dostupnosti méně než 100 MB RAM je pro zvýšení limitu prováděn hovor setrlimit().
- Byla přidána možnost "--peer-fingerprint" pro ověření správnosti nebo vazby certifikátu podle fingerprintu na základě hash SHA256, bez použití tls-verify.
- Pro skripty byla poskytnuta možnost odložené (deferred) autentizace prováděné pomocí možnosti "--auth-user-pass-verify". Do skriptů a pluginů byla přidána podpora informování klienta o čekající autentizaci (pending) při použití odložené autentizace.
- Byl přidán režim kompatibility (---compat-mode), který umožňuje připojení ke starým serverům, na nichž se používá OpenVPN 2.3.x nebo starší verze.
- V seznamu předávaném parametrem "--data-ciphers" je povoleno uvádět prefix "?" pro určení volitelných šifer, které budou použity pouze v případě podpory v SSL-knihovně.
- Byla přidána možnost "--session-timeout", pomocí které lze omezit maximální délku relace.
- V konfiguračním souboru je povoleno uvádět jméno a heslo pomocí tagu .
- Byla poskytnuta možnost dynamického nastavení MTU klienta, na základě údajů o MTU předaných serverem. Pro změnu maximální velikosti MTU byla přidána možnost "--tun-mtu-max" (výchozí 1600).
- Byl přidán parametr "--max-packet-size" pro určení maximální velikosti řídicích paketů.
- Podpora režimu spuštění OpenVPN přes inetd byla odstraněna. Volba ncp-disable byla odstraněna. Volby verify-hash a režim statických klíčů jsou považovány za zastaralé (zůstává pouze TLS). Protokoly TLS 1.0 a 1.1 byly převedeny do kategorie zastaralých (výchozí parametr tls-version-min je nastaven na hodnotu 1.2). Vestavěná implementace generátoru pseudonáhodných čísel (—prng) byla odstraněna, doporučuje se používat implementaci PRNG z kryptografických knihoven mbed TLS nebo OpenSSL. Podpora paketového filtrování PF (Packet Filtering) byla ukončena. Komprese je ve výchozím nastavení zakázána (—allow-compression=no).
- Do výchozího seznamu šifrovacích algoritmů byl přidán CHACHA20-POLY1305.
Zdroj: opennet.ru
