OpenVPN

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
OpenVPN
software
Siglă
Tip Securitate IT
Dezvoltator James Yonan
Data primei versiuni 23 martie 2002
Ultima versiune 2.5.3 (17 iunie 2021)
Sistem de operare Multiplatform
Limba C.
Licență Licență publică generală GNU
( licență gratuită )
Site-ul web openvpn.net

OpenVPN este un program open source VPN scris de James Yonan și lansat sub GPL . Este folosit pentru a crea tuneluri criptate punct-la-punct sigure între două computere printr-o rețea nesecurizată, cum ar fi Internetul . Permite gazdelor să se autentifice între ele prin intermediul unor chei private partajate, certificate digitale sau acreditări de utilizator / parolă. Folosește bibliotecile de criptare OpenSSL și protocolul SSLv3 / TLSv1 . Este disponibil pe o gamă largă de platforme precum GNU / Linux , xBSD , macOS ,Solaris , Android și Windows . Întregul program este conținut într-un singur fișier executabil care poate funcționa atât în ​​modul server, cât și în modul client , un fișier de configurare opțional și unul sau mai multe fișiere care conțin cheile , în funcție de metoda de autentificare utilizată. [1]

Criptare

OpenVPN folosește biblioteci OpenSSL atât pentru criptarea canalelor de date, cât și a canalelor de control. Îi face pe OpenSSL să facă toate activitățile de criptare și autentificare, permițând OpenVPN să aleagă dintre toți algoritmii de criptare disponibili în pachetul OpenSSL. Suportul pentru mbed TLS este disponibil începând cu versiunea 2.3. Poate folosi accelerarea hardware pentru o performanță mai bună de criptare.

Autentificare

OpenVPN permite computerelor să se autentifice între ele în mai multe moduri:

Metoda cheii secrete partajate este cea mai simplă și imediată de implementat, cea bazată pe certificate este cea mai robustă și versatilă, dar necesită definirea unei infrastructuri de chei publice ( PKI ). Autentificarea utilizatorului / parolei este o caracteristică nouă introdusă cu versiunea 2.0 și poate fi utilizată cu sau fără certificatul clientului (serverul trebuie să aibă în continuare propriul certificat). Pachetul tar cod sursă include un script perl pentru a verifica acreditările utilizator / parolă prin intermediul modulelor PAM și al pluginurilor C -auth pam .

Net

OpenVPN concentrează tot controlul și traficul de date pe un singur port . Poate folosi portul UDP (preferat și implicit) sau portul TCP . Spre deosebire de alte programe sau protocoale VPN, cum ar fi LP2P sau PPTP , acesta nu necesită alte protocoale pentru a gestiona autentificarea sau datele, ceea ce îi permite să funcționeze prin majoritatea serverelor proxy (inclusiv HTTP ), evitând limitele și blocurile impuse de ISP. simplificați integrarea cu NAT-urile . Serverul poate „împinge” unele opțiuni de configurare a rețelei către clienți. Acestea includ adresa IP, rute și câteva opțiuni de conexiune.

OpenVPN oferă două tipuri de interfață de rețea utilizând driverul Universal TUN / TAP ; poate crea atât tuneluri IP punct la punct la nivelul 3 al stivei OSI (configurație de rutare ), cât și interfețe Ethernet virtuale „tap” de nivel 2 pe care să poată transporta tot traficul Ethernet, inclusiv transmisiile (configurație de tip bridge ). OpenVPN poate utiliza opțional biblioteca de compresie LZO pentru a comprima fluxul de date.

IANA a atribuit oficial portul 1194 către OpenVPN, iar versiunile mai noi ale programului îl folosesc acum ca implicit. Versiunea 2.0 permite unui proces să gestioneze mai multe tuneluri simultane, depășind restricția „un tunel pe proces” din seria 1.x.

Deși OpenVPN poate funcționa utilizând protocolul TCP, utilizarea acestuia necesită o conexiune între client și server, cu stabilitate, lățime de bandă și latență bună, pentru a se asigura că conexiunile TCP tunelate nu expiră. În caz contrar, performanța se degradează foarte mult, aceasta este cunoscută sub numele de „problema de topire TCP”. [2]

Platforme de extensibilitate și utilizare

Extensibilitate

OpenVPN poate fi extins cu plugin-uri sau scripturi terță parte, care pot fi apelate la puncte de intrare definite. Scopul acestui lucru este adesea extinderea OpenVPN cu înregistrări mai avansate, îmbunătățirea autentificării cu nume de utilizator și parolă, accelerarea actualizărilor firewallului și așa mai departe. Pluginurile sunt module care se pot încărca rapid, de obicei scrise în limbajul C, în timp ce interfața scripturilor poate executa orice script. În codul sursă OpenVPN există câteva exemple ale acestor pluginuri, inclusiv un plugin de autentificare (PAM). Există, de asemenea, multe pluginuri pentru autentificarea împotriva bazelor de date LDAP sau SQL, inclusiv SQLite și MYSQL.

Siguranță

OpenVPN oferă mai multe funcții de securitate internă: poate elibera privilegii de root (nu este disponibil pe Microsoft Windows), poate utiliza mlockall pentru a împiedica paginarea datelor sensibile în memoria virtuală de pe disc și poate fi forțat într-o închisoare chroot (nu este disponibil pe Microsoft Windows) după inițializare.

În plus, funcția de autentificare a unui singur pachet HMAC este, de asemenea, disponibilă pentru a adăuga un nivel suplimentar de securitate fazei în care este stabilită conexiunea (definit „HMAC Firewall” de către autor); în acest caz, orice pachet care nu avea semnătura HMAC prestabilită ar fi pur și simplu aruncat fără a fi procesat, ceea ce permite ca gazda să fie apărată de:

În cele din urmă, configurând clienții să accepte numai certificate de tip server de la mașina care solicită o conexiune, puteți evita atacurile Man in the middle .

Implementări de firmware și software

Implementări firmware

OpenVPN a fost integrat în pachetele de firmware ale routerului precum Vyatta , pfSense , DD-WRT , OpenWrt și Tomato, permițând astfel utilizatorilor să comute OpenVPN în modul client sau server din routerele lor de rețea. Un router care rulează OpenVPN în modul client, de exemplu, permite oricărui dispozitiv din rețea să acceseze VPN fără a fi nevoie să instaleze OpenVPN. A fost implementat în unele rute de producători, cum ar fi D-Link DSR 250 și unele rotoare MikroTik. Implementarea MikroTik nu acceptă protocolul UDP sau compresia LZO, ceea ce limitează rata de transfer realizabilă. MikroTik a spus în 2010 că nu va continua să dezvolte OpenVPN, ci SSTP.

Implementări software

OpenVPN a fost integrat cu SoftEther VPN, un protocol open-source de server VPN multiplu, pentru a permite utilizatorilor să se conecteze la serverul VPN de la clienții OpenVPN existenți.

Mai jos este o listă de software care utilizează OpenVPN.

Firmware

Pachet

Licență Dezvoltator Legătură
DD-WRT Liber NewMedia-NET

GmbH

dd-wrt.com
IPFire Liber Dezvoltare bazată pe comunitate ipfire.org
OpenWRT Liber Dezvoltare bazată pe comunitate OpenWRT.org
pfSense Liber Rubicon

Communications, LLC

(Netgate)

pfsense.org
Untangle Liber Untangle, Inc. Untangle.com
Roșie Liber Keith Moyer tomatovpn.keithmoyer.com


Ediții

OpenVPN este disponibil în două versiuni:

  1. Ediția comunității OpenVPN, care este o versiune gratuită open-source.
  2. Serverul de conectare OpenVPN (OpenVPN-AS) se bazează pe ediția comunitară, dar vine cu un cost suplimentar și caracteristici precum integrarea LDAP, serverul SMB, administrarea interfeței web și oferă un set de instrumente de instalare și configurare listate pentru a simplifica implementarea rapidă a unei soluții de acces VPN la distanță. Ediția Access Server depinde în mare măsură de iptables pentru echilibrarea încărcării, de exemplu. Din acest motiv nu a fost niciodată disponibil pentru Windows. Această versiune este, de asemenea, capabilă să creeze rapid programe de instalare pentru clienți („OpenVPN Connect”), care includ un profil de client pentru conectarea la un anumit server de conectare. Cu toate acestea, utilizatorul nu trebuie să aibă un client Access Server pentru a se conecta la Access Server.

Notă

  1. ^ Foaie de date OpenVPN ( PDF ), la openvpn.net .
  2. ^ De ce TCP peste TCP este o idee proastă , la sites.inka.de . Adus pe 24 ianuarie 2018 .

Elemente conexe

Alte proiecte

linkuri externe