Un servidor cloud te da libertad para desplegar aplicaciones, automatizaciones, bases de datos y paneles internos. Pero esa libertad también exige criterio operativo: no todo servicio administrativo debería quedar expuesto directamente a Internet.
En esta guía vas a ver cómo crear una VPN privada con WireGuard para administrar servicios internos en un Cloud Server Ubuntu o Debian.
El objetivo es dejar una capa de acceso más segura y mantenible para conectarte a SSH, paneles o servicios sensibles desde una red privada.
La idea no es memorizar comandos sueltos, sino seguir un flujo repetible: preparar el servidor, instalar WireGuard, generar llaves, configurar la interfaz VPN, ajustar el firewall y validar que todo funcione antes de cerrar accesos públicos.
Qué es WireGuard
WireGuard es una VPN moderna basada en llaves públicas y privadas. En un Cloud Server permite crear una red privada para administrar servicios que no deberían estar publicados directamente por IP pública.
Con esta configuración, el servidor expone el puerto UDP de WireGuard y los servicios internos quedan accesibles solo desde la red VPN, por ejemplo para tareas de administración, mantenimiento o soporte técnico.
Cuándo conviene usarlo
Usar WireGuard como VPN privada cloud es especialmente útil cuando:
- Quieres acceder a servicios internos sin exponerlos por IP pública.
- Necesitas una alternativa simple a abrir puertos administrativos.
- Administras varios servidores desde una red privada.
- Quieres reducir la superficie pública de servicios como SSH, paneles internos o bases de datos.
- Buscas una configuración simple de auditar y mantener.
Requisitos previos
Antes de empezar, asegúrate de contar con:
- Un Cloud Server con Ubuntu o Debian.
- Acceso
sudooroot. - Cliente WireGuard instalado en tu equipo local.
- Un puerto UDP definido para la VPN.
Puertos necesarios
Para esta guía se contemplan estos puertos:
51820/udppara WireGuard.22/tcpsolo desde la red VPN, si decides restringir SSH.- Puertos administrativos internos según cada servicio.
Trabaja desde una sesión SSH estable y no cierres la consola hasta comprobar que la VPN funciona correctamente.
Paso 1: Instalar WireGuard
Primero instala las herramientas necesarias en el servidor y verifica que WireGuard esté disponible.

sudo apt updatesudo apt install wireguard -ywg --versionSi el comando wg --version responde correctamente, ya puedes avanzar con la generación de llaves.
Paso 2: Crear las llaves del servidor
WireGuard utiliza un par de llaves: una privada y una pública. La privada queda en el servidor y no debe compartirse.

sudo mkdir -p /etc/wireguardwg genkey | sudo tee /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pubsudo chmod 600 /etc/wireguard/server.keyLa llave privada del servidor debe tratarse como un secreto. No la pegues en tickets, chats, repositorios ni documentación pública.
Paso 3: Configurar wg0.conf
El archivo wg0.conf define la interfzzzzzzzzaz VPN, la IP interna, el puerto UDP y los peers autorizados.

sudo nano /etc/wireguard/wg0.confsudo sysctl -w net.ipv4.ip_forward=1sudo wg-quick up wg0En esta etapa debes definir la configuración mínima del servidor y del cliente. Presta especial atención a AllowedIPs, porque determina qué rutas pasarán por la VPN.
Si solo quieres acceso administrativo puntual, evita usar0.0.0.0/0enAllowedIPs.
Paso 4: Ajustar
el firewall
Una vez levantada la interfaz VPN, permite el puerto UDP de WireGuard y restringe los servicios administrativos a la red privada
sudo ufw allow 51820/udpsudo ufw allow from 10.8.0.0/24 to any port 22 proto tcpsudo ufw status verboseCon esta regla, SSH queda permitido desde la red VPN 10.8.0.0/24. Si tienes paneles internos u otros servicios administrativos, aplica el mismo criterio: permitir acceso desde la red VPN y evitar exposición pública innecesaria.
No abras paneles de administración al mundo si pueden quedar accesibles por VPN.

Paso 5: Probar cliente y persistencia
Conecta el cliente WireGuard desde tu equipo local y valida que exista comunicación con la IP interna del servidor.
sudo systemctl enable wg-quick@wg0sudo wg showping 10.8.0.1
El comando wg show te ayuda a revisar el estado de la interfaz y confirmar si existe un handshake reciente con el cliente.

Prueba la conexión desde una red externa real, no solo desde el propio servidor.
Reforzar la seguridad
Antes de dar por terminado el despliegue, revisa estos puntos:
- Que el único servicio público necesario sea el que realmente quieres publicar.
- Que los puertos internos no hayan quedado expuestos a Internet.
- Que las llaves privadas no estén en archivos versionados, tickets, chats o historiales de shell.
- Que cualquier cambio sobre bases de datos, runners, automatizaciones o certificados se pruebe primero en un entorno secundario.
También conviene documentar cómo se reinicia el servicio, cómo se actualiza, dónde revisar logs y cuál es el comando de verificación rápida. Esa información vale mucho cuando otra persona del equipo tiene que intervenir.
Problemas frecuentes
El cliente no recibe tráfico
Revisa el firewall UDP, el Endpoint, los AllowedIPs y confirma con wg show que exista un handshake reciente.
No resuelvo DNS por VPN
Define DNS en el cliente o utiliza resolución local si solo necesitas acceder por IPs internas.
Pierdo SSH al aplicar UFW
Mantén una sesión abierta y valida las reglas antes de cerrar el acceso público. Si vas a restringir SSH, comprueba primero que puedes entrar correctamente por la VPN.
Conclusión
WireGuard es una buena capa para administrar servicios sensibles en un Cloud Server con menos exposición pública y una operación relativamente simple.
Con una VPN privada, reglas de firewall claras y una validación cuidadosa, puedes acceder a SSH, paneles y servicios internos sin dejarlos abiertos directamente a Internet.