Ir al contenido

Relays protegidos

A veces un relay se instala en una máquina que pertenece a otra persona: un socio o un cliente cuyo host puede contener datos personales. En una máquina así, ejecuta el relay en modo protegido. En modo protegido, un administrador de Opfield no puede entrar en el host a través del relay, y solo el propietario de la máquina puede desactivar el modo protegido.

Pool de relays en Settings → Relay con un relay marcado como ProtectedPool de relays en Settings → Relay con un relay marcado como Protected

Lo que no puede hacer un administrador de Opfield

Sección titulada «Lo que no puede hacer un administrador de Opfield»
  • Sin consola. El relay rechaza la shell interactiva, los comandos puntuales (incluidos los del asistente de IA y de MCP) y la entrada de consola.
  • Sin archivos. El relay rechaza todas las operaciones con archivos del host: explorar, leer, escribir, subir, mover y eliminar.
  • Sin diagnósticos del host. Los informes de estado solo incluyen cifras agregadas de CPU, memoria, swap, carga, tiempo de actividad, descriptores de archivo y disco libre. No contienen puntos de montaje, E/S de disco, interfaces de red, direcciones IP, modelo de CPU ni versión del kernel, y el relay no consulta su dirección IP pública.
  • Ningún otro comando. El relay solo ejecuta su propio trabajo y rechaza todo lo demás que Opfield le envíe, incluidos los comandos que añadan versiones posteriores de Opfield, con un error que indica que el relay está protegido.
  • enrutar tráfico a través del relay;
  • vaciarlo y reanudarlo;
  • renovar su certificado;
  • leer los logs propios del relay y los contadores de rutas;
  • actualizarlo.

Las actualizaciones solo instalan versiones oficiales firmadas con la clave de versiones integrada en el relay, como en cualquier nodo. Un relay protegido no acepta actualizaciones a una versión anterior a la que ejecuta, porque una versión anterior podría ser previa al modo protegido; una actualización del Relay Pool que lo intente informa del rechazo y devuelve el relay al servicio. Un relay protegido también se niega a servir los servicios integrados del host de Opfield, como el registro interno; solo el relay local junto a Opfield los sirve.

El modo protegido pertenece al propietario de la máquina

Sección titulada «El modo protegido pertenece al propietario de la máquina»

El ajuste solo existe en el archivo de configuración local del relay, /etc/opfield-relay/config.yaml (/etc/gateway-relay-supervisor/config.yaml en un relay instalado antes de la 2.12.1 que todavía no ha pasado a los nombres de Opfield), que puede leer root y, en una instalación sin root, el usuario con el que se ejecuta el relay. Opfield no tiene ningún comando que lo cambie, y un relay protegido rechaza cualquier comando que pudiera escribir en ese archivo.

En el diálogo de configuración del relay, marca Protected relay. Esto añade --protected al comando de instalación generado. Volver a ejecutar el instalador mantiene activado el modo protegido; el instalador nunca lo desactiva.

Activarlo o desactivarlo en un relay existente

Sección titulada «Activarlo o desactivarlo en un relay existente»

Como root en el host del relay:

Ventana de terminal
relay-supervisor protected status
relay-supervisor protected on # or: relay-supervisor protected off
systemctl restart opfield-relay-supervisor # OpenRC: rc-service opfield-relay-supervisor restart

relay-supervisor protected on|off escribe el ajuste en el archivo de configuración conservando todo lo demás e imprime el comando de reinicio para esa máquina: un relay que no se ha reiniciado desde que pasó a los nombres de Opfield sigue ejecutándose como gateway-relay-supervisor. Editar el archivo a mano funciona igual:

protected:
enabled: true
allow_database_witness: false

El cambio se aplica cuando se reinicia el supervisor del relay, y el relay lo comunica cuando se vuelve a conectar.

allow_database_witness (por defecto false) permite que Opfield ejecute testigos de bases de datos y almacenamiento en el relay protegido. Sin él, Opfield no coloca ningún testigo allí, y Settings → Relay muestra “Protected relay: needs local opt-in” aunque un administrador haya permitido testigos en ese relay. El ajuste no tiene efecto mientras el modo protegido esté desactivado.

  • Una insignia Protected en el relay en Nodes, en su página de nodo y en Settings → Relay (protected: true en GET /api/system/relay).
  • Ninguna pestaña Console ni Files en su página de nodo, y ningún comando de consola ni de archivos para él en la paleta de comandos.
  • La API, el asistente de IA y MCP rechazan las peticiones de consola y de archivos del host para ese relay con 409 NODE_PROTECTED.

El modo protegido requiere un relay de la versión 2.12 o posterior. No cambia la forma en que el relay transporta el tráfico; consulta Relay y Relay Pool.