Configurar WireGuard en Ubuntu 24.04 para acceso remoto seguro
Instala WireGuard en Ubuntu 24.04 y configura un cliente de túnel dividido con claves protegidas, reenvío IP, UFW y acceso a la LAN.
Este ejemplo usa Ubuntu 24.04 como puerta de enlace VPN: wg0 tiene 10.20.30.1/24, el cliente 10.20.30.2, la LAN remota 192.168.1.0/24 y WireGuard escucha en UDP 51820. ens18 es la interfaz hacia la LAN. Sustituye interfaces, direcciones y DNS según tu red. Necesitas un punto de acceso público alcanzable; si el servidor está tras NAT, redirige UDP 51820 en el router.
Instala e identifica la interfaz
Instala los paquetes e identifica la interfaz real hacia la LAN. Si administras por SSH, comprueba y permite su puerto antes de activar UFW; el ejemplo posterior supone el puerto 22.
sudo apt update
sudo apt install wireguard ufw
ip -br address
Genera las claves del servidor
Crea las claves como root en /etc/wireguard con umask 077. La guía anterior intentaba entrar en un directorio reservado a root desde una consola sin privilegios. Entrega al cliente solo server.pub; no publiques server.key ni perfiles completos.
sudo install -d -m 700 /etc/wireguard
sudo sh -c 'umask 077; wg genkey > /etc/wireguard/server.key; wg pubkey < /etc/wireguard/server.key > /etc/wireguard/server.pub'
sudo cat /etc/wireguard/server.pub
Activa el reenvío IPv4
Escribe la primera línea mostrada en /etc/sysctl.d/99-wireguard-forward.conf y ejecuta los dos comandos siguientes. El valor debe ser 1. El reenvío no crea por sí mismo reglas de cortafuegos ni una ruta de retorno.
net.ipv4.ip_forward=1
sudo sysctl --system
sysctl net.ipv4.ip_forward
Configura el servidor
Guarda este bloque en /etc/wireguard/wg0.conf. Sustituye SERVER_PRIVATE_KEY por el contenido de server.key y CLIENT_PUBLIC_KEY por la clave pública generada en el cliente. En el servidor, AllowedIPs = 10.20.30.2/32; cada cliente necesita dirección y clave únicas. No añadas comentarios ni espacios a una línea de clave.
[Interface]
Address = 10.20.30.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.20.30.2/32
UFW y ruta a la LAN
Añade las reglas antes de activar UFW. La regla route permite reenviar tráfico del túnel a la LAN indicada. Los dispositivos de la LAN necesitan también ruta de regreso a 10.20.30.0/24 mediante la IP LAN del servidor Ubuntu: configúrala en el router. Si no puedes, considera un NAT documentado hacia la LAN administrado por el cortafuegos; los dispositivos verán la IP de la puerta de enlace y no la del cliente. No abras el reenvío general hacia Internet.
sudo ufw allow OpenSSH
sudo ufw allow 51820/udp
sudo ufw route allow in on wg0 out on ens18 from 10.20.30.0/24 to 192.168.1.0/24
sudo ufw status verbose
sudo ufw enable
Genera las claves del cliente
En un cliente Linux, crea el par en un directorio privado y transfiere al servidor solo client1.pub. En el móvil, genera las claves en la aplicación WireGuard: un QR del perfil incluye la clave privada y debe protegerse.
umask 077
wg genkey > client1.key
wg pubkey < client1.key > client1.pub
Configura el cliente
Importa el bloque en la aplicación y sustituye claves y punto de acceso. Estas AllowedIPs crean un túnel dividido: solo la VPN y la LAN remota pasan por él. Configura un DNS LAN solo si existe y es accesible por la VPN. PersistentKeepalive = 25 ayuda tras NAT, pero no siempre hace falta.
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.20.30.2/24
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = vpn.example.net:51820
AllowedIPs = 10.20.30.0/24, 192.168.1.0/24
PersistentKeepalive = 25
Inicia y verifica
Protege wg0.conf, inicia el servicio y comprueba el intercambio de claves y los contadores con wg show. Desde el cliente prueba 10.20.30.1 y después un equipo LAN permitido. Si no hay intercambio, revisa endpoint, UDP, redirección y claves; si lo hay pero no llegas a la LAN, revisa reenvío IP, UFW, cortafuegos de equipos y ruta de retorno. Un ping bloqueado no descarta un servicio accesible.
sudo chmod 600 /etc/wireguard/wg0.conf
sudo systemctl enable --now wg-quick@wg0
sudo wg show
sudo ufw status numbered
Más clientes y fuentes
Cada par nuevo requiere otra clave y otra dirección, por ejemplo 10.20.30.3/32 en el servidor. Reload incorpora pares sin recrear la interfaz; modificar Address, PostUp o rutas de wg-quick puede requerir reiniciarla. Guías oficiales: https://documentation.ubuntu.com/server/how-to/wireguard-vpn/peer-to-site/index.html y https://documentation.ubuntu.com/server/how-to/wireguard-vpn/common-tasks/index.html .
sudo systemctl reload wg-quick@wg0
Compartir
¿Cuál es tu reacción?
Me gusta
0
No me gusta
0
Me encanta
0
Divertido
0
Enfadado
0
Triste
0
¡Vaya!
0