Files
SGU-CredentialProvider/docs/rustdesk-operations.md
T

98 lines
4.0 KiB
Markdown

# RustDesk autoalojado y acceso remoto administrado
El bootstrap del controlador de dominio instala un servidor RustDesk OSS
autoalojado y el bootstrap de cada cliente Windows inscrito instala el agente
RustDesk administrado. Esto permite administrar el propio controlador y cada
cliente del laboratorio sin depender de los servidores públicos de RustDesk.
## Componentes y red
El controlador inicia ambos componentes bajo `SYSTEM` mediante las tareas
programadas `SGU-RustDesk-hbbs` y `SGU-RustDesk-hbbr`:
| Componente | Función | Puerto entrante |
| --- | --- | --- |
| `hbbs` | ID/rendezvous y prueba NAT | TCP 21115-21116 y UDP 21116 |
| `hbbr` | Relay para sesiones que no pueden ser directas | TCP 21117 |
Las reglas se llaman **SGU RustDesk** y sólo aceptan la subred privada que se
indicó al bootstrap del servidor. No se habilitan el servidor web ni los puertos
21118/21119. Los clientes y el servidor necesitan salida HTTPS a GitHub sólo
durante una primera instalación o actualización, para descargar el binario
verificado por SHA-256.
El nombre interno usado por los clientes es `rustdesk.lci.lasalle.mx`; el
bootstrap del DC mantiene su registro A en DNS apuntando a la IP fija del
controlador.
## Alta automática de un equipo Windows
Al finalizar `Invoke-SguClientBootstrap.ps1`, antes de considerar válido el
enrolamiento, el flujo:
1. lee la clave pública del servidor a través de la sesión autenticada con el
DC;
2. instala RustDesk desde el MSI oficial, comprobando el SHA-256 fijado;
3. instala y arranca el servicio `RustDesk` como automático;
4. configura ID, relay y clave pública del servidor privado en el contexto del
servicio y para perfiles nuevos;
5. crea una contraseña única de acceso desatendido, cifrada con DPAPI local y
protegida por ACL para `SYSTEM` y administradores locales;
6. registra únicamente el ID y la contraseña cifrada en el inventario del DC.
La contraseña no se imprime, no se pone en el manifiesto y no se añade a los
logs. El inventario del servidor usa DPAPI de la máquina y está limitado por ACL
a `SYSTEM` y administradores del servidor.
El mismo flujo se aplica al DC, por lo que también se puede administrar de forma
remota. Reejecutar el bootstrap mantiene el ID y la contraseña existentes, y
vuelve a validar configuración, tareas, servicio y conectividad sin crear otro
registro.
## Verificación y operación
En el DC, como administrador:
```powershell
Get-ScheduledTask SGU-RustDesk-hbbs,SGU-RustDesk-hbbr |
Select-Object TaskName,State
Get-NetTCPConnection -State Listen -LocalPort 21116,21117
Get-Content C:\ProgramData\SGU\RustDesk\server.json
& C:\ProgramData\SGU\RustDesk\Get-SguRustDeskDevice.ps1
```
El último comando muestra los nombres, IDs y fecha de alta, sin contraseñas. Si
un administrador necesita recuperar una contraseña para conectarse desde el
cliente controlador de RustDesk, puede hacerlo explícitamente en la consola del
DC:
```powershell
& C:\ProgramData\SGU\RustDesk\Get-SguRustDeskDevice.ps1 `
-ComputerName LCI-01 -RevealPassword
```
Trata esa salida como una credencial administrativa: no la pegues en tickets,
capturas ni registros. En RustDesk, conecta usando el ID inventariado y el modo
de autenticación por contraseña permanente.
En un cliente, los indicadores locales son:
```powershell
Get-Service RustDesk
Get-Content C:\ProgramData\SGU\RustDesk\Client\device.json
Test-NetConnection rustdesk.lci.lasalle.mx -Port 21116
```
Si un agente deja de funcionar, se puede repetir el bootstrap del cliente. El
guardián de enrolamiento también repara la configuración de RustDesk al inicio
cuando la información del servidor sigue presente en su estado de enrolamiento.
## Límites operativos
Este alcance automatiza el cliente Windows entregado por
`Invoke-SguClientBootstrap.ps1`. El bootstrap Linux conserva su inicio PAM/SSSD
independiente y usa un flujo propio de inventario: autentica con la cuenta de
equipo Kerberos, cifra la contraseña de RustDesk para el controlador y recibe
su confirmación desde la cola protegida. No reutiliza ni expone contraseñas de
Windows.