Files
SGU-CredentialProvider/docs/linux-client-enrollment.md
T

123 lines
6.5 KiB
Markdown

# Enrolamiento de clientes Linux
El enrolador Linux incorpora una estación Debian/Ubuntu o RHEL/Fedora/Rocky/AlmaLinux a `lci.lasalle.mx` mediante `realmd`, `adcli`, Kerberos y SSSD. No instala el Credential Provider de Windows: Linux conserva su propio inicio de sesión PAM/SSSD. También instala RustDesk, lo dirige al servidor RustDesk autoalojado y registra el ID y la contraseña de acceso desatendido en el inventario protegido del controlador de dominio.
La contraseña de la cuenta autorizada para unir equipos se solicita directamente por `realmd`. Nunca se acepta como argumento, ni se escribe en archivos, registros o la línea de comandos.
## Requisitos de red
El equipo debe alcanzar por una interfaz privada al controlador de dominio, DNS y Kerberos. En el laboratorio:
| Servicio | Destino |
| --- | --- |
| Controlador y DNS | `192.168.50.10` |
| Dominio | `lci.lasalle.mx` |
| OU de equipos | `OU=Laboratorio,DC=lci,DC=lasalle,DC=mx` |
Para una VM Hyper-V con dos NIC, mantén el Internet en `Default Switch` y conecta una segunda NIC a `Laboratorio AD`. El enrolador puede configurar la segunda NIC sin modificar la ruta predeterminada:
```bash
sudo bash ./Enroll-SguLinuxDomainClient.sh \
--domain-controller 192.168.50.10 \
--domain-interface eth0 \
--domain-address 192.168.50.12/24 \
--enable-ssh \
--enable-hyperv-enhanced-session
```
`--domain-interface` y `--domain-address` son opcionales como pareja. Si ya se aprovisionó la red privada mediante cloud-init, DHCP o gestión de configuración, omítelos y conserva únicamente `--domain-controller`.
El script se niega a reconfigurar una interfaz que posea la ruta predeterminada; así no deja a la máquina sin salida a Internet al agregar AD.
En Ubuntu con GNOME, cierra la sesión gráfica de **Sesión básica** antes de
entrar con el mismo usuario mediante **Sesión mejorada**. GNOME no admite dos
escritorios simultáneos del mismo usuario; intentar conservar ambos produce una
pantalla negra aunque XRDP haya autenticado correctamente. El inicio automático
de sesión de GDM también debe permanecer deshabilitado.
## Qué instala y configura
1. Instala `realmd`, `adcli`, SSSD, Kerberos y los módulos NSS/PAM adecuados para la familia de distribución.
2. Comprueba el registro DNS SRV de Active Directory y sincronización de hora ya existente.
3. Establece el nombre de host `NOMBRE.lci.lasalle.mx` antes de crear la cuenta de equipo.
4. Une el equipo con `adcli` en `OU=Laboratorio`.
5. Activa SSSD, creación de directorio personal mediante PAM y valida la contraseña de la cuenta de equipo con `adcli testjoin`. En distribuciones que habilitan los respondedores NSS/PAM de SSSD tanto en `sssd.conf` como mediante sockets de systemd, desactiva los sockets duplicados para evitar una colisión al arrancar.
6. Cuando se proporcionó la NIC privada, activa actualizaciones DNS dinámicas de SSSD en esa interfaz.
7. Con `--enable-ssh`, instala y habilita OpenSSH y abre únicamente el servicio SSH cuando el firewall local ya está activo.
8. Registra `lightdm` y `cinnamon-screensaver` como inicios interactivos ante las políticas GPO de SSSD. En equipos con LightDM oculta la lista de cuentas y conserva únicamente el ingreso manual: usuario y contraseña, necesario para el primer acceso de un usuario del dominio.
9. Con `--enable-hyperv-enhanced-session`, configura XRDP sobre Hyper-V sockets para que VMConnect pueda usar **Sesión mejorada**, repara certificados incompletos, registra `xrdp-sesman` en el mismo mapa interactivo y valida ambos servicios XRDP.
10. Instala el fondo azul, las fuentes Indivisa y un autoinicio compatible con Cinnamon, GNOME y XFCE. En cada sesión gráfica genera el saludo con el nombre del usuario y la ubicación/OU del equipo obtenidas de AD.
11. Instala RustDesk 1.4.9 desde el paquete oficial comprobado, configura exclusivamente el servidor institucional y crea una contraseña aleatoria de acceso desatendido. La contraseña no se muestra en Linux: viaja cifrada con la clave pública del controlador y éste la conserva mediante su inventario protegido.
El objeto de equipo aparece como `NOMBRE` en `OU=Laboratorio`. SSSD registra su registro A cuando la actualización DNS dinámica está activada.
## Inicio de sesión de dominio
Después de la unión se acepta directamente la clave institucional corta:
```text
al201428
```
El formato UPN explícito también permanece disponible:
```text
usuario@lci.lasalle.mx
```
En Linux Mint aparece únicamente el ingreso manual. Escribe la clave corta y
su contraseña; no se muestra una lista ni mosaicos de cuentas locales o del
dominio.
La primera sesión crea `/home/usuario@lci.lasalle.mx`. El valor predeterminado de SSSD conserva credenciales para desconexiones breves de la red; las contraseñas no son administradas ni almacenadas por el Auth Broker.
Para limitar quién puede iniciar sesión, incluye un grupo de AD:
```bash
sudo bash ./Enroll-SguLinuxDomainClient.sh \
--domain-controller 192.168.50.10 \
--allow-group 'SG-Laboratorio-Linux-Users'
```
Ese modo ejecuta `realm deny --all` seguido de `realm permit --groups`; crea y administra el grupo antes de usarlo.
## Verificación y salida controlada
```bash
realm list
sudo adcli testjoin --domain=lci.lasalle.mx
getent passwd 'usuario@lci.lasalle.mx'
sudo sssctl domain-status lci.lasalle.mx
sudo sssctl user-checks usuario -a acct -s lightdm
sudo sssctl user-checks usuario -a acct -s cinnamon-screensaver
systemctl is-active rustdesk
sudo cat /var/lib/sgu/rustdesk/device.json
```
En el controlador de dominio, el mismo inventario protegido usado por Windows
muestra el ID de un cliente Linux y, únicamente bajo solicitud explícita de un
administrador, su contraseña de RustDesk:
```powershell
& C:\ProgramData\SGU\RustDesk\Get-SguRustDeskDevice.ps1
& C:\ProgramData\SGU\RustDesk\Get-SguRustDeskDevice.ps1 `
-ComputerName ALEX-LMINT -RevealPassword
```
Usa `--disable-rustdesk` sólo cuando una estación deba quedar expresamente sin
soporte remoto. `--rustdesk-registration-share` permite especificar el UNC del
controlador cuando una topología de DNS no puede resolver automáticamente el
controlador de dominio.
Para sacar un equipo del dominio de forma explícita:
```bash
sudo realm leave lci.lasalle.mx
```
Esta última acción elimina la relación de confianza local; debe ejecutarse sólo durante baja o reconstrucción del equipo.
La personalización gráfica es deliberadamente opcional: si ImageMagick, LDAP o
la API del escritorio fallan, no revierte la unión ni impide iniciar sesión. Consulta
los detalles y las reglas de degradación en [welcome-wallpaper.md](welcome-wallpaper.md).