Add six-month domain and broker monitoring
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
# Monitoreo y registros de uso
|
||||
|
||||
El dominio usa **Windows Event Forwarding (WEF)** y el servicio nativo
|
||||
**Windows Event Collector (Wecsvc)**. No instala un agente de telemetría y no
|
||||
registra contraseñas, contenido de escritorio ni páginas visitadas.
|
||||
|
||||
## Datos recopilados
|
||||
|
||||
La suscripción `SGU-Lab-Monitoring` recibe desde los equipos de
|
||||
`OU=Laboratorio`:
|
||||
|
||||
- inicios de sesión correctos y fallidos (`4624` y `4625`);
|
||||
- cierre de sesión, desconexión y reconexión (`4634`, `4647`, `4778`, `4779`);
|
||||
- arranque, apagado, reinicio y apagado inesperado (`12`, `13`, `41`, `1074`,
|
||||
`6005`, `6006`, `6008`).
|
||||
|
||||
Con el identificador de sesión de Windows se obtiene quién usó qué equipo,
|
||||
hora de entrada, hora de salida y duración. Los eventos fallidos conservan el
|
||||
estado de Windows, pero nunca la contraseña introducida.
|
||||
|
||||
El broker escribe un registro separado de Windows llamado `SGU Auth Broker`.
|
||||
Cada solicitud válida queda correlacionada mediante usuario institucional,
|
||||
rol, `TraceId`, resultado y tiempo total. Los Event ID estables distinguen:
|
||||
|
||||
- `1000` autorización completada; `1001` credenciales rechazadas; `1002`
|
||||
servicio no disponible; `1003` solicitud inválida;
|
||||
- `1100` SGU aceptó la autenticación; `1101` timeout; `1102` fallo de red/DNS;
|
||||
- `1200` enriquecimiento completado y cantidad de campos; `1201` HTML sin los
|
||||
IDs admitidos; `1202` timeout; `1203` excepción; `1204` página opcional no
|
||||
disponible;
|
||||
- `1300` fallo de sincronización AD; `1301` metadatos opcionales no aplicados;
|
||||
`1302` membresía RDP opcional no aplicada.
|
||||
|
||||
No se almacena HTML, contraseña, hash de contraseña ni contenido de la
|
||||
respuesta SGU.
|
||||
|
||||
## Retención
|
||||
|
||||
`ForwardedEvents` tiene un límite de 512 MB. La tarea
|
||||
`SGU-Monitoring-Retention` lo archiva diariamente en:
|
||||
|
||||
```text
|
||||
C:\ProgramData\SGU\Monitoring\Archive
|
||||
```
|
||||
|
||||
El mismo ciclo archiva `SGU Auth Broker` en `Archive\Broker`. Solo elimina
|
||||
archivos `.evtx` cuya antigüedad supera **183 días**. La tarea
|
||||
`SGU-Monitoring-Inventory` actualiza cada cinco minutos el inventario en:
|
||||
|
||||
```text
|
||||
C:\ProgramData\SGU\Monitoring\Reports\machine-status.json
|
||||
C:\ProgramData\SGU\Monitoring\Reports\machine-status.csv
|
||||
```
|
||||
|
||||
`Encendida` significa que WinRM respondió en TCP 5985. `Apagada o inaccesible`
|
||||
también puede significar que el equipo está arrancando, perdió la red o tiene
|
||||
el puerto bloqueado; Active Directory por sí solo no conoce el estado eléctrico
|
||||
instantáneo de un PC.
|
||||
|
||||
## Consultas
|
||||
|
||||
En el servidor, como administrador:
|
||||
|
||||
```powershell
|
||||
# Estado actual de las máquinas
|
||||
Get-Content 'C:\ProgramData\SGU\Monitoring\Reports\machine-status.json' -Raw |
|
||||
ConvertFrom-Json | Format-Table ComputerName,Status,IPv4Address,LastDomainLogon
|
||||
|
||||
# Uso de los últimos seis meses
|
||||
& 'C:\ProgramData\SGU\Monitoring\Get-SguUsageReport.ps1' |
|
||||
Format-Table User,Computer,StartedAt,EndedAt,DurationMinutes,Result
|
||||
|
||||
# Un usuario o una máquina
|
||||
& 'C:\ProgramData\SGU\Monitoring\Get-SguUsageReport.ps1' -UserName AL201428
|
||||
& 'C:\ProgramData\SGU\Monitoring\Get-SguUsageReport.ps1' -ComputerName LCI-W11-01
|
||||
|
||||
# Diagnóstico del broker; admite -UserName, -Level, -EventId y -Text
|
||||
& 'C:\ProgramData\SGU\Monitoring\Get-SguBrokerLog.ps1' -UserName AL201428 |
|
||||
Format-Table TimeCreated,Level,EventId,EventName,Message -Wrap
|
||||
& 'C:\ProgramData\SGU\Monitoring\Get-SguBrokerLog.ps1' -Level Warning
|
||||
|
||||
# Exportación
|
||||
& 'C:\ProgramData\SGU\Monitoring\Get-SguUsageReport.ps1' `
|
||||
-OutputCsv 'C:\ProgramData\SGU\Monitoring\Reports\usage.csv'
|
||||
```
|
||||
|
||||
Para revisar la salud del colector:
|
||||
|
||||
```powershell
|
||||
Get-Service Wecsvc
|
||||
wecutil enum-subscription
|
||||
wecutil get-subscriptionruntimestatus SGU-Lab-Monitoring
|
||||
Get-WinEvent -LogName ForwardedEvents -MaxEvents 20
|
||||
Get-WinEvent -LogName 'SGU Auth Broker' -MaxEvents 20
|
||||
Get-ScheduledTask -TaskName 'SGU-Monitoring-*'
|
||||
```
|
||||
|
||||
> **Windows Server 2025:** no consultes `ForwardedEvents` mediante
|
||||
> `-FilterHashtable` ni XPath. Algunas compilaciones tienen una regresión que
|
||||
> termina el servicio Windows Event Log (`wevtsvc.dll`, `0xc0000420`). El
|
||||
> reporte incluido lee el canal sin consulta estructurada y aplica los filtros
|
||||
> en memoria.
|
||||
|
||||
El bootstrap del servidor crea el colector, la suscripción y las tareas. El GPO
|
||||
`SGU - Windows client experience` publica el Subscription Manager por FQDN. El
|
||||
bootstrap y la reparación diaria del cliente habilitan las subcategorías de
|
||||
auditoría y el acceso de `NETWORK SERVICE` al registro Security.
|
||||
|
||||
La suscripción usa `ContentFormat=Events`: conserva el XML original que emplea
|
||||
el reporte y evita que cada cliente tenga que renderizar texto localizado antes
|
||||
de enviarlo.
|
||||
|
||||
Referencias de Microsoft:
|
||||
|
||||
- <https://learn.microsoft.com/en-us/windows/win32/wec/setting-up-a-source-initiated-subscription>
|
||||
- <https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/wecutil>
|
||||
- <https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4624>
|
||||
- <https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4634>
|
||||
Reference in New Issue
Block a user