# OpenVPN

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 «IEEE 802.11») i permet utilitzar una gran configuració, entre les quals hi ha el balanç de càrrega. Està publicat sota la llicència GPL, de programari lliure.

## Introducció

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.
Si l'usuari necessités comunicar diferents sucursals d'una organització, a continuació es mostren algunes solucions que s'han ofert per a aquest tipus de demanda.
Abans es realitzaven les comunicacions per correu, telèfon o fax. Avui en dia, hi ha factors que fan necessària la implementació de solucions de connectivitat més sofisticades entre les oficines de les organitzacions a tot el món.
Aquests factors són:
* L'acceleració dels processos de negocis i el seu consegüent augment de la necessitat d'intercanvi flexible i ràpid d'informació.
* Moltes organitzacions tenen diverses sucursals en diferents ubicacions i, també, treballadors remots des de casa, 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. Calien connexions físiques reals, amb 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).
Accés mitjançant Internet i VPNs
Amb l'arribada d'Internet i la baixada 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 es necessiten quatre connexions a Internet en comptes 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 econòmica i accessible des de molts llocs, com per exemple de cybers cafès.

## Usos de les VPN's

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 d'extranet per a clients o organitzacions associades amb els quals es necessita intercanviar certa informació de forma privada, però no se'ls ha de donar accés a la resta de la xarxa interna.
* També ofereix una bona fiabilitat en la comunicació d'usuaris mòbils i en unir dos punts distants com agències d'una empresa dins d'una sola xarxa unificada.

## Implementació de VPN

Si l'usuari té dos llocs d'una organització connectats a Internet, en ambdós comptarà amb un equip de connexió a la xarxa de xarxes que complirà la funció d'enrutament cap a i 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 es volen compartir, mentre que l'altre s'anomenarà "client". El servidor serà llavors configurat per acceptar connexions des del client (i viceversa). Arribats a aquest punt, havent 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 enviades del punt A al B hauran de ser xifrades abans de ser enviades i desxifrades en l'altre extrem per, posteriorment, ser lliurades normalment al seu destinatari final. Un dels factors que diferencien 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

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 cada vegada entre parells.
* L2F: Layer 2 Forwarding. Desenvolupat per l'empresa Cisco, principalment, ofereix millors possibilitats que PPTP sobretot en l'ús de connexions simultànies.
* L2TP: Layer 2 Tunneling Protocol. Usat per Cisco i altres fabricants, ha esdevingut un estàndard de la indústria i combina els avantatges de PPTP i L2F i, a 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, i 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:
* ModeTú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. D'aquesta manera, es protegeixen les adreces IP d'emissor i receptor així com la resta de les metadades dels paquets.
* ModeTransport. 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 el 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 nova excel·lent 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 totes 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-se sempre que es compti amb un Linux, en el qual es pot implementar sense cap problema mitjançant programari.

## Seguretat en VPN

Per xifrar dades s'usen Passwords o claus de xifrat. OpenVPN té dos modes 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, s'utilitza el mecanisme conegut com a "clau simètrica", la qual 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 de lluny l'opció més segura, les claus estàtiques tenen l'avantatge de la simplicitat.
S'explicarà 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.
É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 llargada 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 enviades 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 de forma instantània.
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, els quals venen 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é poden ser emesos per l'usuari mateix, 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

Avantatges OpenVPN proveeix seguretat, estabilitat i comprovats mecanismes de xifrat sense patir la complexitat d'altres solucions VPN com les d'IPsec.
A més, ofereix avantatges que van més enllà que qualsevol altra solució, com pot ser:
* Possibilitat d'implementar dos modes bàsics, en capa 2 o capa 3, amb el qual 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, que 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-se com un servei TCP o UDP i, a 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 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

| 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 reconnexions 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 NATeades). |
| | Possibilitats per road warriors. |

## Referències

* ↑ «Change Log» (en anglès). openvpn.net. [Consulta: 28 febrer 2016].
* ↑ «Overview of changes in OpenVPN v2.3» (en anglès). openvpn.net. [Consulta: 28 febrer 2016].
* ↑ Markus Feilner. Open VPN: building and operating virtual private networks. Packt Publishing Ltd, 2006. ISBN 9781904811855 [Consulta: 17 abril 2011].

## Bibliografia

* OpenVPN: Building and Integrating Virtual Private Networks - Markus Feilner - ISBN 1-904811-85-X

### Informació als sistemes operatius Unix-like

   * Directori «/usr/share/doc/openvpn»
   * Línia d'ordres man openvpn

## Enllaços externs

* OpenVPN - Lloc web oficial
* Lloc web d'Ubuntu. http://www.ubuntu-es.org/node/5290 Arxivat 2007-01-08 a Wayback Machine.
* http://laurel.datsi.fi.upm.es/# rpons/openvpn_como/