VPN: ¿Qué es? ¿Para qué sirve? ¿Para qué no sirve?

Siguiendo con la serie de entradas sobre ciberseguridad vamos a hablar hoy sobre conexiones VPN, ya que seguramente has visto en los últimos tiempos muchos anuncios de distintas empresas que ofrecen este servicio. Antes de que lo preguntes, no te recomiendo usar ninguna gratuita, al menos si tu intención es usarla para mejorar tu seguridad.

Tablet navegando a través de VPN
Photo by Dan Nelson on Pexels.com

Empezando por lo básico ¿Qué es una VPN? VPN es el acrónimo de Virtual Private Network (Red Virtual Privada en castellano) y nombra a una tecnología que nos permite unir varios equipos como si estuvieran en una red interna (LAN), pero a través de una red pública como internet. Lo que generalmente ves anunciado cuando te ofertan una VPN son servicios de empresas, que te venden una aplicación para que navegues a través de su configuración VPN con tráfico cifrado y de sus servidores, que para darte mayor seguridad funcionarán como servidores proxy.

¿Para qué sirve una VPN?

Uno de los usos más habituales de esta tecnología es acceder remotamente a la red de una organización como si se estuviera trabajando conectado a la red local. Pensemos en un empleado que teletrabaje y necesite acceder a una serie de documentos que están en un servidor de la empresa, mediante una VPN podría acceder a ellos aunque esté en la otra punta del planeta. También podría servirnos para acceder al NAS de nuestra casa si estamos de viaje, conectándonos desde nuestro hotel. Para este uso muchas empresas no contratan un servicio externo y simplemente configuran una VPN en su red y sus servidores, para que sus trabajadores puedan acceder remotamente de forma segura.

Las VPN suelen tener un cifrado fuerte, así que también son una buena alternativa para añadir una capa de seguridad a mayores si estamos navegando en una red abierta que no sea muy confiable (la wifi de un bar o de un aeropuerto, por ejemplo). Si tienes que acceder a una web que requiere autenticación (usuario y contraseña, por ejemplo la web de tu banco) y estás conectado a una de estas wifis, el uso de una VPN ayudará a evitar que un delincuente pueda capturar nuestros datos de navegación o incluso que pueda redirigirnos a una web fraudulenta, todo eso gracias a la capa de cifrado y a la configuración de las DNS de la VPN, es lo que se llama túnel de datos.

Portátil usando VPN
Photo by Stefan Coders on Pexels.com

Otro de los usos habituales de una VPN es saltarse bloqueos regionales. A veces un contenido on-line no está disponible en nuestro país, puede ser por una cuestión de censura (el gobierno del país no quiere que sus ciudadanos accedan a esa información) o puede ser por una cuestión de negocio (se trata de un producto comercial y sus derechos no están disponibles en el país), pero el resultado es que no podemos acceder a dichos datos. Cuando una web se bloquea para una región la responsabilidad del bloqueo recae en los proveedores de Internet ¿Cómo funciona esto? Al usar estos servicios de VPN nuestra salida a internet se hace a través de un servidor proxy, explico con más detalles: cuando navegamos de forma normal nuestro equipo se comunica con el router, que pide a nuestro proveedor que nos haga llegar la información que solicitamos y este es el que decide si nos la envía o no. Si navegamos a través de una VPN lo que hacemos es decirle a nuestro proveedor que nos conecte al servidor proxy de dicha VPN, generalmente las empresas nos darán a elegir varios servidores en distintos países, y en este caso es el servirdor quien pedirá a su proveedor de internet esa información que luego nos enviará cifrada. Como la petición no se hace desde nuestra IP, sino desde el servidor proxy a través del que navegamos, estaríamos sometido a los bloqueos regionales del proveedor del país donde se encuentra ese servidor y no de los del nuestro. Por ejemplo, cuando no había Netflix en España había gente que se hacía una cuenta en el Netflix de EEUU, si intentaba acceder sin VPN recibían un mensaje informándoles de que el servicio no se encontraba disponible en su país, en cambio si usaban una VPN que tuviera en servidor en los EEUU podían acceder como si estuvieran allí.

¿Para qué NO sirve una VPN?

En algunos anuncios de servicios VPN he leído «Aumenta tu velocidad de conexión«, así en letras grandes que harán pensar al potencial cliente que si contratan esa VPN su conexión a internet será más rápida. Todo lo contrario, las VPN no aumentan la velocidad sino que la ralentizan al tener que cifrar los datos y al tener que pasar la información por más nodos. Tampoco es que estos anuncios sean un timo, normalmente la letra pequeña suele aclarar que lo de «Aumenta tu velocidad…» se refiere a que es más rápida que otras VPN de la competencia (las VPN gratuitas suelen ser especialmente lentas).

A muchos os sorprenderá pero otra cosa para la que no sirve una VPN es para garantizar nuestro anonimanto en la red. La mayoría de los anuncios prometen eso, «navega de forma anónima«, pero esto no es realmente así, o más bien no es es exactamente así. Como ya comentamos antes, al navegar a través de una VPN nuestras peticiones hacia internet salen desde el servidor de la misma y la comunicación con dicho servidor desde nuestro equipo está cifrada, lo cual tiene varios efectos: como ya comentamos antes, nuestro proveedor no puede saber qué estamos viendo en Internet, también nos protege de ser espiados dentro de nuestra propia red y además hará que el servicio al que accedamos no pueda ver nuestra IP y los datos que pueden sacarse de ella (como proveedor de internet o ubicación), pues lo que verá será la IP del servidor proxy al que nos conectamos. Lo citado es todo el «anonimato» que nos puede dar la VPN, tenemos que ser conscientes de varios puntos: la VPN no nos da ninguna garantía ante cookies de rastreo, para eso tendríamos que recurrir mejor a las pestañas de navegación anónimas de nuestro navegador. Además, el servidor de la VPN puede registrar nuestro tráfico, la privacidad en una VPN no viene por el diseño y las medidas técnicas de la misma sino por sus políticas de empresa y por las obligaciones legales, muchas VPN gratuitas se financian vendiendo esos datos de navegación de sus usuarios y en caso de requerimiento judicial pueden identificar a un usuario. Comento a mayores que he visto a gente usar una VPN para luego entrar en su cuenta de Youtube o Facebook creyendo que de esa forma esos servicios no pueden saber qué hacen, otro error, con tu cuenta conectada estarán registrando tu actividad por mucha VPN que uses.

¿Merece la pena contratar una?

Pues depende ya de cada usuario valorar si merece la pena contratarla. Desde luego una VPN es una buena herramienta para el teletrabajo, en algunos casos incluso esencial. También nos da un extra de seguridad si tenemos que conectarnos habitualmente, por el motivo que fuere, a través de redes poco confiables. Si lo que buscas es anonimato en ese caso la VPN, como ya hemos visto, no te lo garantiza. Si hacemos caso a Snowden lo mejor sería combinar VPN+Red TOR para esto. Como ya hemos comentado antes, algunos servicios gratuitos son muy lentos y comercian con los datos de navegación de los usuarios, así que lo más recomendable si quieres una VPN es un servicio de pago.

Exportar la configuración de las VPN de Windows a otros equipos

El otro día me cambiaron el equipo en el curro y me puse a pensar «Ahora a configurar el montón de conexiones VPN de los clientes ¿hay una forma más rápida?» Pues claro que la hay: puedes exportarla de un equipo a otro simplemente copiando el fichero rasphone.pbk ¿Cómo lo hago? Simplemente buscándolo, copiando y pegando, nada más. Te lo puedes llevar en un pendrive o guardártelo en una ubicación en la nube para descargalo de cualquier otro equipo.

¿Cuál es la ruta?

En Windows XP (si todavía lo usas): C:\Documents and Settings\All Users\Datos de programa\Microsoft\Network\Connections\Pbk\rasphone.pbk

En los Windows posteriores (Vista, 7, 8, 10) tienes dos rutas:

Redes creadas para todos los usuarios: C:\ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbk

Redes creadas para un usuario en particular: %userprofile%\AppData\Roaming\Microsoft\Network\Connections\Pbk\rasphone.pbk

Cuando lo copias en otro equipo Windows basta con ejecutarlo, un simple doble click, y ya realizará la conexión a la VPN.

Solucionando el error 809 en Windows al intentar conectar una VPN con L2TP/IPSec.

Hoy configuraba en el trabajo un compañero una conexión VPN a través del firewall de un cliente nuevo y se encontraba siempre con el mismo código de error: el 809.

En principio todos los datos parecían correctos y en mi equipo (Xubuntu) y el de otro compañero (Mac) funcionaba, así que parecía que era algo relativo a la configuración de Windows. Tras un rato de búsqueda por Google me encontré con lo siguiente: Windows por defecto no puede establecer conexiones seguras con servidores que estén ubicados tras un dispositivo que haga NAT.

Entonces ¿cómo solucionamos esto?. Pues siguiendo estos pasos para cambiar esta configuración en el registro:

  • Abrimos el editor de registro regedit
  • Buscamos la clave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent
  • Añadimos un nuevo valor de DWORD de 32 bits que se llame AssumeUDPEncapsulationContextOnSendRule
  • Buscamos también la clave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy
  • Si no existe la clave IPsecThroughNAT la creamos y le ponemos como valor 2, en caso de que exista modificamos su valor a 2.
  • Reiniciamos el equipo.

El valor 2 en estas claves implica que Windows permitirá realizar asociaciones de seguridad tanto si el cliente como el servidor se encuentran tras un dispositivo que haga NAT.

Saltarse la redirección de nba.com hacia la web de AS

Hoy leía un artículo de SoloTriples donde comentan una forma de evitar la redirección que la web nba.com hace a sus lectores, redireccionándolos hacia su socio español: el diario AS. ¿motivos  para querer acceder a la web americana? Pues muchos, desde no querer pasar por un medio AEDE a querer leer alguno de los blogs o artículos de la web original, ya que no traducen todo el material. Como ya decía, en SoloTriples dan una solución, aunque yo hace tiempo tenía la mía.

Hace algún tiempo, en otro artículo, os comentaba la existencia de Hola Unblocker, un complemento para el navegador que nos permite usar una VPN gratuíta para acceder a páginas que, por una cosa u otra, estén bloqueadas en nuestro país. En su día lo utilicé para entrar a webs bloqueadas en España como Roja Directa o The Pirate Bay, para ver un partido en el servicio Orange Arena estando en el extranjero o para desbloquear el acceso a la web de la tv pública irlandesa. ¿Hay alternativas superiores a Hola en cuánto a velocidad y/o seguridad? Aunque realmente no haya pruebas de que Hola sea un servicio inseguro hay quien se plantea que si dada su gratuidad. En todo caso, hay alternativas mejores, pero Hola es gratis y es extremadamente intuitivo.

El primer paso es ir a su página oficial y seguir los pasos para agregarlo a nuestro navegador. Una vez lo tengamos instalado basta con entrar a nba.com y cuando nos redireccione a la web de AS acceder desde allí al enlace de la web original. Una vez en dicha web pulsamos el icono de Hola Unblocker y seleccionamos, de la lista de banderas que nos dará, que a esa página se acceda siempre desde los EEUU. A partir de ese momento debería ya acceder siempre a través de esa VPN evitando así la redirección.

Crear nuestra propia VPN en Ubuntu

Ya hace unos días hablamos de cómo configurar una IP estática en Ubuntu (y MacOS de regalo). Esto, como ya comenté en el artículo en cuestión, es necesario para ciertos servicios, como el que hoy nos atañe: Crear nuestra propia VPN en Ubuntu. Además, el puerto PPTP (1723 TCP) debe estar abierto. Como también necesitamos tener abierto otro puerto que soporte el protocolo GRE, lo mejor es usar la regla para PPTP del router. Manualmente no podemos realizar esta operación, pero las reglas predefinidas sí la realizan.

Una vez con la configuración previa lista, tocará irse al terminal para descargar e instalar el paquete PPTP, con permisos de administrador como para toda instalación. Tal que así:

sudo apt-get install pptpd

Como ya sabéis sudo nos permite realizar una instrucción con permisos de administrador (la primera vez que lo usas en el terminal te pedirá la contraseña). Cuando comience la instalación también os preguntará si queréis instalar el paquete bcrelay, pulsad la S para confirmar y vía.

Cuando termine la instalación, se lanzará de forma automática el servidor PPTP. Ahora toca meter mano en la configuración, con el editor de texto Nano.

sudo nano /etc/pptpd.conf

Al final de todo tenéis que añadir las líneas localip seguida de la ip que queráis tener como servidor local en la VPN (ojo, poned una que esté fuera del rango de IP locales, para evitar conflictos) y remoteip seguido del rango de direcciones que usaremos para asignar a los clientes, podéis poner un rango o varias separadas por comas. Aquí un ejemplo:

localip 10.11.0.1
remoteip 10.11.0.100-150,10.10.10.245

Ya tenéis un ejemplo con ambas opciones. Tras esto tocará añadir usuarios a nuestra VPN, configurando el archivo chap-secrets.

sudo nano /etc/ppp/chap-secrets

El formato es el siguiente, con los elementos separados por tabulaciones: nombre_usuario pptpd password *. El primero es el nombre de usuario (ponéis el que queráis darle a ese usuario en la red), lo siguiente el nombre del servidor (en este caso pptpd), la contraseña (poned algo seguro, no abc123) y la ip (un *, que ya nos ocuparemos de eso después).

En fin, tras esto, y como ya he dicho, toca ocuparse de las ip, concretamente configurando el cortafuegos. Como en todo lo primero es que nuestro amigo «el nano» nos abra el archivo rc.local:

sudo nano rc.local

En este caso vamos a la penúltima línea (justo antes de exit 0) del script y añadimos:

iptables -t nat -A POSTROUTING -s 10.11.0.0/24 -o eth0 -j MASQUERADE

El argumento 10.11.0.0/24 es el rango de direcciones que elegimos cuando estábamos configurando PPTPD, si pusiste otro configúralo en consecuencia. El argumento eth0 es el nombre de la tarjeta de red, asegúrate de poner la tuya. Guarda cambios y sigue porque ahora tocará editar otro archivo, el del ip forwarding:

sudo nano /etc/sysctl.conf

Ahí busca la línea comentada #net.ipv4.ip_forward=1 y quítale el # para descomentarla. Guarda cambios y sal.

Y con todo esto nuestro servidor de VPN en Ubuntu está configurado. Ahora sólo te queda configurar los clientes y ya tienes tu propia VPN creada, para poder comunicarte con seguridad con sus miembros, de forma que vuestros datos no estén expuestos a espionajes varios (eso sí, recuerda que toda seguridad no vale de nada si la contraseña de alguno de los usuarios es revelada, la seguridad perfecta no existe, ni existirá mientras haya un factor humano)

Servicios VPN: PPTP vs OpenVPN

Conforme nuestros datos en la red son más importantes, y conforme se elaboran nuevas leyes draconianas para acabar no solo con nuestro anonimato, sino también con nuestra privacidad en internet, los servicios que aumenten la seguridad se confidencialidad de nuestros datos se tornan más populares e importantes.

Las redes VPN pasaron al primer plano de la prensa en España durante los debates sobre la ley Sinde-Wert, siendo la forma más fiable de asegurar la confidencialidad de nuestras comunicaciones. Si bien las VPN no son un concepto nuevo, si ha sido el último año y medio el periodo donde han logrado una mayor popularidad y difusión. En una VPN se utilizan varias medidas de seguridad:

  • Autentificación: El usuario que esté al otro lado debe estar autentificado en la red, sabemos a quién le enviamos el mensaje.
  • Integridad: Se usan algoritmos hash como SHA o MD5 para asegurar la integridad de los datos, que no han sido modificados entre el punto de salida y el de llegada.
  • Confidencialidad: Se utilizan algoritmos de clave asimétrica, como AES, para asegurar que sólo puedan ser leídos por el emisor y el receptor, y no por nadie que los intercepte en medio de la comunicación.
  • No repudio: El mensaje tiene que ir firmado, para el que firmante no pueda negar que fue él quien lo envió

Existen varios tipos de VPN (over LAN, tunnelig, punto a punto…), pero eso sería materia suficiente para otra entrada.

¿Y qué servicio de VPN es mejor? Los más populares son PPTP y OpenVPN, cada uno con sus ventajas e inconvenientes. PPTP sobre todo ofrece velocidad mayor a la de OpenVPN, una gran facilidad de configuración y compatibilidad con sistemas operativos de móvil y tablet (Andorid, iOS), pero por contra esta velocidad se gana por reducir las medidas de seguridad (encripta los mensajes sólo en 128 bits y no utiliza certificados digitale).

Por su parte OpenVPN ofrece la mayor estabilidad, encriptación en 256 bits y autentificación con certificados digitales, es un poco más complejo en configuración que PPTP y un poco más lento, pero tampoco en exceso, su configuración es fácil y su rendimiento bueno. Su verdadero contra es que no está disponbile para sistemas operativos móviles.(nota: esto era así cuando escribí el artículo, a día de hoy OpenVPN existe, al menos, para Android y funciona muy bien)

En resumen, la pérdida de velocidad y el aumento de complejidad de OpenVPN no son unos handicaps suficientemente grandes para decantar la balanza hacia PPTP con su menor seguridad. Para equipos de escritorio OpenVPN es la mejor solución, siendo PPTP la mejor opción cuando se trata de dispositivos móviles.