Saltar a contenido

Hodei-Shield Agent: guía beta para Linux

Instala la versión 2.20.0 en Linux x86_64 con systemd y OpenSSL 3. Necesitas root, HTTPS saliente a la URL de tu plataforma y a hs-agent-releases.s3.gra.io.cloud.ovh.net, un token de inscripción (sirve una vez; lo crea en la consola el administrador de tu organización o el de tu MSSP), un id de agente (letras, dígitos, . _ : -; será el nombre permanente de la máquina) y la URL de la plataforma (https://…). MEASURED (medido): ejecutado y con salida conservada; NOT RUN: escrito solo desde el empaquetado. Si un paso falla, detente y escribe a info@hodeitek.com. Los informes de error van a Sentry por defecto: para desactivarlos antes del primer arranque, mira el final de esta guía.

1. Descarga

Solo desde el almacén de versiones, nunca desde un enlace de correo o chat.

V="${V:?set V to the version you were given}"
B=https://hs-agent-releases.s3.gra.io.cloud.ovh.net
mkdir hodei-install && cd hodei-install
curl -fsSLO "$B/agent/$V/hodei-shield-$V-linux-x86_64-musl.tar.gz"
curl -fsSLO "$B/agent/$V/SHA256SUMS"
curl -fsSLO "$B/agent/$V/SHA256SUMS.sig"

Antes de ejecutar nada, comprueba que la descarga es auténtica: verificar una versión del agente y verificar la descarga.

2. Verificación

Linux no tiene firma nativa del sistema; el tarball queda cubierto por la firma de versión (Ed25519) sobre SHA256SUMS. Guarda esto como hodei-shield-release.pub.pem:

-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAEUqKd+ot7BESwk+vf6EVBKudMi6F6jmY3dJeHXfCWkQ=
-----END PUBLIC KEY-----
MEASURED sobre una versión publicada. Huella de la clave (detalle: verify-release.md; openssl pkey -pubin -in hodei-shield-release.pub.pem -outform DER | tail -c 32 | sha256sum): 8b730d2fcbd90e2656bd9b3f265638f1e8e8ac2379d48b0636feb5efe5a88f07. Es la huella de la clave, no el checksum del paquete; el paquete se comprueba con SHA256SUMS.
openssl base64 -d -A -in SHA256SUMS.sig -out SHA256SUMS.sig.raw
wc -c < SHA256SUMS.sig.raw                      # debe imprimir 64
openssl pkeyutl -verify -rawin -pubin -inkey hodei-shield-release.pub.pem \
  -sigfile SHA256SUMS.sig.raw -in SHA256SUMS    # Signature Verified Successfully
sha256sum --ignore-missing -c SHA256SUMS        # tu .tar.gz debe decir: OK
Cualquier otro resultado significa no instalar: borra los ficheros y avisa a Hodeitek.

3. Instalación

MEASURED (Debian 12, 2026-10-29).

tar xzf "hodei-shield-$V-linux-x86_64-musl.tar.gz"
cd "hodei-shield-$V-linux-x86_64-musl"
sudo useradd --system --no-create-home --shell /usr/sbin/nologin hodei-shield
sudo install -o root -g root -m 0755 hodei-shield /usr/local/bin/hodei-shield
sudo install -o root -g root -m 0644 hodei-shield.service /etc/systemd/system/
sudo install -d -o root -g root -m 0755 /etc/hodei-shield
sudo install -o root -g hodei-shield -m 0640 platform-ca.pem /etc/hodei-shield/
sudo install -d -o hodei-shield -g hodei-shield -m 0700 /var/lib/hodei-shield
sudo -u hodei-shield tee /var/lib/hodei-shield/hodei-shield.toml >/dev/null <<'EOT'
platform_url = "https://<platform host>"
state_dir = "/var/lib/hodei-shield"
EOT
sudo systemctl daemon-reload
hodei-shield version          # imprime: hodei-shield <versión>, y una línea sobre informes de error

4. Inscripción

MEASURED (Debian 12, 2026-10-29). Una vez por máquina; el servicio arranca solo después. El token se teclea oculto, nunca en una línea de comandos.

cd /
IFS= read -rs HODEI_TOKEN && echo
printf '%s' "$HODEI_TOKEN" | sudo -u hodei-shield env \
  HODEI_PLATFORM_URL="https://<platform host>" \
  HODEI_STATE_DIR=/var/lib/hodei-shield \
  /usr/local/bin/hodei-shield enroll --token-stdin --agent-id '<this machine id>'
unset HODEI_TOKEN
sudo systemctl enable --now hodei-shield
Cuando está en marcha con ambos, evalúa y envía de inmediato, y de nuevo cada intervalo de envío (por defecto 3600 segundos). Si va bien, imprime enrolled: producer=endpoint_agent:<id> public_key_id=… tenant_id=…, tras una línea de registro y antes de un comando pin-update-identity para las actualizaciones automáticas: ejecútalo solo cuando tu administrador confirme sus valores en la consola. Si falla, no reutilices el token: pide uno nuevo. Error de certificado o TLS: no añadas certificados ni desactives comprobaciones; el agente solo confía en /etc/hodei-shield/platform-ca.pem. Envía la salida de hodei-shield diagnose a tu administrador; otros fallos: resolución de problemas.

5. Comprobar en la consola

MEASURED (Debian 12, 2026-10-29). systemctl is-active hodei-shield debe decir active. La máquina aparece en Endpoints de la consola tras su primer ciclo. Registros: sudo journalctl -u hodei-shield -n 50 --no-pager.

Controles en «Error» en esta beta: algunos controles pueden aparecer como «Error» en sistemas cuyo idioma no es el inglés, o porque el agente se ejecuta sin permisos de administrador. No significa que el control esté fallando: el agente no pudo leerlo con fiabilidad y no lo cuenta como cumplido. La próxima versión beta lo corrige.

6. Actualizar a mano

No te inscribas de nuevo. Desde la 2.16.0 un equipo Linux se actualiza solo únicamente cuando la política firmada de la consola aprueba la versión; si no, o si prefieres hacerlo tú, actualiza a mano. MEASURED (2.14.0 a 2.14.1, contenedor aislado): binario sustituido, version imprimió la nueva versión, un ciclo aceptado, ficheros de clave e identidad idénticos byte a byte; systemctl, self-test y la reversión no formaron parte de esa prueba. Verifica la versión nueva como en los pasos 1 y 2 y:

V=<nueva versión>
tar xzf "hodei-shield-$V-linux-x86_64-musl.tar.gz" && cd "hodei-shield-$V-linux-x86_64-musl"
sudo systemctl stop hodei-shield
sudo cp -p /usr/local/bin/hodei-shield /usr/local/bin/hodei-shield.prev   # copia para revertir
sudo install -o root -g root -m 0755 hodei-shield /usr/local/bin/hodei-shield
sudo install -o root -g root -m 0644 hodei-shield.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo -u hodei-shield sh -c 'cd /var/lib/hodei-shield && exec /usr/local/bin/hodei-shield self-test' \
  && sudo systemctl start hodei-shield
hodei-shield version                          # la versión nueva

7. Desinstalación

MEASURED (Debian 12, 2026-10-29). Antes, pide a tu administrador que revoque la máquina (consola: Endpoints, el endpoint, Revoke enrolment); un agente revocado registra «credential rejected» y no envía nada.

sudo systemctl disable --now hodei-shield
sudo rm /etc/systemd/system/hodei-shield.service /usr/local/bin/hodei-shield && sudo systemctl daemon-reload
sudo pkill -KILL -u hodei-shield; ! pgrep -u hodei-shield && sudo chown root:root /var/lib/hodei-shield /etc/hodei-shield \
  && sudo chmod 0700 /var/lib/hodei-shield && l="$(sudo find /var/lib/hodei-shield /etc/hodei-shield -xdev ! -type d -links +1 -print -quit)" && [ -z "$l" ] \
  && sudo chown -R root:root /var/lib/hodei-shield /etc/hodei-shield \
  && sudo chmod -R u=rwX,go= /var/lib/hodei-shield && sudo userdel hodei-shield
NOT RUN: pkill/pgrep, el bloqueo de las carpetas y el find, que para la cadena ante un segundo enlace duro (con fs.protected_hardlinks=0 el servicio podría plantar uno a un fichero del sistema para que chown lo reasigne). Si id hodei-shield sigue respondiendo, escribe a Hodeitek. Queda, propiedad de root para que ninguna cuenta que reciba después el uid liberado lea la clave: /var/lib/hodei-shield (clave privada, cola, hodei-shield.toml; 0700/0600), /etc/hodei-shield (CA, telemetry-off) y el journal; no hay registro. Purga (irreversible, tras revocar): sudo rm -rf /var/lib/hodei-shield /etc/hodei-shield.

Privacidad y ayuda. Los informes de error (solo fallos, sin datos personales) van a Sentry; para desactivarlos antes del primer arranque (MEASURED, Debian 12, 2026-10-29): sudo mkdir -p /etc/hodei-shield && sudo touch /etc/hodei-shield/telemetry-off. Ayuda: info@hodeitek.com o el botón Beta de la consola.