Tutorial

VPN mesh sin puertos abiertos con NetBird en VPS

Seguridad y monitorización8 min de lectura5 pasos

Diez clientes, diez accesos VPS diferentes, diez conjuntos de claves WireGuard para gestionar manualmente. Por cada nueva estación de trabajo de administrador u oficina remota, hay que reabrir un firewall, redistribuir una clave y actualizar configuraciones en cada nodo. Este modelo falla a escala. NetBird 0.76 resuelve este problema automatizando completamente el descubrimiento de pares, el traversal NAT y los relés TURN — y su comando `netbird expose` permite hacer accesible un servicio interno desde el mesh sin abrir un solo puerto público en Internet.

Contenido· El problema: gestionar diez túneles WireGuard manuales1/7
  1. 01El problema: gestionar diez túneles WireGuard manuales
  2. 02Requisitos previos
  3. 03Conectar un VPS ServOrbit a una red NetBird
  4. 04`netbird expose`: un servicio interno sin puerto público
  5. 05Caso de uso agencia: conectar VPS cliente, oficina y estación admin
  6. 06Resolución de problemas: 3 problemas frecuentes
  7. 07Conclusión: menos reglas de firewall, más seguridad real

El problema: gestionar diez túneles WireGuard manuales

WireGuard es excelente — rápido, moderno, sólido criptográficamente. Pero su modelo de configuración es estático: cada par debe conocer la IP pública y la clave pública de todos sus homólogos. En un parque de diez clientes con estaciones de trabajo nómadas, oficinas detrás de CGNAT y VPS con IPs variables, se pasa más tiempo sincronizando archivos wg0.conf que haciendo trabajo productivo. Añadir un VPS implica modificar la lista de pares en nueve máquinas. Eliminar un técnico requiere revocar su clave en todas partes. ¿Cambió una subred? A empezar de nuevo. Esta es la pesadilla operativa que NetBird fue diseñado para eliminar.

  • Mesh automático: NetBird gestiona el plano de control — cada nuevo par se anuncia, los demás lo descubren sin intervención manual.
  • Traversal NAT y CGNAT: NetBird usa STUN para establecer conexiones directas entre pares a través de NATs residenciales y corporativos.
  • Relé TURN automático: cuando la conexión directa es imposible, NetBird cambia silenciosamente a un relé cifrado.
  • Auditoría de acceso granular: las políticas de control de acceso definen qué pares pueden alcanzar qué servicios.
  • Open source (BSD-3 para el cliente, AGPLv3 para el servidor): sin vendor lock-in, posibilidad de autoalojamiento.

Requisitos previos

Antes de instalar NetBird, verifica que tu infraestructura cumple los siguientes requisitos.

  • Un VPS ServOrbit con Ubuntu 22.04/24.04 o Debian 12, con acceso root.
  • Una cuenta de NetBird Cloud (gratuita hasta 5 pares) o un plano de control self-hosted ya desplegado.
  • Los puertos salientes 443 (HTTPS/WSS) y 3478 (STUN/UDP) no bloqueados desde el VPS.
  • La función Peer Expose activada en tu cuenta (disponible en los planes Team y superiores).

Conectar un VPS ServOrbit a una red NetBird

Aquí está el procedimiento completo para conectar un VPS ServOrbit a tu red mesh NetBird.

  1. Instalar el agente NetBird

    En el VPS, añade el repositorio oficial e instala el paquete:

    curl -fsSL https://pkgs.netbird.io/install.sh | sh

    Verifica la versión: netbird version debe mostrar 0.76.x.

  2. Generar una clave de configuración

    En el panel de NetBird, ve a Setup Keys y crea una clave reutilizable o de un solo uso. Cópiala — solo se muestra una vez.

  3. Conectar el par al plano de control

    En el VPS:

    netbird up --setup-key <TU_SETUP_KEY>

    El par aparece en el panel en segundos.

  4. Añadir el par al grupo de red

    En la interfaz NetBird, ve a Peers, selecciona el nuevo VPS y añádelo al grupo deseado. Las políticas de acceso se aplican inmediatamente.

  5. Verificar la conectividad mesh

    Desde otro par ya en la red:

    netbird status
    ping 100.x.x.x  # IP mesh del nuevo VPS

    Un ping que responde confirma que el túnel está establecido.

`netbird expose`: un servicio interno sin puerto público

El comando netbird expose permite hacer accesible un servicio que escucha localmente a través del proxy inverso de NetBird — sin abrir ningún puerto en el firewall del VPS. El servicio creado es efímero: desaparece automáticamente al detener el comando.

Ejemplo práctico: tu panel de supervisión escucha en localhost:3000 y solo debe ser accesible para miembros autorizados del mesh:

netbird expose --protocol http \
  --local-address localhost:3000 \
  --with-user-groups supervision-admins

NetBird genera una URL pública en *.tunnel.netbird.io. El puerto 3000 del VPS permanece cerrado a nivel de firewall.

Para acceso protegido por contraseña sin SSO, añade --with-password: NetBird muestra una contraseña aleatoria que compartes con tus colaboradores. Útil para acceso de emergencia a un cliente sin cuenta en tu tenant NetBird.

Caso de uso agencia: conectar VPS cliente, oficina y estación admin

Topología NetBird recomendada para una agencia que gestiona diez clientes independientes: crea un grupo por cliente. El VPS de cada cliente es miembro de su grupo. Las estaciones de admin son miembros solo de su grupo de cliente. La oficina de la agencia está en un grupo agency-ops con acceso a todos los grupos de clientes.

Para SSH al VPS del cliente sin puerto público:

ufw allow in on netbird0 to any port 22
ufw deny 22

Desplace la tabla

CriterioNetBird 0.76TailscaleWireGuard manual
Gestión de paresAutomática (plano de control centralizado)Automática (nube Tailscale)Manual (archivos wg0.conf en cada nodo)
Traversal NAT/CGNATSTUN + TURN automáticoSTUN + DERP automáticoRequiere IP pública o port-forward
Modelo de preciosGratuito hasta 5 pares; planes Team/Business; self-hosted gratuitoGratuito hasta 3 usuarios; planes de pagoGratuito (software), coste operativo en tiempo
Open sourceSí (BSD-3 cliente, AGPLv3 servidor)Cliente open source (BSD-3), servidor propietarioSí (GPLv2 kernel, MIT userland)
Exponer servicio sin puerto abiertoSí (`netbird expose`)No (Funnel disponible pero diferente)No nativo (túnel SSH manual)
Auditoría y políticas de accesoInterfaz web completa, grupos y políticasACL vía archivo HuJSON, interfaz webNinguna — solo AllowedIPs por par

Resolución de problemas: 3 problemas frecuentes

1. Par inaccesible (Status: Disconnected) — Ejecuta netbird status --detail para ver el estado ICE. Verifica que el puerto 3478/UDP saliente esté abierto.

2. STUN/TURN bloqueado por firewall corporativo — NetBird soporta TURN sobre TCP/443. Configura Force TCP en el panel.

3. Leer los logs — En Linux con systemd:

journalctl -u netbird -f --since '5 minutes ago'

Política de control de acceso: crea una regla que solo permita al grupo agency-ops alcanzar el puerto 22 en los grupos de clientes. Esto evita que un equipo comprometido en el mesh sirva de pivote para acceder a todos los VPS de clientes.

Conclusión: menos reglas de firewall, más seguridad real

NetBird 0.76 representa un cambio de paradigma para gestionar un parque de VPS distribuido. En lugar de multiplicar reglas UFW y claves WireGuard estáticas, defines grupos y políticas una vez — y el plano de control se encarga del resto. El comando netbird expose va más lejos: elimina físicamente servicios de la exposición a Internet sin reconfigurar el firewall. Para una agencia que gestiona diez clientes o una empresa con oficinas distribuidas, esta es la reducción de superficie de ataque más impactante por hora invertida.

¿Necesitas infraestructura segura para tu agencia?

Nuestros planes para agencias incluyen VPS dedicados, soporte técnico dedicado y una arquitectura de red adaptada a la gestión multi-cliente. Descubre cómo podemos simplificar tu infraestructura.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva