# Configuración inicial

> Primer acceso, verificación en dos pasos, política de inventario, usuarios y roles, y los ajustes que conviene revisar antes de dar de alta servidores.

Sigue esta página cuando los contenedores estén en marcha e InfraWard responda en tu URL pública. Lleva unos quince minutos.

## 1. Entra como primer administrador

Abre InfraWard y entra con el `ADMIN_EMAIL` y el `ADMIN_PASSWORD` de `.env`.

[Captura: Página de acceso de InfraWard con los campos de email y contraseña]

La cuenta se crea en el primer arranque de la API, solo si la base de datos no tiene usuarios. No hay credenciales por defecto. Si la página rechaza la contraseña, mira el log de la API: cuando falta `ADMIN_EMAIL` o `ADMIN_PASSWORD`, o la contraseña tiene menos de 12 caracteres, la API escribe un aviso y no crea ningún usuario.

## 2. Configura la verificación en dos pasos

La verificación en dos pasos (TOTP) es obligatoria para los administradores que entran con contraseña. Después de la contraseña, InfraWard abre **Configura la verificación en dos pasos** y no deja continuar hasta completarla.

1. Escanea el código QR con una app de autenticación. Si no puedes escanearlo, abre **¿No puedes escanearlo? Escribe la clave** e introdúcela a mano.

   [Captura: Configuración de la verificación en dos pasos con un código QR y un campo para el código de 6 cifras]

2. Escribe el código de 6 cifras que muestra la app y pulsa **Activar**.

3. InfraWard muestra diez códigos de recuperación, una sola vez. Cópialos o descárgalos como `.txt`, guárdalos en un gestor de contraseñas y pulsa **Ya los he guardado**.

   [Captura: Diez códigos de recuperación, difuminados, con los botones Copiar, Descargar .txt y Ya los he guardado]

Cada código de recuperación sirve una vez, en lugar de un código TOTP. Para pasar el segundo factor a otro móvil o generar códigos nuevos, ve a **Ajustes → Perfil → Seguridad**.

> **Atención**
>
> Si un administrador pierde el móvil y los códigos de recuperación, otro administrador tiene que restablecer su segundo factor desde **Ajustes → Usuarios**. Mantén al menos dos cuentas de administrador, o una [cuenta local de emergencia](/es/docs/authentication.md#desactivar-el-login-con-contraseña) si usas OIDC.

## 3. Comprueba los proveedores de secretos

Abre **Ajustes → Secretos**. Con el despliegue por defecto, los dos proveedores aparecen como **Operativo**: `openbao` guarda secretos y firma certificados SSH, y `local` guarda secretos.

[Captura: Proveedores de secretos: openbao y local, los dos operativos]

Si `openbao` no aparece o muestra un error, la API no ha podido autenticarse con su AppRole. Revisa `docker compose logs api` y consulta [Solución de problemas](/es/docs/troubleshooting.md#openbao-muestra-un-error-en-ajustes).

## 4. Revisa la política de inventario

Abre **Ajustes → Inventario**. La política global se aplica a todos los assets que no tienen una regla propia:

| Ajuste | Por defecto | Qué hace |
|---|---|---|
| **Reconciliación** | cada 6 h | Cada cuánto se recoge y se vuelve a descubrir cada nodo raíz. |
| **Escaneo de vulnerabilidades** | Activado | Si los assets se escanean. |
| **Escaneo automático** | Sí, tras recoger y descubrir | Si se lanza un escaneo automáticamente después de cada recolección. |
| **Excluir del escaneo** | nada | Tipos de asset, patrones de nombre (`bitnami/*`, `*-test`) o assets concretos que siguen en el inventario pero no se escanean. |

[Captura: Política global de inventario con reconciliación, escaneo, escaneo automático y exclusiones]

También se pueden fijar reglas por etiqueta, por proyecto y por asset. Cuando varias reglas alcanzan a un asset, gana la del propio asset; después, la del nodo superior más cercano; luego, la de sus etiquetas (la más restrictiva); después, la de sus proyectos (la más restrictiva), y por último la global.

En la misma pestaña están los avisos de caducidad de certificados TLS y dominios, los **Reenvíos NAT** (qué puertos públicos de tu router van a qué servidores internos, para saber qué está expuesto) y los colores de las etiquetas.

## 5. Crea usuarios

Abre **Ajustes → Usuarios** y pulsa **Nuevo usuario**. Escribe el email, el nombre y el rol. InfraWard genera una contraseña temporal de 20 caracteres y la muestra una sola vez. Hazla llegar a la persona por un canal seguro. Vale durante 24 horas y hay que cambiarla al entrar por primera vez.

[Captura: Lista de usuarios con un administrador, una editora y un operador con la contraseña temporal pendiente]

Los roles son fijos. Todos los roles pueden consultar el inventario y las vulnerabilidades.

| Permiso | Admin | Editor | Operador | Auditor | Lector |
|---|:-:|:-:|:-:|:-:|:-:|
| Recoger, descubrir, escanear y reconciliar (`assets.operate`) | ✔ | ✔ | ✔ | | |
| Dar de alta, editar, etiquetar y dar de baja assets (`assets.write`) | ✔ | ✔ | | | |
| Crear y editar proyectos (`projects.write`) | ✔ | ✔ | | | |
| Cambiar políticas de inventario (`policy.write`) | ✔ | ✔ | | | |
| Gestionar conectores de dominios (`connectors.write`) | ✔ | ✔ | | | |
| Gestionar la caja fuerte sin ver las contraseñas (`vault.manage`) | ✔ | ✔ | | | |
| Aceptar el riesgo de hallazgos y reabrirlos (`findings.accept`) | ✔ | ✔ | | | |
| Ver el estado de los proveedores de secretos (`secrets.status`) | ✔ | ✔ | | ✔ | |
| Ver usuarios (`users.read`) | ✔ | | | ✔ | |
| Leer el registro de auditoría (`audit.read`) | ✔ | | | ✔ | |
| Purgar assets de forma definitiva (`assets.purge`) | ✔ | | | | |
| Gestionar usuarios y roles (`users.manage`) | ✔ | | | | |
| Revelar contraseñas de la caja fuerte (`vault.admin`) | ✔ | | | | |
| Gestionar los canales de alertas (`alerts.manage`) | ✔ | | | | |
| Abrir la terminal web (`terminal.open`) | ✔ | con política de acceso | con política de acceso | con política de acceso | con política de acceso |

Las acciones sensibles (cambiar roles, desactivar usuarios, purgar, revelar una contraseña de la caja fuerte, abrir una terminal, crear tokens con escritura o cambiar los canales de alertas) piden confirmar la identidad si la última confirmación tiene más de 10 minutos (`REAUTH_MAX_AGE`).

Para que los usuarios entren con tu proveedor de identidad, consulta [Autenticación, MFA y OIDC](/es/docs/authentication.md).

## 6. Da acceso a la terminal (opcional)

Los administradores pueden abrir una terminal en cualquier servidor con el acceso interactivo de administración activado. Para el resto, abre **Ajustes → Acceso**, elige una persona o un rol y después un asset, una etiqueta o un proyecto, y pulsa **Dar acceso**.

[Captura: Política de acceso a la terminal para laura.gomez@example.com a través de la etiqueta prod]

Consulta [Terminal web](/es/docs/terminal.md).

## 7. Configura las alertas (opcional)

Las notificaciones aparecen siempre en la campana de la barra superior: assets nuevos, desaparecidos y retirados, reconciliaciones fallidas, certificados y dominios a punto de caducar, registros DNS colgantes, vulnerabilidades críticas en KEV y expuestas, riesgos aceptados que han caducado y revelados de la caja fuerte. Para enviarlas también a otro sitio, abre **Ajustes → Alertas** y pulsa **Nuevo canal**. Solo pueden hacerlo los administradores, y pide reautenticación.

| Tipo | Qué envía |
|---|---|
| Webhook | Un `POST` JSON a una URL HTTPS; por ejemplo, ntfy, n8n, o Slack o Teams a través de una automatización. Con un **Secreto de firma**, cada petición lleva `X-InfraWard-Signature` con un HMAC-SHA256 de `<X-InfraWard-Timestamp>.<cuerpo>`. |
| Correo | Un mensaje a los **Destinatarios** a través del servidor SMTP del worker. Configura antes las variables `SMTP_*`; consulta [Variables de configuración](/es/docs/configuration.md#alertas). |

**Qué recibe** limita un canal a algunos tipos de notificación; vacío significa todos. Los revelados de la caja fuerte, que solo ven los administradores, solo se envían si marcas **También las que solo ven los admins**. **Enviar prueba** manda un mensaje de prueba, y la lista muestra el resultado del último envío.

La URL y el secreto del webhook se guardan en el proveedor de secretos. Por defecto el worker solo envía a direcciones HTTPS públicas; para un receptor en tu propia red, consulta `ALERTS_WEBHOOK_ALLOW_PRIVATE` y `ALERTS_WEBHOOK_ALLOW_HTTP`.

## 8. Otros ajustes

- **Ajustes → Conectores**: añade un conector de Cloudflare para inventariar tus dominios. Consulta [Dominios](/es/docs/domains.md).
- **Ajustes → Tokens de API**: tokens personales para scripts, con caducidad de como mucho un año. Consulta [API REST](/es/docs/api.md).
- **Ajustes → Caja fuerte**: plazo de rotación por defecto, aviso a los demás admins en cada revelado y días en la papelera. Consulta [Caja fuerte](/es/docs/vault.md).
- **Ajustes → Auditoría**: cada inicio de sesión (también los fallidos), alta, purga, cambio de política, cambio de rol y sesión de terminal, con su IP de origen.

## Siguiente paso

[Da de alta tu primer servidor](/es/docs/enrollment.md).

---

Página HTML: https://infraward.net/es/docs/initial-setup/
