După doi ani și jumătate de la publicarea versiuni 2.5, a fost pregătit release-ul OpenVPN 2.6.0, un pachet pentru crearea de rețele private virtuale, care permite organizarea unei conexiuni criptate între două mașini client sau asigurarea funcționării unui server VPN centralizat pentru lucru simultan cu mai mulți clienți. Codul OpenVPN este distribuit sub licența GPLv2, iar pachetele binare sunt disponibile pentru Debian, Ubuntu, CentOS, RHEL și Windows.
Noutăți principale:
- S-a asigurat suport pentru un număr nelimitat de conexiuni.
- A fost inclus un modul de kernel ovpn-dco, care permite îmbunătățirea semnificativă a performanței. VPN. Îmbunătățirea se realizează prin mutarea tuturor operațiunilor de criptare, procesarea pachetelor și gestionarea canalului de comunicație în kernelul Linux, ceea ce permite eliminarea cheltuielilor suplimentare legate de comutarea contextului, oferind posibilitatea de a optimiza lucrul prin accesarea directă la API-urile interne ale kernelului și eliminând transferul lent de date între kernel și spațiul utilizatorului (criptarea, decriptarea și rutarea sunt realizate de modul fără a trimite trafic la handlerul din spațiul utilizatorului).
În testele efectuate, comparativ cu configurația bazată pe interfața tun, utilizarea modulului pe partea clientului și serverului cu criptarea AES-256-GCM a permis obținerea unui câștig de capacitate de 8 ori (de la 370 Mbit/s la 2950 Mbit/s). Când modulul este utilizat doar pe partea clientului, capacitatea de transfer a crescut de trei ori pentru traficul de ieșire și a rămas neschimbată pentru cel de intrare. Atunci când modulul este utilizat doar pe partea serverului, capacitatea de transfer a crescut de 4 ori pentru traficul de intrare și cu 35% pentru cel de ieșire.
- A fost oferită posibilitatea utilizării modului TLS cu certificate auto-semnatate (când se folosește opțiunea „—peer-fingerprint” este posibil să nu fie specificate parametrile „—ca” și „—capath” și se poate evita pornirea unui server PKI pe baza Easy-RSA sau a unui software similar).
- În serverul UDP a fost implementat un mod de negociere a conexiunii bazat pe Cookie, în care Cookie-ul bazat pe HMAC este folosit ca identificator al sesiunii, permițând serverului să efectueze verificarea fără a păstra starea.
- A fost adăugat suport pentru compilarea cu biblioteca OpenSSL 3.0. A fost adăugat parametrul „—tls-cert-profile insecure” pentru a alege nivelul minim de securitate OpenSSL.
- Au fost adăugate noi comenzi de gestionare remote-entry-count și remote-entry-get pentru a conta numărul de conexiuni externe și a afișa lista acestora.
- În procesul de negociere a cheilor, metoda preferată pentru obținerea materialului necesar generării cheilor este acum mecanismul EKM (Exported Keying Material, RFC 5705), în locul mecanismului specific OpenVPN PRF. Utilizarea EKM necesită biblioteca OpenSSL sau mbed TLS 2.18+.
- Se asigură compatibilitatea cu OpenSSL în modul FIPS, permițând utilizarea OpenVPN pe sisteme care îndeplinesc cerințele de securitate FIPS 140-2.
- În mlock a fost implementată verificarea rezervării unei dimensiuni suficiente de memorie. Atunci când există mai puțin de 100 MB de RAM, este apelată funcția setrlimit() pentru a crește limita.
- A fost adăugată opțiunea „—peer-fingerprint” pentru a verifica corectitudinea sau asocierea certificatului pe baza amprentei fingerprint, utilizând hash-ul SHA256, fără a folosi tls-verify.
- Pentru scripturi, s-a oferit posibilitatea autentificării amânate (deferred), implementată prin opțiunea „—auth-user-pass-verify”. În scripturi și pluginuri, a fost adăugată suport pentru informarea clientului despre autentificarea în așteptare (pending) în cazul utilizării autentificării amânate.
- A fost adăugat un mod de compatibilitate (—compat-mode), permițând conectarea la servere vechi care folosesc OpenVPN 2.3.x sau versiuni anterioare.
- În lista transmisă prin parametrul „—data-ciphers”, este permisă utilizarea prefixului „?” pentru a indica cifrurile opționale care vor fi utilizate doar dacă sunt suportate în SSL-bibliotecă.
- A fost adăugată opțiunea „—session-timeout” prin care se poate limita timpul maxim al sesiunii.
- În fișierul de configurare, este permisă specificarea numelui și a parolei folosind tag-ul <auth-user-pass><\/auth-user-pass>.
- S-a oferit posibilitatea configurării dinamice a MTU-ului clientului, pe baza datelor despre MTU transmise de server. Pentru a modifica dimensiunea maximă a MTU-ului, a fost adăugată opțiunea „—tun-mtu-max” (implicit 1600).
- A fost adăugat parametrul „—max-packet-size” pentru a defini dimensiunea maximă a pachetelor de control.
- Asistența pentru modul de lansare OpenVPN prin inetd a fost eliminată. Opțiunea ncp-disable a fost eliminată. Opțiunile verify-hash și modul cheilor statice sunt acum declarate ca obsolete (rămâne doar TLS). Protocoalele TLS 1.0 și 1.1 au fost incluse în categoria obsoletă (parametrul tls-version-min este setat la 1.2 în mod implicit). Implementarea încorporată a generatorului de numere pseudoiniciale (—prng) a fost eliminată, se recomandă utilizarea implementărilor PRNG din bibliotecile criptografice mbed TLS sau OpenSSL. Suportul pentru filtrul de pachete PF (Packet Filtering) a fost întrerupt. Compresia (—allow-compression=no) este dezactivată în mod implicit.
- CHACHA20-POLY1305 a fost adăugat în lista de cifruri implicită.
Sursa: opennet.ro
