Efter to et halvt år siden offentliggørelsen af version 2.5 er OpenVPN 2.6.0 nu klar. Dette er et program til oprettelse af virtuelle private netværk, som muliggør krypterede forbindelser mellem to klientmaskiner eller sikrer, at en centraliseret VPN-server kan betjene flere klienter samtidigt. OpenVPN-koden distribueres under GPLv2-licensen, og der er udarbejdet færdige binære pakker til Debian, Ubuntu, CentOS, RHEL og Windows.
Hovednyhederne:
- Der er tilføjet support for et ubegriblet antal forbindelser.
- Der er inkluderet en ovpn-dco kerne modul, som væsentligt forbedrer ydeevnen. VPN. Forbedringen opnås ved at flytte alle krypteringsoperationer, paketbehandling og styring af kommunikationskanalen til Linux-kernen, hvilket eliminerer omkostningerne ved kontekstskift, muliggør optimering af arbejdet gennem direkte adgang til kerne-API'er og undgår langsom datatransmission mellem kernen og brugerrummet (kryptering, dekryptering og routing udføres af modulet uden at sende trafik til handleren i brugerrummet).
I de udførte tests, sammenlignet med en konfiguration baseret på tun-interface, førte anvendelsen af modulet på både klient- og serversiden ved brug af AES-256-GCM kryptering til en stigning i båndbredden med 8 gange (fra 370 Mbit/s til 2950 Mbit/s). Når modulet kun anvendes på klientsiden, steg båndbredden tre gange for udgående trafik, mens der ikke var nogen ændring for indgående trafik. Når modulet kun bruges på serversiden, steg båndbredden med 4 gange for indgående trafik og med 35% for udgående.
- Der er tilføjet mulighed for at bruge TLS med selvsignerede certifikater (ved brug af indstillingen "—peer-fingerprint" er det muligt at undlade at specificere parametrene "—ca" og "—capath" samt undgå at starte et PKI-server baseret på Easy-RSA eller tilsvarende software).
- I UDP-serveren er der implementeret en forbindelse-forhandlingsmode baseret på Cookies, hvor en Cookie baseret på HMAC bruges som session-ID, hvilket giver serveren mulighed for at udføre verifikation uden at gemme tilstand.
- Der er tilføjet support for bygning med OpenSSL 3.0-biblioteket. En indstilling "—tls-cert-profile insecure" er tilføjet for at vælge det mindste sikkerhedsniveau i OpenSSL.
- Der er tilføjet nye kontrolkommandoer remote-entry-count og remote-entry-get til at tælle antallet af eksterne forbindelser og udskrive deres liste.
- I processen med at godkende nøgler er den mere prioriterede metode til at få materiale til nøggenerering nu mekanismen EKM (Exported Keying Material, RFC 5705) i stedet for den specifikke OpenVPN PRF mekanisme. For at anvende EKM kræves OpenSSL eller mbed TLS 2.18+ biblioteker.
- Der er sikret kompatibilitet med OpenSSL i FIPS-tilstand, hvilket muliggør brug af OpenVPN på systemer, der opfylder FIPS 140-2 sikkerhedskrav.
- I mlock er der implementeret en kontrol af forbeholdt tilstrækkelig hukommelsesstørrelse. Hvis der er mindre end 100 MB RAM tilgængeligt, udføres kaldet setrlimit() for at øge grænsen.
- Der er tilføjet en mulighed «—peer-fingerprint» til at kontrollere gyldigheden eller bindingen af certifikatet baseret på SHA256 fingerprint-hash uden at anvende tls-verify.
- For scripts er der blevet tilføjet muligheden for udsat (deferred) autentificering, implementeret via optionen «—auth-user-pass-verify». I scripts og plugins er der tilføjet støtte til at informere klienten om ventende autentificering ved anvendelse af udsat autentificering.
- Der er tilføjet en kompatibilitetsmode (—compat-mode), der gør det muligt at oprette forbindelser til ældre servere, der bruger OpenVPN 2.3.x eller ældre versioner.
- I listen, der overføres gennem parameteren «—data-ciphers», er det nu tilladt at angive præfikset «?» for at definere valgfrie krypteringer, der kun vil blive anvendt, hvis der er støtte i SSL-biblioteket.
- Der er tilføjet en option «—session-timeout», som gør det muligt at begrænse den maksimale sessionstid.
- I konfigurationsfilen er det tilladt at angive brugernavn og adgangskode ved hjælp af tagget <auth-user-pass></auth-user-pass>.
- Muligheden for dynamisk at konfigurere klientens MTU baseret på MTU-oplysninger sendt af serveren er blevet givet. For at ændre den maksimale MTU-størrelse er der tilføjet en option «—tun-mtu-max» (standard 1600).
- Der er tilføjet parameteren «—max-packet-size» til at definere den maksimale størrelse på styringspakker.
- Understøttelse af OpenVPN-startindstillinger via inetd er fjernet. Muligheden ncp-disable er blevet slettet. Indstillingen verify-hash og den statiske nøglemetode er blevet erklæret forældede (kun TLS er tilbage). Protokoller TLS 1.0 og 1.1 er blevet klassificeret som forældede (standardindstillingen for tls-version-min er sat til 1.2). Den indbyggede implementering af pseudotilfældige talgeneratorer (—prng) er fjernet, og der bør anvendes PRNG-implementeringen fra kryptobibliotekerne mbed TLS eller OpenSSL. Understøttelse af PF (Packet Filtering) er ophørt. Komprimering (—allow-compression=no) er som standard deaktiveret.
- CHACHA20-POLY1305 er blevet tilføjet som standardkryptering.
Kilde: opennet.ru
