123 lines
6.5 KiB
Markdown
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).
|