¿Cómo crear Redes Privadas Virtuales (VPN)?

Theliel
Yo probé el VDSL

Una vez visto qué son las Redes Privadas Virtuales (VPN) y sus principales usos, toca hablar de algo igual de importante, que es saber cómo se crean, conectan y configuran este tipo de redes. Vamos a verlo:

 

Creación y conexión

Red Privada.jpg

 

Vale, ya sabemos para qué podemos usar una VPN, ¿y ahora, cómo creo una?

 

Para establecer una conexión VPN, por lo general, se requiere de un servidor VPN correctamente configurado que aceptará la conexión, y por otro lado un Cliente VPN que conectará a dicho Servidor. Debido a la gran variedad de tecnologías existentes y de sus múltiples opciones a la hora de configurarse, no todos los clientes VPN van a funcionar o ser compatibles con todos los servidores VPN, como es natural.

 

Lo primero que hay que tener claro es que sin un servidor VPN que nos dé acceso a la red en cuestión, no hay nada que hacer. Esta es la mayor limitación que pude encontrar el usuario normal. Una cosa es querer hacer uso de esta tecnología, pero no basta sólo con tener un programa cliente instalado en un dispositivo, hace falta una estructura previamente desplegada para ello. En el mundo empresarial no suele ser un problema, ya que estos poseen servidores VPN (ya sean dedicados o corriendo en los Firewall de la empresa) configurados para sus necesidades, y es el personal a cargo del mantenimiento de la red los que dan acceso a los usuarios.

 

En el mundo doméstico es mucho menos habitual ver VPN dedicados o Routers/Firewall que permitan ejercer las funciones de VPN para que el usuario pueda acceder desde fuera a su propia red local. Por suerte, la cada vez mayor integración de componentes hace cada vez hardware más potente capaz de mayores prestaciones. Esto hace que exista en el mercado una gran variedad de Hardware que permite usarse para crear servidores VPN, incluso para particulares. Hay que citar que muchos usuarios domésticos contratan servicios VPN a empresas de terceros o incluso algunos de ellos gratuitos para poder acceder a sus servidores VPN. Pero en estos casos el usuario no busca acceder como es natural a su red, sino aprovecharse del servidor VPN remoto para alguna cuestión como las que ya se indicaron: Evitar bloqueos geográficos, censuras, acceder a contenido específico…

VPN.jpg

 

 

Clientes VPN:

 

La mayoría de los sistemas operativos actuales (Windows, Linux, OS X, Android…) cuentan con soporte nativo para los estándares más usados, como pueda ser PPTP o L2PTP/IPSec, pero aun así, configuraciones un tanto “exóticas” o muy específicas de estos (sobre todo IPSec), puede hacer necesario el uso de clientes “propios” que entregan las compañías que aportan igualmente el software servidor, ya preconfigurados.

 

En otros casos (como en OpenVPN por ejemplo) al no ser realmente un estándar per sé, sino un compendio de tecnologías de seguridad y VPN, es necesario un cliente específico. Lo mismo sucede con software VPN propietario. Veamos un par de ejemplos:

 

Cliente VPN de Windows 10 (PPTP):

 

(Configuración -> Red e Internet -> VPN -> Agregar una conexión VPN)

  1. Cliente PPTP de Windows 10

 

Cliente VPN OpenVPN:

 

En este caso no hay interfaz propiamente dicha (en el cliente nativo de OpenVPN). Aunque puede configurarse para usar una contraseña estática, por lo general se realiza una autentificación por medio de certificados, de ahí a que para configurarlos sea ligeramente más complejo que el caso anterior.

 

En primer lugar, el cliente debería de poseer un certificado emitido expresamente para él, y por supuesto con su clave privada. Por otro lado, debería de poseer el certificado del CA que emitió el certificado tanto del servidor como del propio usuario. Digamos que esas 3 piezas son las que se encargan de que la conexión pueda ser totalmente segura. Como ya se dijo no es ni mucho menos tan intuitivo como configurar por ejemplo una VPN PPTP, pero es infinitamente más seguro:

 

OpenVPN 2.3.10 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Mar 10 2016

Windows version 6.2 (Windows 8 or greater)

library versions: OpenSSL 1.0.1s  1 Mar 2016, LZO 2.09

Enter Management Password:

MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340

Need hold release from management interface, waiting...

MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340

MANAGEMENT: CMD 'state on'

MANAGEMENT: CMD 'log all on'

MANAGEMENT: CMD 'hold off'

MANAGEMENT: CMD 'hold release'

Socket Buffers: R=[65536->65536] S=[65536->65536]

UDPv4 link local: [undef]

UDPv4 link remote: [AF_INET]midominio.com:1194

MANAGEMENT: >STATE:1459482239,WAIT,,,

MANAGEMENT: >STATE:1459482239,AUTH,,,

TLS: Initial packet from [AF_INET] midominio.com:1194, sid=ede59c23 f7ce9a47

VERIFY OK: depth=1, C=ES, ST=Sevilla, L=Sevilla, O=Lilith, OU=Casa, CN=Lilith, name=Lilith, emailAddress=lilith@midominio.com

VERIFY OK: depth=0, C=ES, ST=Sevilla, L=Sevilla, O= Lilith, OU=Casa, CN=server, name=Lilith, emailAddress= lilith@midominio.com

Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key

Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication

Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key

Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication

Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 1024 bit RSA

[server] Peer Connection Initiated with [AF_INET] midominio.com:1194

MANAGEMENT: >STATE:1459482240,GET_CONFIG,,,

SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)

PUSH: Received control message: 'PUSH_REPLY,route 192.168.2.0 255.255.255.0,dhcp-option DNS 192.168.2.1,redirect-gateway def1,route-gateway 10.8.0.1,topology subnet,ping 15,ping-restart 60,ifconfig 10.8.0.2 255.255.255.0'

 

De cualquier modo, la configuración del cliente VPN estará siempre supeditada al servidor VPN en cuestión al que deseemos conectarnos, como es natural. Serán los ajustes de este, así como la tecnología que use, las que harán necesario el uso de un cliente u otro, y por supuesto su configuración.

 

Servidor VPN:

 

La otra cara de la moneda, y por lo general para el usuario normal ni siquiera debe de preocuparse de ella, ya que es de presuponer que su servidor VPN está en su lugar de trabajo, tiene contratado un proveedor VPN...

 

Las empresas suelen hacer uso de hardware específico para albergar los servidores VPN, pero podría configurarse igualmente por software en un equipo preparado para ello. La ventaja del hardware dedicado es que no requiere como es natural de que un equipo esté funcionando constantemente, tratándose casi como un servicio más de la red.

 

Dependiendo de la tecnología VPN a usar, sería necesario un hardware o un software concreto, y su configuración. Será el servidor VPN quien contenga las credenciales de cada usuario (y certificados), quien otorgará a cada uno de ellos la IP (y demás datos) para la conexión establecida, puertos, protocolos, cifrados…

 

Así, siguiendo el mismo ejemplo de los clientes VPN, vamos a ver un par de servidores VPN,

 

Servidor VPN PPTP:

 

  1. Servidor VPN PPTP

 

Como podemos ver los ajustes son muy simples. PPTP es rápido, es sencillo, pero no es muy seguro, incluso usando MPPE-128 (opción marcada), no es un protocolo del que podamos fiarnos. A esos ajustes, tan sólo sería necesario añadir una lista de usuarios (usuario/contraseña) que tendrían acceso a dicho servidor.

 

Servidor VPN OpenVPN:

 

  1. Servidor OpenVPN

 

La granularidad que permite OpenVPN es muchísimo mayor, pero también provoca que sea necesario una configuración mucho mayor. Esto nos permite poder correr un servidor OpenVPN en cualquier puerto que deseemos, sea UDP o TCP, permite especificar si lo deseamos el Cifrado o autentificación… TLS es un protocolo seguro, pero como hemos dicho requiere de certificados previamente creados/configurados:

 

  1. Certificados. Servidor OpenVPN



Mitos y leyendas sobre las VPN

 

En los últimos años se han generalizado un buen número de incorrecciones acerca de lo que se puede hacer o no con las redes VPN. Quizás debido a que se toman medias verdades como ciertas, cuando dictan mucho de ser verdad. Y es que, aunque parezca absurdo, muchos usan proveedores de VPN externos, ya sean de pago o gratuitos, para poder disfrutar supuestamente de ciertas ventajas.

 

Eso no quiere decir como hemos visto, que las redes VPN no valgan para nada. Lo que quiere decir es que las redes VPN son lo que son, y entendiendo que son y cómo funcionan, este tipo de “mitos” caen por sí mismos.

 

Estos son quizás las “equivocaciones” más comunes por parte de los usuarios:

 

  • Anonimato: Es extremadamente común pensar que por usar un Servidor VPN externo, podemos mantener nuestro anonimato en Internet. Esto no del todo cierto. Es cierto que podemos usar un servidor VPN para navegar con él, de modo que todas nuestras conexiones provengan de su IP… pero eso no significa que nuestro equipo no pueda ser identificado. Para empezar, el primer tramo que sería desde nuestro hogar hasta el servidor VPN, podría ser traceado, es una conexión “normal”. Y en segundo lugar, el servidor VPN guarda casi con total seguridad sus propios registros, que en un momento dado identificarían al usuario sin ningún problema.
  • Conexión Segura: Otro error común es creer que por el hecho de usar una conexión VPN el tráfico va a ir cifrado a cualquier lado. En VPN, se puede usar OpenVPN, IPSec… para cifrar el túnel, la conexión entre cliente y servidor, pero lo que sea transmitido fuera de ahí, por ejemplo, la conexión que realice el servidor VPN con el exterior por petición del cliente, no tiene por qué ir cifrado. Es decir, da seguridad de cara a la información que transfiere cliente<->servidor, pero sólo eso, y siempre y cuando además se esté usando una configuración de seguridad decente.
  • Mayor velocidad: Una conexión VPN no va a dar nunca una mayor velocidad o tasa de transmisión de datos. Es cierto que un servidor VPN remoto puede disponer de una conexión mucho más rápida que usamos nosotros, pero si se va a usar al final para “traer” a nosotros esos datos, la limitación la impone igualmente nuestra conexión. Es decir, da igual que el servidor pueda descargar un archivo de 5Gb en 2 segundos, esos 5Gb se tendrían que transferir de vuelta a nuestro equipo, que lo haría por el túnel establecido. Sí que nos afecta cuando la velocidad del Servidor es lenta, puede pasar que la limitación la imponga en muchos casos la baja velocidad del servidor VPN, y no nuestra conexión. Por lo general es al contrario, las conexiones VPN son más lentas… al estar encapsulado el tráfico, el MTU que puede llevar el frame encapsulado es menor, hay una sobrecarga de protocolos mayor, y eso se traduce en una menor eficiencia.
  • Menor Latencia: Los servidores VPN no mejoran la latencia. La latencia es el tiempo que tarda un equipo en comunicarse con el otro extremo y en recibir contestación de este. En Internet el mismo sitio pude ser alcanzado por lo general por diferentes caminos. Es cierto que en determinados casos concretos un servidor VPN puede hacer circular el tráfico por una ruta más eficiente o con menor latencia que la usada por un usuario, pero esto es meramente circunstancial, y podría suceder exactamente lo contrario, que la ruta usada fuese aún más lenta. Eso sin contar que no solo intervendría la latencia del Servidor VPN al destino, sino también la que ocasionaría la nuestra al servidor VPN.
  • No cuenta como consumo de datos: Me sorprendió esta creencia que descubrí hace poco. Por lo visto hay un buen número de personas que cree que haciendo uso de servidores VPN, no hacen uso de sus datos móviles, de modo que podrían disfrutar de un uso ilimitado de estos. Evidentemente esto es totalmente falso. Es cierto que no se podría contabilizar el tráfico entre el servidor VPN y los servidores a los que este se conecte, pero esos datos al final tendrán que traerse a nuestros dispositivos, usando la red de datos de este.
  • No protege de ataques: VPN no es un Firewall. Cualquier ataque destinado a nuestra red es agnóstico a cualquier conexión VPN que usemos.

Red VPN.jpg

1 Comentario