Cómo configurar Wireguard VPN en Linux

Cómo configurar Wireguard VPN en Linux
Una fotografía de una computadora portátil con un monitor de escritorio al lado.

Wireguard es un potente demonio de red privada virtual (VPN) de código abierto que puede ejecutarse tanto en dispositivos móviles como de escritorio. Proporciona una alternativa rápida y liviana a las soluciones VPN tradicionales, como IPsec y OpenVPN. Aquí, le mostramos cómo instalar Wireguard y crear una configuración VPN simple utilizando tres máquinas Linux.

¿Por qué utilizar Wireguard como solución VPN?

Uno de los puntos fuertes de Wireguard es que es un demonio VPN rápido y ligero. A diferencia de las soluciones tradicionales, Wireguard no añade mucha sobrecarga a la red. Esto da como resultado una latencia más baja y una alta tasa de rendimiento general en todos los nodos.

Una terminal que muestra una prueba iperf3 entre dos nodos Wireguard que muestra un alto rendimiento.

Otra característica clave de Wireguard es que es un módulo dentro del núcleo de Linux. Esto le permite ejecutarse sin ocupar recursos adicionales del sistema de su computadora, lo que lo convierte en una opción ideal para implementar en dispositivos de bajo nivel y SOC.

Una terminal que muestra el Wireguard cargado en el kernel de Linux.

Por último, Wireguard también aprovecha los estándares criptográficos y las prácticas de desarrollo modernas. También ha pasado por múltiples verificaciones formales que confirman la corrección del código de Wireguard, las garantías de seguridad y la capacidad de resistir ataques.

Obtención de Wireguard

El primer paso para configurar Wireguard en Linux es descargar sus herramientas principales desde el repositorio de su distribución. Esto le permite controlar el módulo de núcleo Wireguard integrado mediante comandos de espacio de usuario.

Para instalar las herramientas principales en Ubuntu y Debian, ejecute el siguiente comando:

En Fedora, puedes utilizar el dnfadministrador de paquetes:

Para Arch Linux, puede ejecutar pacmanpara obtener las herramientas principales de Wireguard:

Confirme que ha instalado correctamente las herramientas Wireguard cargando su pantalla de ayuda:

Una terminal que muestra el menú de ayuda para la herramienta de espacio de usuario Wireguard.

Configuración del servidor Wireguard

Suposición: este artículo supone que está instalando el servidor Wireguard en un sistema Linux con una dirección IPv4 de acceso público. Las instrucciones seguirán funcionando en un servidor detrás de un NAT, pero no encontrará nodos fuera de su subred.

Con el kit de herramientas básico de Wireguard en sus máquinas Linux, ahora puede configurar el nodo de servidor de su VPN. Este servirá como puerta de enlace a Internet para sus nodos de cliente en la red.

Comience navegando hasta el directorio de configuración de Wireguard y configure sus permisos predeterminados en “solo root”:

Genere la clave pública y privada para su servidor Wireguard:

Crea el archivo de configuración de tu servidor usando tu editor de texto favorito:

Pegue el siguiente bloque de código dentro del archivo de configuración de su servidor:

Abra una nueva sesión de terminal y luego imprima la clave privada Wireguard de su servidor:

Copie la clave privada de su servidor a su portapapeles.

Una terminal que muestra el proceso de copia de la clave privada del servidor en Ubuntu.

Reemplace el valor de la PrivateKeyvariable con la clave en su portapapeles.

Una terminal que muestra la clave privada del servidor en la configuración Wireguard del servidor.

Encuentre la interfaz de red que tiene acceso a Internet mediante el ipcomando:

Un terminal que resalta el nombre de la interfaz de red con acceso a Internet.

Establezca el valor de la -obandera en ambas variables PostUpy PostDownen la interfaz con acceso a Internet, luego guarde el archivo de configuración.

Una terminal que muestra el nombre correcto del dispositivo en el archivo de configuración del servidor Wireguard.

Abra el archivo “/etc/sysctl.conf” del servidor usando su editor de texto favorito:

Desplácese hacia abajo hasta la línea que contiene net.ipv4.ip_forward=1, luego elimine el signo de almohadilla (#) que se encuentra frente a ella.

Una terminal que resalta la ubicación de la opción de reenvío de IPv4 en sysctl.conf.

Vuelva a cargar su nueva configuración sysctl ejecutando: sudo sysctl -p.

Una terminal que muestra el proceso de recarga del archivo sysctl.conf.

Configuración y conexión del cliente Wireguard

En este punto, ya tienes un servidor Wireguard configurado correctamente sin ningún par. Para usarlo, debes configurar y conectar tu primer cliente Wireguard.

Navegue al directorio de configuración de Wireguard de su sistema cliente y configure sus permisos predeterminados:

Genere el par de claves Wireguard de su cliente utilizando el siguiente comando:

Cree el archivo de configuración Wireguard del cliente utilizando su editor de texto favorito:

Pegue el siguiente bloque de código dentro de su archivo de configuración de cliente:

Reemplace la PrivateKeyvariable con la clave privada de su cliente.

Una terminal que resalta la clave privada del primer cliente Wireguard.

Abra la sesión de terminal de su servidor Wireguard y luego imprima su clave pública:

Establezca el valor de la PublicKeyvariable en la clave pública de su servidor.

Una terminal que resalta la clave pública del servidor Wireguard en el archivo de configuración del segundo cliente.

Cambie la Endpointvariable a la dirección IP de su servidor Wireguard.

Una terminal que resalta la dirección IP del servidor Wireguard.

Guarde su archivo de configuración y luego use el wg-quickcomando para iniciar el cliente Wireguard:

Una terminal que muestra el proceso de inicio del demonio cliente Wireguard.

Vinculación del servidor Wireguard al cliente

Vaya a la sesión de terminal de su servidor Wireguard y luego abra su archivo de configuración:

Pegue el siguiente bloque de código después de la [Interface]sección:

Establezca la PublicKeyvariable en la clave pública de su cliente Wireguard.

Una terminal que muestra la ubicación del bloque [Peer] y resalta la clave pública del cliente.

Guarde el archivo de configuración y luego ejecute el siguiente comando para iniciar el servicio Wireguard en su servidor:

Agregar un segundo cliente al servidor

Una característica clave de cada servicio VPN es que puede conectar varias máquinas de diferentes redes. Esto resulta útil si tienes computadoras en diferentes ubicaciones o quieres alojar un servidor de juegos privado para tus amigos.

Para hacer esto en Wireguard, debe crear un archivo de configuración para una nueva interfaz VPN en su servidor. La forma más fácil de hacerlo es copiar la configuración actual de su servidor y darle a la copia un nuevo nombre:

Abra su nuevo archivo de configuración usando su editor de texto favorito:

Establezca la ListenPortvariable en 60102. Hacer esto evitará cualquier colisión de puertos entre las interfaces VPN wg0 y wg1.

Una terminal que resalta la variable ListenPort modificada para la segunda interfaz Wireguard.

Vaya a la [Peer]sección y cambie la AllowedIPsvariable de “10.0.0.2/32” a “10.0.0.3/32”, luego guarde su archivo de configuración.

Una terminal que resalta la variable AllowedIPs modificada para el segundo cliente Wireguard.

Configuración del segundo cliente Wireguard

Inicie sesión en su segunda máquina y luego prepare su directorio de configuración de Wireguard:

Genere un nuevo par de claves Wireguard utilizando el siguiente comando:

Crea un nuevo archivo de configuración usando tu editor de texto favorito:

Pegue el siguiente bloque de código dentro de su nuevo archivo de configuración:

Establezca la PrivateKeyvariable en la clave privada de su segunda máquina, luego cambie la PublicKeyvariable a la clave pública de su servidor.

Una terminal que resalta la clave privada del segundo cliente y la clave pública del servidor Wireguard.

Reemplace la variable Endpoint con la dirección IP de su servidor, seguida de “:60102”.

Una terminal que resalta la dirección IP del servidor Wireguard en la configuración del segundo cliente.

Guarde el archivo de configuración y luego inicie el cliente Wireguard de la segunda máquina:

Vinculación del segundo cliente al servidor Wireguard

Vuelva a iniciar sesión en su servidor Wireguard, luego abra la configuración de la interfaz VPN para su segundo cliente:

Desplácese hacia abajo hasta la [Peer]sección y luego reemplace la PublicKeyvariable con la clave pública de su segundo cliente.

Una terminal que resalta la clave pública del segundo cliente dentro del archivo de configuración wg1 del servidor.

Guarde su archivo de configuración y luego inicie la segunda interfaz VPN usando el comando wg-quick:

Confirme que el primer y el segundo cliente Wireguard se muestran correctamente en su servidor ejecutando wg.

Una terminal que muestra los dos nodos cliente comunicándose con el servidor Wireguard.

Prueba de la red Wireguard

Ahora que tanto el servidor como los clientes están en la red Wireguard, puede probar la conectividad y la latencia entre los nodos. Para ello, asegúrese de tener herramientas de diagnóstico de red instaladas en el sistema:

En Fedora, solo necesitas instalarlo, curlya que viene con herramientas de red listas para usar:

Para Arch Linux, puedes usar pacmanpara instalar las herramientas de red y curl:

Comience por rastrear la ruta de un paquete entre dos clientes. A continuación se muestra cómo un paquete IP va de “10.0.0.2” a “10.0.0.3”:

Una terminal que muestra un comando traceroute exitoso entre dos nodos Wireguard.

Comprueba si alguno de tus nodos puede acceder a Internet público haciendo ping a una dirección IP común:

Una terminal que muestra la latencia de la red Wireguard a un sitio externo.

Por último, confirme que sus nodos comparten la misma dirección IP pública con su servidor Wireguard:

Una terminal que resalta la dirección IP externa similar en tres nodos Wireguard.

Aprender a configurar una red Wireguard en Linux es el primer paso para explorar el fascinante mundo de las VPN. Sumérjase en el tema y observe nuestras selecciones de los mejores proveedores de VPN centrados en la seguridad que puede conseguir hoy.

Crédito de la imagen: Kari Shea a través de Unsplash y Wikimedia Commons . Todas las modificaciones y capturas de pantalla son de Ramces Red.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *