Actualmente estoy implementando esta solución de infraestructura para un cliente, con el objetivo de modernizar el acceso remoto a sus servicios internos y centralizar la gestión de identidades y permisos.
Integra NetBird, WireGuard, Authentik y Ansible para construir una arquitectura basada en Zero Trust: VPN de fácil despliegue, autenticación centralizada, doble factor y publicación segura de aplicaciones internas.
La solución ya está en producción, con el SSO operativo y el acceso a los servicios internos funcionando. El objetivo es reemplazar el modelo tradicional de acceso remoto —puertos abiertos, publicaciones individuales y credenciales independientes— por una infraestructura donde la identidad y las políticas de acceso determinan quién llega a cada servicio.
El escenario inicial#
Hasta ahora, los servicios internos se usaban desde la red local: para entrar desde afuera había que abrir un puerto por cada aplicación, publicar cada servicio a mano y confiar en contraseñas locales.
| Modelo anterior | Nueva arquitectura |
|---|---|
| Publicación individual de servicios | Acceso mediante red privada |
| Un puerto abierto por aplicación | Superficie de exposición mínima |
| Credenciales independientes | Identidad centralizada con SSO y doble factor |
| Gestión usuario por usuario | Políticas y grupos centralizados |
| Configuración manual por servidor | Despliegue automatizado y reproducible |
La arquitectura#
Dos piezas hacen el trabajo. NetBird arma la red privada entre los dispositivos —una malla WireGuard— y Authentik centraliza la identidad. Alrededor de ellas, el reverse proxy publica cada servicio con su dominio y su certificado.
Usuario
Cliente de escritorio o móvil
Cliente NetBird
Malla WireGuard
Reverse proxy
TLS termina acá
Servicios internos
Uno por dominio
Authentik
SSO / OIDC + doble factor
La identidad la resuelve Authentik; la conectividad y la autorización de red, las políticas de NetBird.
El acceso depende de dos controles complementarios: la identidad —quién sos y el segundo factor, gestionados por Authentik— y la conectividad y autorización de red —a qué llegás, gestionada por las políticas de NetBird—. Zero Trust no es usar una VPN con SSO: es exigir los dos controles en cada acceso.
- El servidor expone únicamente 80, 443 y el puerto de STUN. Nada más.
- El reverse proxy decide por SNI qué tráfico corresponde a cada destino y publica cada servicio interno bajo su propio nombre.
- Authentik no se publica directamente: escucha en loopback y sale al exterior solo a través del proxy de NetBird, con un sidecar que oficia de routing peer dentro de la malla.
- El DNS interno resuelve esos dominios a la IP de la LAN, así los contenedores no salen a internet para volver a entrar.
Cómo funciona el acceso#
La persona instala el cliente de NetBird, inicia sesión contra Authentik por OIDC y completa el segundo factor. A partir de ahí recibe una IP dentro de la malla y accede a los servicios que su grupo tiene habilitados. Cada servicio se publica con su dominio y su certificado, y las políticas de la red deciden quién llega a qué.
El resultado es que nadie abre puertos por aplicación, no se comparten contraseñas por chat y el alta o la baja de una persona se resuelve en un solo lugar: el proveedor de identidad.
Automatización y operación#
Uno de los objetivos del proyecto fue evitar que la infraestructura dependiera de procedimientos manuales. Para eso desarrollé una capa de automatización con Ansible y una CLI propia que permite desplegar, validar y administrar los componentes de forma controlada y reproducible.
- Validaciones previas: un preflight que revisa sistema operativo, memoria, disco, DNS, puertos y conectividad antes de tocar nada.
- Ejecución por fases: fases reanudables y un modo de simulación (
--check) que muestra qué haría cada cambio sin aplicarlo. - Secretos bajo control: credenciales cifradas con Ansible Vault; claves de alta y tokens fuera del repositorio, con permisos acotados.
- Verificación y respaldos: verificación end-to-end del stack y copias diarias con retención.
- CLI contra la API de NetBird: estado de usuarios, grupos, políticas, peers y servicios del proxy; las mutaciones se muestran en dry-run por defecto y piden confirmación explícita.
- Runbook documentado: operación diaria, upgrades, restauración y resolución de problemas.
Stack tecnológico#
NetBird
Red privada Zero Trust
Authentik
Identidad y SSO
WireGuard
Conectividad VPN
Ansible
Automatización
Docker
Contenedores
Debian 13
Sistema operativo
NetBird self-hosted corre en contenedores, con su management, dashboard y reverse proxy; Authentik corre junto, integrado a la malla por un sidecar. Debian 13 es el sistema operativo del servidor y Docker la base de ejecución.
Seguridad por diseño y privacidad#
- Superficie mínima: solo los puertos necesarios quedan abiertos; Authentik no tiene exposición directa.
- TLS bien delimitado: los certificados terminan en el reverse proxy (ACME / Let’s Encrypt) y entre el proxy y los servicios internos el tráfico viaja dentro de la malla WireGuard, cifrada por WireGuard.
- Identidad con doble factor: SSO/OIDC y segundo factor obligatorio, con políticas por grupo.
- Secretos fuera del código: credenciales cifradas con Ansible Vault; setup keys y tokens en archivos con permisos
0600, fuera del repositorio. - Host endurecido: fail2ban, ajustes de kernel, límites de logs y swap controlado.
- Respaldos: copia diaria con retención y procedimiento de restauración documentado en el runbook.
- Permisos acotados: la automatización usa un usuario de servicio, no la cuenta de una persona; las operaciones destructivas piden confirmación y las lecturas se pueden monitorear sin riesgo.
La identidad, los datos y las políticas quedan en infraestructura propia: software libre y autohospedado, con menor dependencia de proveedores externos y control sobre identidades, infraestructura y políticas de acceso. Cada componente mantiene sus licencias y condiciones.
Estado del proyecto#
Implementado y operativo#
- Infraestructura NetBird autohospedada: management, dashboard y reverse proxy.
- Integración con Authentik como proveedor de identidad.
- SSO y doble factor operativos.
- Acceso remoto a los servicios internos a través del reverse proxy.
- DNS interno y políticas de acceso por grupos.
- Automatización del despliegue y de la operación diaria.
Próximas etapas#
- Integración con LDAP/Active Directory.
- Retiro progresivo de la autenticación local.
- Publicación de nuevos servicios.
- Automatización adicional del lado de Authentik.
- Rotación periódica de tokens.
- Los ajustes que vayan surgiendo de la operación real.

