DEV Community

Aleets Vaaz
Aleets Vaaz

Posted on • Edited on

Wireguard | Instalación & Configuración en Linux| VPN

¿Que es WireGuard?

WireGuard es una solución de red privada virtual (VPN) que tiene como objetivo ser simple, rápida y segura. Se utiliza para establecer túneles VPN entre dispositivos, lo que permite conexiones seguras a través de redes no confiables, como Internet. A diferencia de otras soluciones VPN tradicionales, WireGuard está diseñado con un enfoque en la simplicidad y eficiencia.

Características de WireGuard:

  1. Simplicidad: WireGuard tiene un diseño minimalista con un código fuente reducido en comparación con otros protocolos VPN. Esto facilita su revisión de seguridad y mantenimiento.
  2. Seguridad moderna: Utiliza criptografía de última generación, como ChaCha20 para cifrado, Poly1305 para autenticación, Curve25519 para intercambio de claves y BLAKE2s para hashing.
  3. Rendimiento: Es extremadamente rápido y eficiente, logrando mejores velocidades y menor latencia que VPNs tradicionales como OpenVPN o IPSec.
  4. Cross-platform: Es compatible con una amplia variedad de sistemas operativos, como Linux, macOS, Windows, Android y iOS.
  5. Configuración sencilla: WireGuard utiliza una interfaz de red virtual simple y no requiere configuración compleja para funcionar correctamente.
  6. Conexión persistente: Puede mantener una conexión persistente, aunque los dispositivos cambien de red o dirección IP.
  7. Portabilidad: Su diseño eficiente lo hace ideal para dispositivos de bajo consumo o embebidos.

Ventajas de WireGuard:

  • Fácil de usar y configurar: Comparado con otras VPN, la configuración es mucho más simple.
  • Rápido y eficiente: Reduce el uso de CPU y mejora la velocidad de conexión.
  • Mayor seguridad: Utiliza criptografía moderna y segura.
  • Menor consumo de batería: Esto es especialmente útil en dispositivos móviles.
  • Bajo overhead: Menos datos adicionales en cada paquete, lo que optimiza el tráfico de red.

Cómo instalar WireGuard en Linux:
WireGuard es una solución VPN moderna que ofrece simplicidad, velocidad y seguridad. A continuación, te guiaré paso a paso sobre cómo instalar y configurar WireGuard en Linux.

  • Paso 1: Actualizar el sistema Lo primero que debemos hacer es asegurarnos de que nuestro sistema esté actualizado. Ejecuta el siguiente comando en la terminal:
sudo apt update && sudo apt upgrade -y
Enter fullscreen mode Exit fullscreen mode
  • Paso 2: Instalar WireGuard Para distribuciones basadas en Debian/Ubuntu, WireGuard está disponible en los repositorios oficiales. Instálalo con el siguiente comando:
sudo apt install wireguard

Enter fullscreen mode Exit fullscreen mode

Cómo configurar WireGuard en Linux:

  • Paso 1: Acceder al directorio de configuración Navega al directorio de configuración de WireGuard con:
cd /etc/wireguard/
Enter fullscreen mode Exit fullscreen mode

Aquí crearemos el par de calves para el servidor y para el cliente

Para mayor seguridad, configuramos los permisos para que solo el administrador pueda ver las claves generadas:

umask 077
Enter fullscreen mode Exit fullscreen mode
  • Paso 2: Crear el par de claves

Genera las claves para el servidor y el cliente:

  • Clave del servidor:
wg genkey | tee serverprivatekey | wg pubkey > serverpublickey

Enter fullscreen mode Exit fullscreen mode
  • Clave del cliente:
wg genkey | tee clienteprivatekey01 | wg pubkey > clientepublickey01

Enter fullscreen mode Exit fullscreen mode
  • Si se requiere mas clientes repetir el comando anterior pero cambiando el nombre de las llaves para identificarlas facialmente por ejemplo:
wg genkey | tee clienteprivatekey02 | wg pubkey > clientepublickey02

Enter fullscreen mode Exit fullscreen mode
  • Paso 3: Puedes verificar las claves generadas con:
ls -lh
Enter fullscreen mode Exit fullscreen mode

Esto nos mostrara todas las claves generadas

  • Paso 4: Podemos ver el contenido de las claves con sus nombres correspondientes de cada una y las copiamos en un lugar visible:
cat serverprivatekey clientpublickey01

Enter fullscreen mode Exit fullscreen mode

O también puedes usar:

cat 0*
Enter fullscreen mode Exit fullscreen mode
  • Paso 5: Ver nuestra ip de red con el siguiente comando:
ip a 
Enter fullscreen mode Exit fullscreen mode

Recordamos o guardamos nuestra IP para usarlo mas adelante.

  • Paso 6: Crear el archivo de configuración Ahora creamos el archivo de configuración principal del servidor (/etc/wireguard/wg0.conf), usando el editor nano:
sudo nano wg0.conf
Enter fullscreen mode Exit fullscreen mode

El contenido básico del archivo será el siguiente:

[Interface]
PrivateKey = (serverprivatekey)
Address = 10.0.0.1/24 (Direccion privada del servidor)
PostUp = iptables -A FORWARD -1 wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 (<-- Cambiarlo por el identificador de nuestra red)  -j MASQUERADE 
PostDown = iptables -D FORWARD -1 wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ethO0 (<-- Cambiarlo por el identificador de nuestra red) -j MASQUERADE
ListenPort = 51820 (Dejarlo por defecto)

[Peer]
PublicKey = <clientepublickey01>
AllowedIPs = 10.0.0.2/32 (<-- Ip privada que tiene el usuario/cliente)

#------------------Si se agregan otros clientes---------------------#
PublicKey = <clientepublickey02>
AllowedIPs = 10.0.0.3/32 (<-- Ip privada que tiene el usuario/cliente)
Enter fullscreen mode Exit fullscreen mode

Un ejemplo listo, sin comentarios y terminado se vería asi:

[Interface]
PrivateKey = YFXqpAmxjEYUfAv9x11b5U2neIONO1jVBLUSdYROzZWk=
Address = 10.0.0.1/24

PostUp = iptables -A FORWARD -1 wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
PostDown = iptables -D FORWARD -1 wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ethO0 -j MASQUERADE 
ListenPort = 51820

[Peer]
PublicKey = AUB3C1xHT4roVyQpTse/UA5M6/v+DoMn ipdeEWi75Qc=
AllowedIPs = 10.0.0.2/32
Enter fullscreen mode Exit fullscreen mode
  • Paso 7: Activar WireGuard

Inicia la interfaz de WireGuard con el siguiente comando:

sudo wg-quick up wg0

Enter fullscreen mode Exit fullscreen mode

-Paso 8: Octavo Para que la interfaz se inicie automáticamente en el arranque del sistema, habilítala con:

sudo systemctl enable wg-quick@wg0

Enter fullscreen mode Exit fullscreen mode
  • Paso 9: Habilitar el reenvío de paquetes Es necesario activar el reenvío de paquetes para que el tráfico pueda fluir entre el cliente y el servidor. Para hacerlo temporalmente, ejecuta:
sudo sysctl -w net. 1ipv4.1p_forward=1
Enter fullscreen mode Exit fullscreen mode
  • Paso 10: Para hacerlo permanente, edita el archivo /etc/sysctl.conf:
sudo nano /etc/sysctl.conf
Enter fullscreen mode Exit fullscreen mode

Descomenta la siguiente línea:

net.ipv4.ip_forward=1
Enter fullscreen mode Exit fullscreen mode

Configuración del cliente en Windows

Para configurar WireGuard en Windows, sigue estos pasos:

  • Paso 1: Descargar e instala wireguard y sigue el asistente de instalación.

  • Paso 2: Abre la aplicación, selecciona la opción para agregar un nuevo túnel en la parte inferior izquierda y configura los siguientes parámetros:

[Interface]
PrivateKey = clave privada cliente 
Address = 10.0.0.2/32
DNS = 8.8.8.8

[Peer]
PublicKey = clave publica servidor 
AllowedIPs = 0.0.0.0/0
Endpoint = IP servidor:51820
Enter fullscreen mode Exit fullscreen mode

Ya listo quedaría algo asi:

[Interface] 
PrivateKey = GPCW-+PHaS0QZMOYZMYI2XCaTC19TANKGHAQEAZPT31= 
Address = 10.0.0.2/32 
DNS = 8.8.8.8

[Peer] 
PublicKey = NgZKUME+DIFwy11eGO/GvubTIGHECVOR2tF 
AllowedIPs = 0.0.0.0/0
Endpoint = 94.237.80.228:51820
Enter fullscreen mode Exit fullscreen mode
  • Finalmente le asignaremos un nombre, guarda la configuración y activa el túnel.

Conclusión

WireGuard es una opción VPN moderna y eficiente, perfecta para quienes buscan simplicidad y seguridad en sus conexiones. Este tutorial cubre los pasos esenciales para instalar y configurar WireGuard en Linux y Windows.

Top comments (0)