El problema de los servidores
Hasta ahora, entrar con Golem en una máquina tenía un requisito: alguien al otro lado tenía que arrancar el agente y pasarme la línea de conexión. En el ordenador de un usuario eso funciona bien, porque la persona está ahí y quiere que la ayude.
Con los servidores pasa otra cosa. Nadie se sienta delante de un servidor. Cuando una empresa de software empezó a usar Golem con sus técnicos, lo primero que me contaron fue que, para entrar en el servidor de un cliente, abrían antes una sesión de AnyDesk, Splashtop o RustDesk solo para lanzar Golem y copiarse la línea. Dos herramientas de acceso remoto para una sola tarea, y la segunda dependía de la primera.
Me pidieron algo parecido al acceso desatendido de esas herramientas, y eso es lo que trae Golem 1.4.
Por qué no bastaba con dejar un token en un fichero
La solución rápida habría sido dejar el agente corriendo como servicio, con un token fijo guardado en el disco, para que el técnico se conectara cuando quisiera. La descarté enseguida. Un token fijo en un fichero es una contraseña que no caduca, que sirve a cualquiera que lo copie y que nadie recuerda cambiar cuando un técnico se va de la empresa. En un servidor de cliente, con los datos de su negocio dentro, no quería dejar eso.
Así que el diseño parte de tres ideas:
- El servidor no queda abierto. Espera, y solo abre cuando alguien de la empresa correcta llama.
- Cada técnico entra con su propia credencial, que lleva su nombre y caduca a los 30 días.
- Cada sesión nace con un token nuevo y se cierra sola por inactividad.
Cómo funciona
En cada servidor se instala una vez, con alguien del cliente delante o por la sesión remota de siempre:
golem guardian install --credential C:\Golem\tecnico.credEso deja un servicio de Windows, Golem Guardián, que arranca con la máquina, y una cerradura junto al ejecutable. La cerradura dice de qué empresa son las credenciales que pueden abrir ese servidor. La instalación imprime dos datos que se apuntan en el inventario: una ranura de ocho dígitos y la identidad del guardián, una huella que identifica a ese servidor.
En cuanto el servicio queda registrado, el fichero .cred se borra del servidor. Solo hace falta para instalar el guardián: de ahí en adelante no se vuelve a usar, y la cerradura no guarda ninguna copia. Dejarlo allí sería dejar la credencial de un técnico en una máquina que no es la suya, aunque sin su clave, que solo está en su equipo, no abre nada.
A partir de ahí, un técnico entra desde su Claude con los ocho dígitos:
golem_connect 3050 7712Su cliente deja en mi portal un toque firmado con la clave de su equipo. El guardián pregunta al portal cada minuto si alguien ha llamado. Cuando encuentra el toque, comprueba la credencial, que sea de la empresa de la cerradura, que la clave sea la del técnico, la hora, que no se repita y la firma. Si todo cuadra, abre una sesión con un token nuevo y se la devuelve al técnico cifrada, de forma que solo la puede leer su equipo. En un servidor detrás de un router abre además un túnel de Cloudflare solo mientras dura esa sesión. El servidor no escucha nada hacia fuera.
El portal hace de buzón y no puede leer lo que pasa por él. Guarda la ranura, una comprobación del secreto de esa ranura y los toques y respuestas cifrados. No sabe el nombre del servidor ni su IP. Lo que publica el guardián va firmado con su identidad, y el cliente del técnico recuerda esa identidad la primera vez que entra, como hace SSH con los servidores que conoce: si otro día le contesta alguien con otra, no conecta.
Lo que ve el dueño del servidor
El cliente de la empresa de software también tiene que poder saber qué pasa en su máquina. El guardián lo deja escrito en dos sitios:
- En el Visor de eventos de Windows: la instalación, cada sesión que se abre y se cierra con el nombre del técnico, y cada toque rechazado.
- En
golem-audit.log, junto al ejecutable: cada acción de cada sesión, sin tokens ni credenciales.
Y puede cerrar la puerta cuando quiera. golem guardian remove, en una consola de administrador, quita el servicio, la cerradura y el certificado, y el servidor vuelve a ser uno sin guardián.
Lo que hace la empresa
Los técnicos se gestionan desde el portal, en Técnicos (/portal/team), con la cuenta que tiene la licencia. Cada técnico genera una clave en su equipo, que no sale de él, y la empresa lo da de alta con su nombre, su correo y la parte pública de esa clave. El portal devuelve la credencial, que el técnico instala en su equipo. Se renueva sola cuando le quedan menos de siete días.
Al dar de baja a un técnico hay que saber que el servidor valida la credencial por sí mismo, sin preguntar al portal, así que la baja impide que se renueve pero no la anula en el acto: la que ya tiene sigue abriendo hasta que caduca, como mucho 30 días. Para cortar el acceso de inmediato se hace golem guardian remove y se vuelve a instalar en cada servidor, lo que da una ranura y una identidad nuevas.
Probado en servidores reales
Antes de publicarlo lo he probado en un servidor real, contra mi portal de producción y con los ejecutables firmados. La prueba que más me importaba era reiniciar el servidor sin que nadie iniciara sesión después. El guardián estaba en marcha y esperando doce segundos después de arrancar Windows, y se entró por los ocho dígitos con la misma ranura y la misma identidad que antes.
De esas pruebas salieron correcciones que van en la 1.4.2. Bajo el Guardián no hay escritorio, así que las herramientas de captura de pantalla contestan que no hay pantalla, y ninguna sugiere nada que pueda echar a quien esté conectado por AnyDesk, Splashtop, RustDesk o RDP. install avisa si una ventana de golem serve ocupa su puerto, y si el servicio no arranca, Windows lo reintenta solo y status dice por qué.
Para quién es
El Guardián es para empresas que dan soporte a los servidores de sus clientes, y viene con la licencia Golem Empresa: técnicos sin límite dentro de la empresa, sin atar a ninguna máquina y sin cobrar por servidor. Con las licencias de un técnico o de equipo, Golem funciona como siempre, con la línea de conexión o con los doce dígitos de la Asistencia.
La documentación completa, con la instalación, los dos modos (detrás de un router o con IP alcanzable) y qué hacer ante cada mensaje, está en la guía del Guardián. Los precios, en la página de precios.