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 di OpenVPN è distribuito sotto licenza GPLv2 e pacchetti binari pronti vengono forniti per Debian, Ubuntu, CentOS, RHEL e Windows.
Novità principali:
- A VPN-nei server è stata aggiunta la possibilità di aprire più socket per connessioni in entrata, per esempio, per accettare simultaneamente connessioni tramite UDP e TCP o su porte di rete diverse.
- È stata effettuata la transizione all'uso della nuova versione del modulo DCO, inclusa nel kernel Linux 6.16. Il modulo, che fa parte della composizione principale del kernel, ha un'API modificata e viene fornito con il nome «ovpn». Il supporto per il vecchio modulo ovpn-dco è stato interrotto. Il modulo gestisce le operazioni di crittografia, il trattamento dei pacchetti e la gestione del canale di comunicazione nel lato del kernel Linux, consentendo di eliminare le spese generali associate al passaggio di contesto, ottimizzando le prestazioni grazie all'accesso diretto alle API interne del kernel e evitando la lenta trasmissione di dati tra il kernel e lo spazio utente (la crittografia, la decrittazione e il routing vengono eseguiti dal modulo senza inviare il traffico a un gestore nello spazio utente).
- Nella versione per Windows: nei filtri WFP è stato attivato il flag block-local; è stata garantita la generazione di interfacce di rete aggiuntive secondo necessità; è stato garantito l'avvio di servizi automatici sotto un utente non privilegiato; per la gestione delle impostazioni DNS è stata utilizzata la 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 pacchetti a 64 bit, utilizza l'operazione XOR nella formazione del vettore di inizializzazione.
- È stato aggiunto il supporto per lwipovpn, un emulatore di interfacce di rete tun/tap in spazio utente, realizzato sulla base dello stack TCP/IP lwIP. Utilizzando l'opzione «—dev-node unix:/path/to/lwipovpn», è possibile emulare un client VPN completo sulla stessa macchina per testare e debug OpenVPN.
- È stata aggiunta la possibilità di aggiornare parte delle impostazioni del client (IP, routing, MTU, DNS) tramite l'invio server di messaggi di controllo PUSH_UPDATE.
- Nel client openVPN per Linux, BSD e macOS è stata aggiunta l'opzione «—dns-updown» per eseguire uno script di applicazione delle 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.
- È stata aggiunta la supporto per il sistema operativo Haiku.
- È stata interrotta la supporto per la modalità di lavoro 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
