Dopo tre anni dalla pubblicazione della versione 2.6, è stato preparato il rilascio di OpenVPN 2.7.0, un pacchetto per la creazione di reti private virtuali che consente di stabilire una connessione crittografata tra due macchine client o di garantire il funzionamento di un server VPN centralizzato per l'uso simultaneo di più client. Il codice OpenVPN è distribuito sotto licenza GPLv2, e i pacchetti binari pronti sono sviluppati per Debian, Ubuntu, CentOS, RHEL e Windows.
Novità principali:
- Su VPN-sui server è stata introdotta la possibilità di aprire più socket di connessione, ad esempio per ricevere simultaneamente connessioni tramite UDP e TCP o su diverse porte di rete.
- È stato effettuato il passaggio all'uso della nuova versione del modulo DCO, incluso nel nucleo principale di Linux 6.16. Il modulo facente parte del nucleo principale ha un'API modificata e viene fornito con il nome «ovpn». Il supporto per il vecchio modulo ovpn-dco è stato interrotto. Questo modulo sposta le operazioni di crittografia, elaborazione dei pacchetti e gestione della comunicazione nel kernel di Linux, riducendo i costi associati al cambio di contesto, ottimizzando il funzionamento tramite l'accesso diretto alle API interne del kernel e evitando la lenta trasmissione dei dati tra il kernel e lo spazio utente (la crittografia, la decrittografia e il routing vengono eseguiti dal modulo senza inviare il traffico al gestore nello spazio utente).
- Nella versione per Windows: è stato attivato il flag block-local nei filtri WFP; è stata garantita la generazione di interfacce di rete aggiuntive secondo necessità; è stato assicurato l'avvio dei servizi automatici con un utente non privilegiato; per lavorare con le impostazioni DNS è stato utilizzato NRPT (Name Resolution Policy Table); è stato consentito l'uso del driver win-dco per accelerare i server VPN.
- È stato presentato un nuovo formato per chiavi e pacchetti «epoch», che a differenza del formato standard «DATA_V2» aggiunge un tag AEAD alla fine del pacchetto, aggiorna automaticamente le chiavi al raggiungimento del limite di utilizzo, ha identificatori di pacchetto a 64 bit e utilizza l'operazione XOR nella generazione del vettore di inizializzazione.
- È stata aggiunta la supporto per lwipovpn, un emulatore di interfacce di rete tun/tap nello spazio utente, realizzato sulla base dello stack TCP/IP lwIP. Utilizzando l'opzione «—dev-node unix:/percorso/a/lwipovpn» è possibile emulare un client VPN completo sullo stesso sistema per testare e debugare OpenVPN.
- È stata aggiunta la possibilità di aggiornare alcune impostazioni del client (IP, routing, MTU, DNS) inviando server messaggi di comando PUSH_UPDATE.
- Nel client openVPN per Linux, BSD e macOS è stata aggiunta l'opzione «—dns-updown» per eseguire uno script che applica le impostazioni DNS fornite dal server. Lo script supporta la configurazione tramite /etc/resolv.conf, systemd o resolveconf.
- Per la piattaforma Linux è stata aggiunta l'opzione «—route-table» per utilizzare le tabelle di routing definite dall'utente.
- È stato implementato il supporto per il ramo mbedTLS 4. È stato aggiunto il supporto per TLS 1.3 nelle configurazioni con la libreria crittografica mbedTLS.
- Aggiunto supporto per il sistema operativo Haiku.
- È stato interrotto il supporto per la modalità operativa con chiavi statiche (si consiglia di utilizzare la modalità TLS), NTLMv1, driver Windows wintun, OpenSSL 1.0.2, mbedTLS 2.x, compressione dei dati prima dell'invio, opzioni «—memstats» e «—opt-verify».
Fonte: opennet.ru
