Agente de inventario para sistemas Linux. Recopila información del sistema, paquetes instalados y software crítico, y la envía a Firulai para su análisis y detección de vulnerabilidades CVE.
curl -fsSL https://raw.githubusercontent.com/redsauce/inventory-agent/main/install.sh | sudo bash -s <AGENT_TOKEN> <UUID>El instalador (install.sh) realiza los siguientes pasos:
- Verifica dependencias — comprueba que
curly bash 4+ estén disponibles. - Crea los directorios —
/opt/rs-agent(binario) y/var/lib/rs-agent(datos). - Descarga el agente — obtiene
rs_agent.shdesde GitHub y lo deja en/opt/rs-agent/. - Configura el cron — añade una entrada en el crontab de root para ejecutar el agente diariamente a las 3:00 AM.
- Primera ejecución — lanza el agente inmediatamente para generar el inventario inicial.
- Crea el desinstalador — genera
/opt/rs-agent/uninstall.sh.
sudo bash /opt/rs-agent/uninstall.shEl desinstalador muestra un aviso de eliminacion completa. Si confirmas, busca en RSM el System por el UUID de instalacion, borra las Vulnerabilidades vinculadas a ese System, sus Packages, Firmware, Core Software y Custom Software, y despues borra el propio System. Si el System sigue existiendo en RSM, cancela la desinstalacion local para poder reintentar. Cuando RSM queda limpio, borra la entrada de cron, /opt/rs-agent, /var/lib/rs-agent y /var/log/rs-agent.log.
El borrado en RSM requiere itemTypeID y permisos DELETE. El desinstalador usa estos valores por defecto: System=191, Packages=192, Firmware=193, Core Software=194, Vulnerabilidades=195 y Custom Software=197. Si cambian en RSM, se pueden sobrescribir al ejecutar el desinstalador con variables de entorno como RSM_PACKAGES_ITEM_TYPE_ID=.... El borrado se hace por lotes de 100 registros por defecto; se puede ajustar con RSM_DELETE_BATCH_SIZE.
Por defecto el desinstalador usa el Agent Token de instalacion para leer y borrar en RSM. Si ese token no tiene permisos DELETE, se puede ejecutar con RSM_DELETE_TOKEN=<token-con-delete> para usar otro token solo en las llamadas de borrado.
sudo bash /opt/rs-agent/rs_agent.sh --token <AGENT_TOKEN> --uuid <UUID>El agente (rs_agent.sh) genera un JSON con cuatro secciones:
Información básica del host: hostname, FQDN, UUID, distribución Linux (nombre, versión, ID), versión del kernel y arquitectura.
Modelo de CPU (vía lscpu) y lista de discos con su modelo de firmware (vía lsblk), útil para correlacionar CVEs de firmware.
Todos los paquetes instalados, unificados en un único array con el campo manager indicando el origen:
| Manager | Fuente |
|---|---|
dpkg |
Sistemas Debian/Ubuntu (dpkg-query) |
rpm |
Sistemas RHEL/CentOS/Fedora (rpm -qa) |
pip |
Paquetes Python (pip list) |
npm |
Paquetes Node.js globales (npm list -g) |
Versiones de software crítico detectado en el sistema: Apache, nginx, MySQL, PostgreSQL, Docker, PHP, Node.js, Java, OpenSSH, OpenSSL y Git. Cada entrada incluye el nombre, la versión parseada y la salida raw del comando de versión.
| Ruta | Descripción |
|---|---|
/opt/rs-agent/rs_agent.sh |
Agente principal |
/var/lib/rs-agent/inventory.json |
Último inventario generado |
/var/log/rs-agent.log |
Log de ejecuciones automáticas |
/opt/rs-agent/uninstall.sh |
Script de desinstalación |
/tmp/rsm_debug_payload.json |
Payload completo de la última llamada a RSM |
- Linux (Debian, Ubuntu, RHEL, CentOS, Fedora, Rocky, Alma u otras)
- bash 4+
- curl
- Permisos de root