Desarrollado
por Jason A. Donenfeld e introducido por primera vez en el kernel de Linux en
2020, WireGuard es un protocolo de túnel VPN (Virtual Private Network) de
código abierto que ha ganado popularidad en los últimos años debido a su
simplicidad, eficiencia y seguridad.
WireGuard se ha convertido en una opción atractiva para aquellos que buscan una
forma segura de establecer conexiones de red privada a través de Internet.
¿Qué es una VPN y cómo puede beneficiar a un usuario?
Una VPN, o Red Privada Virtual, es una tecnología que permite crear una conexión segura y cifrada a través de Internet. Esta conexión se utiliza para “ocultar” la dirección IP que posea un usuario y hacer que las actividades en Internet sean más seguras y anónimas.
Cuando un usuaro se conecta a una VPN, el dispositivo final (como una computadora, smartphone o tablet) establece una conexión cifrada con un servidor VPN en alguna parter del mundo. A partir de ese momento, todas las actividades en línea de dicho usuario serán transmitidas en primer lugar al servidor VPN y posteriormente, se enviarán al destino final a través de Internet. Esto significa, que la dirección IP real del usuario será encapsulada por la dirección del servidor VPN, y esta última será la que saldrá a Internet para así mantener protegido y oculto al usuario. Este método vuelve más complicado el sufrir ataques como el rastreo de la ubicación o el monitoreo de actividades
Uno de los escenarios más comunes de un uso para las VPN son las conexiones seguras a una empresa directamente con el uso de esta tecnología, de modo que sólo los usuarios agregados al servidor VPN puedan acceder de forma remota a la red interna de la empresa, lo que es ideal en caso de que los empleados requieran acceder a esta desde sus hogares o alguna otra parte del mundo.
¿Por qué elegir WireGuard?
Habiendo tantas opciones actualmente, al elegir una VPN es importante
considerar la velocidad, la seguridad, la cantidad de servidores disponibles y
la política de registro de datos. También es esencial asegurarse de que la VPN
sea fácil de usar en los dispositivos y que ofrezca un buen soporte al cliente.
A diferencia de otros protocolos VPN más antiguos y complejos como IPsec y OpenVPN, WireGuard está diseñado desde cero para ser sencillo y eficiente. Esto se traduce en un código base más pequeño, que también implica un software más sencillo de mantener y de proteger ante vulnerabilidades.
Dentro de los puntos a destacar de WireGuard tenemos los siguientes:
- Criptografía moderna: WireGuard utiliza criptografía de última generación, incluyendo algoritmos como Curve25519 para intercambio de claves y ChaCha20 para cifrado, lo que lo hace altamente resistente a ataques.
- Configuración Sencilla: La configuración de WireGuard es notablemente simple en comparación con otros protocolos. Se utiliza un archivo de configuración con claves públicas y privadas, así como las direcciones IP de las interfaces de red, lo que facilita su implementación.
- Eficiencia y rendimiento: WireGuard se destaca por su bajo consumo de recursos y su velocidad, lo que lo hace ideal para aplicaciones en las que se requiere un rendimiento óptimo.
- Nat Traversal: WireGuard puede atravesar fácilmente dispositivos NAT (Network Address Translation) sin necesidad de configuraciones complejas, lo que lo hace más amigable para su uso en entornos domésticos y móviles.
- Compatibilidad multiplataforma: Aunque WireGuard se originó en Linux, ahora está disponible en una amplia variedad de plataformas, incluyendo Windows, macOS, iOS y Android, lo que lo hace versátil y accesible para una variedad de usuarios y todo esto, manteniendo el mismo procedimiento de configuración desde su interfaz gráfica.
Configuración de WireGuard para Clientes
Para comenzar a utilizar WireGuard es necesario acceder a la página oficial del software y descargar el programa dependiendo del sistema operativo que se pretenda utilizar.
Se debe acceder al siguiente enlace https://www.wireguard.com/install/ y dar click en el botón de descarga.
Debido a que la interfaz gráfica no cambia de forma notoria entre Windows y macOS, los pasos siguientes aplican para ambos sistemas operativos. Al ejecutar el instalador no es necesario hacer nada adicional más que esperar a que termine el proceso de instalación y una vez terminado, se debe observar una interfaz como la siguiente:
Lo siguiente es añadir un túnel nuevo, esto puede ser por medio de un archivo de configuración previamente compartido o un nuevo túnel en blanco.
Tomando el túnel en blanco, la siguiente ventana aparecerá:
Las claves públicas y privadas tienen el siguiente aspecto y es MUY IMPORTANTE que estas claves no sean compartidas excepto para añadir un cliente dentro del servidor de WireGuard, por lo que es necesario tener discreción con este tipo de información.
Una vez creado un archivo de configuración, se le puede asignar el nombre que se desee para identificar al túnel en la interfaz de WireGuard y también construir un archivo con la siguiente estructura:
El campo de “PrivateKey” es la clave privada de nuestro dispositivo final que, como se ha mencionado anteriormente, no se debe compartir bajo ninguna circunstancia para prevenir algún tipo de ataque. El campo de “Address” representa la dirección IP que se nos haya asignado dentro del prefijo de la VPN, que no necesariamente tiene que ser igual a la del ejemplo y tampoco es una configuración requerida, sin embargo, en este ejemplo se está considerando que las direcciones asignadas por el servidor y el administrador están bien definidas, por lo que dicha dirección correspondería a una dirección estática seguido por una /32 que para los prefijos de red representa una única dirección. El campo de “ListenPort” es el puerto por el que se admitirá el protocolo y su valor por defecto para WireGuard es 51820, este valor también es opcional, puede ser algún otro, siempre y cuando coincida con el número asignado en el servidor.
Es importante reemplazar el campo que contiene <Llave pública del servidor> por la llave que se haya configurado particularmente para este, asi como en la <Dirección Pública del servidor> iría la dirección IPv4 pública del servidor (en este caso) que se está intentando conectar seguido de :51820, que como se ha mencionado, es el puerto por defecto de WireGuard.
Finalmente, el campo “AllowedIPs” representa el rango de direcciones IP que pasarán por la VPN, es decir que si configuramos 0.0.0.0/0, todo nuestro tráfico IPv4 saldrá directo al servidor de WireGuard y después hacia Internet. Esto también se puede configurar de acuerdo a las necesidades.
Para finalizar, sólo se tendrá que Guardar la configuración y activar la interfaz de WireGuard cuando sea necesario conectarse por medio de la VPN.
Si quieres aprender cómo configurar un Servidor de WireGuard en Ubuntu Server, entra en la siguiente liga: