OpenVPN

De Viquipèdia
Dreceres ràpides: navegació, cerca

OpenVPN és una solució de connectivitat obtinguda a partir de programari: SSL (Secure Sockets Layer) VPN Virtual Private Network (xarxa virtual privada), OpenVPN ofereix connectivitat punt- a-punt amb validació jeràrquica d'usuaris i host connectats remotament, és una molt bona opció en tecnologies Wi-Fi (xarxes sense fils EEI 802.11) i permet utilitzar una gran configuració, entre les quals balanceig de càrregues. Està publicat sota la llicència GPL, de programari lliure.[1]

Introducció[modifica | modifica el codi]

OpenVPN, és un producte de programari creat per James Yonan l'any 2001 i que ha estat millorant des d'aleshores.

Cap altra solució ofereix una barreja semblant de seguretat a nivell empresarial, seguretat, facilitat d'ús i riquesa de característiques.

És una solució multiplataforma que ha simplificat molt la configuració de VPN's deixant enrere els temps d'altres solucions difícils de configurar com IPsec i fent-la més accessible per a gent inexperta en aquest tipus de tecnologia.

Suposem que necessitem comunicar diferents sucursals d'una organització. A continuació veurem algunes solucions que s'han ofert com a resposta a aquest tipus de necessitats.

En el passat les comunicacions es realitzaven per correu, telèfon o fax. Avui en dia hi ha factors que fan necessària la implementació de solucions més sofisticades de connectivitat entre les oficines de les organitzacions al llarg del món.

Aquests factors són:

  • L'acceleració dels processos de negocis i la seva conseqüent augment en la necessitat d'intercanvi flexible i ràpid d'informació.
  • Moltes organitzacions tenen diverses sucursals en diferents ubicacions i també tele treballadors remots des de casa, els que necessiten intercanviar informació sense cap demora, com si estiguessin físicament junts.
  • La necessitat de les xarxes de computació de complir alts estàndards de seguretat que assegurin l'autenticitat, integritat i disponibilitat.


Línies dedicades
Les necessitats abans esmentades es satisfeien en principi posant línies dedicades entre les diferents ubicacions remotes a un cost molt més gran que el de simple accés a Internet. Es necessitaven connexions físiques reals necessitant d'un proveïdor en cada lloc resultant en una sola línia de comunicació entre dues parts.

Per exemple, per a una xarxa de 4 nodes en la qual es busqués comunicació de tots amb tots, caldria tendir 6 línies de comunicació.

A més, per donar connectivitat a treballadors domèstics o viatgers s'implementaven serveis RAS1 per a aquells que necessitaven connectar temporalment mitjançant connexions de mòdem o línies ISDN2 on l'organització es comportava com un proveïdor d'Internet (ISP).

Xarxa de 4 nodes amb comunicació de tots amb tots

Accés mitjançant Internet i VPNs

Amb l'arribada d'Internet i la baixa de costos en connectivitat es van desenvolupar noves tecnologies. Va sorgir llavors la idea d'utilitzar Internet com a mitjà de comunicació entre els diferents llocs de l'organització. Sorgeix així la idea de les VPN's que són "Virtuals" i "Privades". Virtuals perquè no són xarxes directes reals entre parts, sinó només connexions virtuals proveïdes mitjançant programari sobre la xarxa Internet. A més són privades perquè només la gent degudament autoritzada pot llegir les dades transferides per aquest tipus de xarxa aconseguint la seguretat mitjançant la utilització de moderns mecanismes de criptografia. Reprenent l'exemple anterior d'una organització amb quatre llocs, ara només necessitem quatre connexions a Internet en lloc de les sis dedicades d'abans. A més els que es connecten temporalment, també ho fan mitjançant una connexió a Internet, molt més barata i accessible des de molts llocs, com per exemple de cybers cafès.

Xarxa de quatre nodes amb comunicació via Internet

Usos de les VPN's[modifica | modifica el codi]

Les VPN's es fan servir per:

  • Connexió entre diversos punts d'una organització a través d'Internet
  • Connexions de treballadors domèstics o de camp amb IP's dinàmiques
  • Solucions extranet per a clients o organitzacions associades amb els quals es necessita intercanviar certa informació en forma privada però no se'ls ha de donar accés a la resta de la xarxa interna.
  • A més ofereix una bona fiabilitat en la comunicació d'usuaris mòbils i també en unir dos punts distants com agències d'una empresa dins d'una sola xarxa unificada.

Implementació de VPN[modifica | modifica el codi]

Suposem que es tenen dos llocs d'una organització connectats a Internet. En ambdós es comptarà amb un equip de connexió a la xarxa de xarxes que complirà la funció de ruteo cap ai des d'Internet així com firewall per protegir d'accessos no autoritzats. El programari VPN ha d'estar instal·lat en aquest tallafocs o algun dispositiu protegit per ell. Un dels llocs serà el "servidor" i serà el lloc que conté la informació i sistemes que volem compartir, mentre que l'altre l'anomenarem "client". El servidor serà llavors configurat per acceptar connexions des del client (i viceversa). Arribat aquest punt haurem aconseguit tenir dos llocs comunicats com en una xarxa directa real però encara no és una VPN atès que falta implementar la "privacitat", ja que qualsevol node intermedi d'Internet pot llegir la informació que viatja sense protecció. El que s'ha de fer tot seguit és establir mecanismes de xifrat que mitjançant l'ús de claus assegurin que només equips o persones amos d'aquestes claus puguin accedir a les dades enviades per la VPN. Totes les dades enviats del punt A al B hauran de ser xifrats abans de ser enviats i desxifrats en l'altre extrem per a posteriorment ser lliurats normalment al seu destinatari final. Un dels factors que diferencien a una implementació de VPN d'una altra, són els mecanismes que utilitzen per xifrar i distribuir claus a tots els integrants d'aquesta xarxa.

Protocols[modifica | modifica el codi]

Les solucions de VPN poden ser implementades a diferents nivells del model OSI de xarxa.

Implementacions de capa 2 - Enllaç

L'encapsulament a aquest nivell ofereix certs avantatges, ja que permet transferències sobre protocols no-IP, com per exemple IPX4 de Netware Systems. Teòricament, les tecnologies implementades en capa 2 poden tunelitzar qualsevol tipus de paquets i en la majoria dels casos el que es fa és establir un dispositiu virtual PPP5 amb el qual s'estableix la connexió amb l'altre costat del túnel .

Alguns exemples d'aquestes tecnologies:

  • PPTP: Point to Point Tunneling Protocol. Desenvolupat per Microsoft, és una extensió de PPP.

El seu principal desavantatge és que només pot establir un túnel per vegada entre parells.

  • L2F: Layer 2 Forwarding. Desenvolupat per l'empresa Cisco principalment, ofereix millors possibilitats que PPTP principalment en l'ús de connexions simultànies.
  • L2TP: Layer 2 Tunneling Protocol. Usat per Cisco i altres fabricants, s'ha convertit en estàndard de la indústria i combina els avantatges de PPTP i L2F ia més eliminant els desavantatges. Atès que aquesta solució no ofereix mecanismes de seguretat, per al seu ús haurà de ser combinada amb altres mecanismes generalment implementats en capa 3 del model OSI.
  • L2Sec: Layer 2 Security Protocol. Desenvolupat per proveir una solució amb seguretat, utilitza per a ells SSL/TLS encara imposa una sobrecàrrega bastant gran en la comunicació per aconseguir-ho.

Implementacions de capa 3 - Xarxa

IPsec és la tecnologia més acceptada en aquest punt i va ser desenvolupada com un estàndard de seguretat d'Internet en capa 3. IPsec es pot utilitzar per encapsular qualsevol tràfic de capa 3 però no el trànsit de capes inferiors, de manera que no es podrà utilitzar per protocols no-IP com IPX o missatges de broadcast. El seu principal avantatge és que pot ser usat pràcticament en qualsevol plataforma existint una gran varietat de solucions tant de programari com de maquinari.

Hi ha dos mètodes principals usats per IPsec:

  • Mode Túnel . Tots els paquets IP són encapsulats en un nou paquet i enviats a través del túnel sent desempaquetats en l'altre extrem i posteriorment dirigits al seu destinatari final. En aquesta manera, es protegeixen les adreces IP d'emissor i receptor així com la resta de les metadades dels paquets.
  • Mode Transport . Només la càrrega útil (payload) de la secció de dades és xifrada i encapsulada. La sobrecàrrega llavors, és sensiblement menor que en el cas anterior, però s'exposen les metadades a possibles atacants que podran veure qui s'està comunicant amb qui.

Implementacions de capa 7 - Aplicació

També és possible establir túnels en la capa d'aplicació i de fet són àmpliament utilitzats avui dia sent algunes aproximacions solucions com SSL6 i TLS7. L'usuari accedeix a la VPN de l'organització a través d'un navegador iniciant la connexió en un lloc web segur (httpS-Secured web).

A més, existeixen altres productes com SSL-Explorer i altres que ofereixen una combinació de gran flexibilitat, seguretat forta i facilitat de configuració. La seguretat és assolida mitjançant xifrat del tràfic usant mecanismes SSL/TLS, els quals han provat ser molt segurs i estan sent constantment sotmesos a millores i proves.

Implementació OpenVPN

OpenVPN és una excel·lent nova solució per a VPN que implementa connexions de capa 2 o 3, usa els estàndards de la indústria SSL/TLS per xifrar i combina tots les característiques esmentades anteriorment en les altres solucions VPN. El seu principal desavantatge de moment és que hi ha molt pocs fabricants de maquinari que l'integren en les seves solucions. De tota manera no cal preocupar-sempre que comptem amb un Linux en el qual podrem implementar sense cap problema mitjançant programari.

Seguretat en VPN[modifica | modifica el codi]

Per xifrar dades s'usen Passwords o claus de xifrat.

OpenVPN té dues maneres considerats segurs, un basat en claus estàtiques pre-compartides i un altre en SSL/TLS usant certificats i claus RSA.

Quan ambdós costats fan servir la mateixa clau per xifrar i desxifrar les dades, estem fent servir el mecanisme conegut com a "clau simètrica" ​​i la clau ha de ser instal·lada a totes les màquines que prendran part en la connexió VPN.

Tot i que SSL/TLS+claus RSA és per lluny l'opció més segura, les claus estàtiques tenen l'avantatge de la simplicitat.

Veurem a continuació aquest mètode i altres que aporten més seguretat i facilitat de distribució.

Xifrat simètric i claus pre-compartida

Qualsevol que tingui la clau pot desxifrar el trànsit, de manera que si un atacant l'obtingués comprometria el trànsit complet de l'organització, ja que prendria part com un integrant més de la VPN.

Xifrat simètric i claus pre-compartides

És per això que mecanismes com IPsec canvien les claus cada cert període, associant a aquestes certs períodes de validesa, anomenats "temps de vida" o "lifetime". Una bona combinació de temps de vida i llarg de la clau asseguraran que un atacant no pugui desxifrar la clau a temps, fent que quan finalment l'obtingui (perquè ho farà), ja no li serveixi per estar fora de vigència. IPSec utilitza el seu propi protocol per intercanviar claus anomenat IKE9 que ha estat desenvolupat des de mitjans dels noranta i encara no ha estat acabat.

Xifrat asimètric amb SSL/TLS

SSL/TLS fa servir una de les millors tecnologies de xifrat per assegurar la identitat dels integrants de la VPN.

Cada integrant té dues claus, una pública i una altra privada.

La pública és distribuïda i usada per qualsevol per xifrar les dades que seran enviats a la contrapart qui coneix la clau privada que és l'única que serveix per desxifrar les dades. El parell de clau pública/privada és generat a partir d'algorismes matemàtics que asseguren que només amb la clau privada és possible llegir les dades originals. El dia que algú trobi algun defecte a aquest algorisme, tots aquells connectats a Internet estaran compromesos en forma instantània.

Xifrat asimètric amb SSL/TLS

Cal destacar que la clau privada ha de romandre secreta mentre que la clau pública ha de ser intercanviada perquè ens puguin enviar missatges.

Seguretat SSL/TLS

Les biblioteques SSL/TLS són part del programari OpenSSL que vénen instal·lades a qualsevol sistema modern i implementen mecanismes de xifrat i autenticació basades en certificats. Els certificats generalment són emesos per entitats de reconeguda fiabilitat encara que també podem emetre'ls nosaltres mateixos i usar-los en la nostra pròpia VPN. Amb un certificat signat, el propietari del mateix és capaç de demostrar la seva identitat a tots aquells que confien en l'autoritat certificadora que el va emetre.

Avantatges i Desavantatges d'OpenVPN[modifica | modifica el codi]

Avantatges OpenVPN proveeix seguretat, estabilitat i comprovats mecanismes de xifrat sense patir la complexitat d'altres solucions VPN com les de IPsec.

A més ofereix avantatges que van més enllà que qualsevol altra solució com ser:

  • Possibilitat d'implementar dos modes bàsics, en capa 2 o capa 3, amb el que s'aconsegueixen túnels capaços d'enviar informació en altres protocols no-IP com IPX o broadcast (NetBIOS).
  • Protecció dels usuaris remots. Un cop OpenVPN ha establert un túnel el tallafoc de l'organització protegirà el portàtil remot tot i que no és un equip de la xarxa local. D'altra banda, només un port de xarxa pot ser obert cap a la xarxa local pel remot assegurant protecció en ambdós sentits.
  • Connexions OpenVPN poden ser realitzades a través de gairebé qualsevol firewall. Si es té accés a Internet i es pot accedir a llocs httpS, llavors un túnel OpenVPN hauria de funcionar sense cap problema.
  • Suport per proxy. Funciona a través de proxy i pot ser configurat per executar com un servei TCP o UDP ia més com servidor (simplement esperant connexions entrants) o com a client (iniciant connexions).
  • Només un port al firewall ha de ser obert per permetre connexions, atès que des OpenVPN 2.0 es permeten múltiples connexions al mateix port TCP o UDP.
  • Les interfícies virtuals (tun0, tun1, etc.) Permeten la implementació de regles de firewall molt específiques.
  • Tots els conceptes de regles, restriccions, reenviament i NAT10 poden ser usats en túnels OpenVPN.
  • Alta flexibilitat i possibilitats d'extensió mitjançant scripting. OpenVPN ofereix nombrosos punts per a executar scripts individuals durant la seva arrencada.
  • Suport transparent per IPs dinàmiques. S'elimina la necessitat d'usar adreces IP estàtiques en ambdós costats del túnel.
  • Cap problema amb NAT. Tant els clients com el servidor poden estar a la xarxa usant solament IPs privades.
  • Instal·lació senzilla en qualsevol plataforma. Tant la instal·lació com el seu ús són increïblement simples.

Disseny modular. Es basa en un excel·lent disseny modular amb un alt grau de simplicitat tant en seguretat com a xarxa.

Desavantatges

  • No té compatibilitat amb IPsec que justament és l'estàndard actual per solucions VPN.
  • Manca de massa crítica.
  • Encara hi ha poca gent que coneix com usar OpenVPN.
  • Al dia d'avui només es pot connectar a altres ordinadors. Però això està canviant, atès que ja existeixen companyies desenvolupant dispositius amb clients OpenVPN integrats.

Comparació entre OpenVPN i IPsec VPN[modifica | modifica el codi]

IPsec OpenVPN
Estàndard de la tecnologia VPN No compatible amb IPsec
Plataformes de maquinari (dispositius, aparells) Només a ordinadors, però en tots els sistemes operatius disponibles, ja comencen a trobar dispositius que compten amb OpenVPN
Tecnologia coneguda i provada Provada i segueix en creixement
Moltes interfícies gràfiques disponibles No interfícies gràfiques professionals, encara que ja hi ha alguns projectes prometedors
Modificació complexa del stack IP Tecnologia senzilla
Necessitat de modificacions crítiques al nucli Interfícies de xarxa i paquets estandarditzats
Necessitat de permisos d'administrador Executa en l'espai de l'usuari i pot ser chroot-ed
Diferents implementacions de diferents proveïdors poden ser incompatibles entre si Tecnologies de xifrat estandarditzades
Configuració complexa i tecnologia complexa Facilitat, bona estructuració, tecnologia modular i facilitat de configuració
Corba d'aprenentatge molt pronunciada Fàcil d'aprendre i èxit ràpid per a principiants
Necessitat d'ús de molts ports i protocols en el tallafocs Utilitza només un port del tallafocs
Problemes amb adreces dinàmiques en ambdues puntes Treballa amb servidors de noms dinàmics com DynDNS o No-IP amb reconexiones ràpides i transparents
Problemes de seguretat de les tecnologies IPsec SSL/TLS com a estàndard de criptografia
Control de trànsit (Traffic shaping)
Velocitat (més de 20 Mbps en màquines de 1 GHz)
Compatibilitat amb tallafocs i proxies
Cap problema amb NAT (banda i banda pot ser xarxes NATeadas)
Possibilitats per road warriors

Bibliografia[modifica | modifica el codi]

A Linux:

  • /Usr/share/doc/openvpn
  • Man openvpn

Enllaços externs[modifica | modifica el codi]

Nota[modifica | modifica el codi]

  1. Markus Feilner. Open VPN: building and operating virtual private networks. Packt Publishing Ltd, 2006. ISBN 9781904811855 [Consulta: 17 abril 2011].