Cómo configurar Wireguard VPN en Linux
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.
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.
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 dnf
administrador de paquetes:
Para Arch Linux, puede ejecutar pacman
para obtener las herramientas principales de Wireguard:
Confirme que ha instalado correctamente las herramientas Wireguard cargando su pantalla de ayuda:
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.
Reemplace el valor de la PrivateKey
variable con la clave en su portapapeles.
Encuentre la interfaz de red que tiene acceso a Internet mediante el ip
comando:
Establezca el valor de la -o
bandera en ambas variables PostUp
y PostDown
en la interfaz con acceso a Internet, luego guarde el archivo de configuración.
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.
Vuelva a cargar su nueva configuración sysctl ejecutando: sudo sysctl -p
.
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 PrivateKey
variable con la clave privada de su cliente.
Abra la sesión de terminal de su servidor Wireguard y luego imprima su clave pública:
Establezca el valor de la PublicKey
variable en la clave pública de su servidor.
Cambie la Endpoint
variable a la dirección IP de su servidor Wireguard.
Guarde su archivo de configuración y luego use el wg-quick
comando para iniciar el 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 PublicKey
variable en la clave pública de su cliente Wireguard.
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 ListenPort
variable en 60102. Hacer esto evitará cualquier colisión de puertos entre las interfaces VPN wg0 y wg1.
Vaya a la [Peer]
sección y cambie la AllowedIPs
variable de “10.0.0.2/32” a “10.0.0.3/32”, luego guarde su archivo de configuración.
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 PrivateKey
variable en la clave privada de su segunda máquina, luego cambie la PublicKey
variable a la clave pública de su servidor.
Reemplace la variable Endpoint con la dirección IP de su servidor, seguida de “:60102”.
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 PublicKey
variable con la clave pública de su segundo cliente.
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
.
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, curl
ya que viene con herramientas de red listas para usar:
Para Arch Linux, puedes usar pacman
para 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”:
Comprueba si alguno de tus nodos puede acceder a Internet público haciendo ping a una dirección IP común:
Por último, confirme que sus nodos comparten la misma dirección IP pública con su servidor 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