Tabla de contenido
- 1 Parte 1: Configuración del Servidor WireGuard en Ubuntu
- 2 Parte 2: Configuración de los Clientes WireGuard
- 2.1 1. Generación de Llaves del Cliente
- 2.2 2. Añadir la Configuración del Cliente en el Servidor
- 2.3 3. Creación del Archivo de Configuración del Cliente
- 2.4 4. Generación de un Código QR para el Cliente
- 2.5 5. Instalación y Configuración de WireGuard en el Cliente
- 2.6 Configura WireGuard en el cliente:
- 2.7 6. Verificación de la Conexión
- 3 Parte 3: Mantenimiento y Gestión
- 4 Vídeo
Parte 1: Configuración del Servidor WireGuard en Ubuntu
1. Actualización del Servidor
Primero, asegúrate de que el servidor Ubuntu esté actualizado.
Ejecutar en el servidor:
sudo apt update && sudo apt upgrade -y
2. Instalación de WireGuard
Instala WireGuard en el servidor.
Ejecutar en el servidor:
sudo apt install wireguard -y
3. Generación de Llaves del Servidor
Genera las claves privadas y públicas del servidor.
Ejecutar en el servidor:
wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
4. Configuración del Servidor WireGuard
Crea el archivo de configuración de WireGuard para el servidor.
Ejecutar en el servidor:
vim /etc/wireguard/wg0.conf
Agrega el siguiente contenido al archivo wg0.conf:
[Interface] Address = 10.0.0.1/24 ListenPort = 51820 PrivateKey = # Habilitar NAT e IP Forwarding PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; echo 1 > /proc/sys/net/ipv4/ip_forward PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; echo 0 > /proc/sys/net/ipv4/ip_forward # Guardar configuración entre reinicios (opcional) SaveConfig = true
Reemplaza con la clave privada del servidor generada previamente:
Ejecutar en el servidor:
sudo cat /etc/wireguard/server_private.key
5. Habilitación y Arranque de WireGuard
Activa y arranca el servicio WireGuard.
Ejecutar en el servidor:
sudo systemctl enable wg-quick@wg0 sudo systemctl start wg-quick@wg0
6. Verificación del Estado del Servidor WireGuard
Comprueba que WireGuard esté funcionando correctamente.
Ejecutar en el servidor:
sudo wg
Parte 2: Configuración de los Clientes WireGuard
1. Generación de Llaves del Cliente
Genera las claves privadas y públicas del cliente.
Ejecutar en el servidor:
wg genkey | tee /etc/wireguard/client1_private.key | wg pubkey > /etc/wireguard/client1_public.key
2. Añadir la Configuración del Cliente en el Servidor
Edita el archivo de configuración del servidor para añadir al cliente.
Ejecutar en el servidor:
sudo vim /etc/wireguard/wg0.conf
Agrega el siguiente bloque al final del archivo:
[Peer] PublicKey = AllowedIPs = 10.0.0.2/32
Reemplaza con la clave pública del cliente que generaste:
Ejecutar en el servidor:
sudo cat /etc/wireguard/client1_public.key
3. Creación del Archivo de Configuración del Cliente
Crea el archivo de configuración del cliente.
Ejecutar en el servidor:
sudo nano /etc/wireguard/client1.conf
Agrega el siguiente contenido al archivo client1.conf:
[Interface] PrivateKey = Address = 10.0.0.2/24 DNS = 1.1.1.1 [Peer] PublicKey = Endpoint = :51820 AllowedIPs = 0.0.0.0/0
Reemplaza con la clave privada del cliente:
Ejecutar en el servidor:
sudo cat /etc/wireguard/client1_private.key
Reemplaza con la clave pública del servidor:
Ejecutar en el servidor:
sudo cat /etc/wireguard/server_public.key
Reemplaza con la dirección IP pública del servidor.
4. Generación de un Código QR para el Cliente
WireGuard permite que los clientes móviles configuren fácilmente la VPN mediante un código QR.
Instala la herramienta qrencode en el servidor:
sudo apt install qrencode -y
Genera el código QR para la configuración del cliente:
Ejecutar en el servidor:
qrencode -t ansiutf8 < /etc/wireguard/client1.conf
Este comando generará un código QR en la terminal que el cliente puede escanear con su aplicación WireGuard en Android o iOS.
5. Instalación y Configuración de WireGuard en el Cliente
Instala WireGuard en el dispositivo cliente:
Linux:
Ejecutar en el cliente:
sudo apt update && sudo apt install wireguard resolvconf iptables -y
Windows/Mac:
Descarga e instala la aplicación WireGuard desde el sitio oficial: https://www.wireguard.com/install/
Android/iOS:
Descarga la aplicación WireGuard desde Google Play Store o Apple App Store.
Configura WireGuard en el cliente:
Para Linux/Windows/Mac:
Importa el archivo de configuración client1.conf en la aplicación WireGuard.
Para dispositivos que no pueden usar un código QR, transfiere el archivo de configuración client1.conf al dispositivo cliente.
Una opción puede ser ejecutar desde el servidor el siguiente SCP si el servidor tiene acceso por SSH al cliente:
scp /etc/wireguard/client1.conf usuario@ip_cliente:/ruta/de/destino/
El fichero debe quedar en la ruta «/etc/wireguard/wg0.conf», si has podido hacer el SCP ya lo has completado, si no puedes hacerlo, crea el fichero directamente en esa ruta y copia el contenido.
Android/iOS:
Abre la aplicación WireGuard y escanea el código QR generado anteriormente.
Conecta el Cliente a la VPN:
En la aplicación WireGuard del cliente, activa la conexión.
6. Verificación de la Conexión
Una vez conectado, prueba la conexión:
Ejecutar en el cliente:
ping 10.0.0.1
Esto debería devolver respuestas del servidor, indicando que la conexión VPN está funcionando correctamente.
Parte 3: Mantenimiento y Gestión
1. Añadir Más Clientes
Para añadir más clientes, simplemente repite los pasos de la Parte 2 para generar nuevas llaves, configurar nuevos pares en el servidor, y crear archivos de configuración para cada cliente.
2. Reiniciar el Servicio WireGuard
Si realizas cambios en la configuración del servidor, asegúrate de reiniciar el servicio:
Ejecutar en el servidor:
sudo systemctl restart wg-quick@wg0
3. Monitoreo del Estado de la VPN
Puedes verificar el estado de los pares conectados y sus estadísticas:
Ejecutar en el servidor:
sudo wg show
Vídeo
Esto te proporcionará información sobre los clientes conectados y el tráfico que están generando.
Siguiendo esta guía paso a paso, deberías poder configurar un servidor WireGuard en Ubuntu y conectar clientes de manera sencilla, incluyendo la opción de usar un código QR para la configuración en dispositivos móviles.