Automate direct domain enrollment across Windows versions

This commit is contained in:
2026-09-11 17:34:19 -06:00
parent 7f8a9eed4e
commit 520b4be955
23 changed files with 1244 additions and 108 deletions
+72 -26
View File
@@ -1,24 +1,27 @@
# Active Directory SGU en Azure con VPN Point-to-Site
# Active Directory SGU en Azure: VPN opcional o enrolamiento directo
Esta variante conserva Active Directory en una VM Windows Server 2025 con IP
pública de Azure, pero **no publica Active Directory en Internet**. La IP pública
sirve para el ciclo de vida y, opcionalmente, RDP desde un único CIDR
administrativo. DNS, Kerberos, LDAP, SMB, RPC, WinRM, Auth Broker, monitoreo y
RustDesk viajan por Azure VPN Gateway Point-to-Site (P2S).
La misma plantilla despliega Active Directory en Windows Server 2025 y permite
elegir entre Azure VPN Gateway Point-to-Site (P2S) o acceso público directo. El
modo directo restringe AD, WinRM, Auth Broker y RustDesk a los CIDR públicos
indicados; el cliente configura DoH y la resolución del dominio automáticamente.
La lista pública vacía no expone esos servicios.
La plantilla crea:
- VNet `10.77.0.0/16`, subnet del DC `10.77.0.0/24` y `GatewaySubnet`;
- VNet `10.77.0.0/16`, subnet del DC `10.77.0.0/24` y, si se solicita, `GatewaySubnet`;
- Windows Server 2025 con IP privada estática `10.77.0.4` reservada en la NIC;
- IP pública Standard para la VM, protegida por NSG;
- VPN Gateway `VpnGw1` con IKEv2/SSTP y autenticación por certificados;
- VPN Gateway opcional `VpnGw1AZ` con IKEv2/OpenVPN y autenticación por certificados;
- pool P2S `172.30.0.0/24`, autorizado en los firewalls SGU;
- DNS de la NIC del servidor apuntando a `10.77.0.4`.
Los prefijos son parámetros. Deben ser RFC1918 y no deben solaparse con las
redes usadas por Hyper-V, el `Default Switch`, Wi-Fi o Ethernet locales.
Los prefijos privados deben ser RFC1918 y no deben solaparse con las redes usadas
por Hyper-V, el `Default Switch`, Wi-Fi o Ethernet locales. Los prefijos de
enrolamiento directo deben ser CIDR IPv4 públicos explícitos.
## 1. Crear la autoridad P2S y el certificado de administración
## 1. Elegir el modo de conectividad
Para P2S, crear la autoridad y el certificado de cada cliente:
En la estación administrativa donde está el repositorio:
@@ -33,6 +36,10 @@ el `.cer` público. El PFX es una credencial de acceso a la VNet: se debe copiar
únicamente a la VM correspondiente y eliminarse de ubicaciones compartidas
después de importarlo.
Para acceso directo no se necesita certificado P2S. Se necesita conocer el
segmento público de salida del laboratorio; por ejemplo, la IP
`200.13.89.183` pertenece a `200.13.89.0/24`.
## 2. Desplegar Azure
Requisitos: Azure CLI, una sesión iniciada con `az login`, permisos para crear
@@ -47,6 +54,19 @@ $azure = .\scripts\Deploy-SguAzureInfrastructure.ps1 `
-P2sRootCertificatePath $p2s.RootCertificatePath
```
Sin VPN y autorizando un laboratorio completo:
```powershell
$azure = .\scripts\Deploy-SguAzureInfrastructure.ps1 `
-SubscriptionId '00000000-0000-0000-0000-000000000000' `
-ResourceGroupName 'rg-sgu-lab' `
-Location 'centralus' `
-AdministratorUsername 'azureadmin' `
-DeployVpnGateway $false `
-PublicEnrollmentSourceAddressPrefixes '200.13.89.0/24' `
-AdministratorSourceAddressPrefix '200.13.89.0/24'
```
La contraseña local de la VM se solicita como `SecureString`, se coloca sólo en
un archivo temporal con ACL exclusiva para el usuario actual y se elimina al
terminar. No aparece en los argumentos de Azure CLI ni queda guardada en el
@@ -61,9 +81,10 @@ pública actual:
```
No utilice `0.0.0.0/0`. El despliegue de un VPN Gateway suele tardar bastante
más que la VM; el comando espera hasta que Azure entregue un resultado final.
más que la VM; omitirlo reduce tiempo y costo. El comando espera hasta que Azure
entregue un resultado final.
## 3. Descargar P2S y entrar por la IP privada
## 3. Conectarse al servidor
Cuando el gateway esté `Succeeded`:
@@ -85,8 +106,11 @@ una unidad local para copiar `sgu-server-bootstrap-VERSION.zip` a la VM. La NIC
ya apunta a su futura dirección DNS propia, por lo que la resolución pública no
está disponible hasta que el bootstrap instale DNS y sus reenviadores. Así no es
necesario abrir 3389 en la IP pública. La opción
`AdministratorSourceAddressPrefix` queda como ruta de recuperación temporal,
no como el camino normal.
`AdministratorSourceAddressPrefix` queda como ruta de recuperación temporal.
En modo directo, use RDP contra `$azure.DomainControllerPublicIp` desde un origen
incluido en `AdministratorSourceAddressPrefix`. RDP y enrolamiento tienen listas
separadas para poder retirar RDP sin interrumpir los clientes.
## 4. Ejecutar el bootstrap dentro de Windows Server
@@ -110,9 +134,10 @@ Resolve-DnsName _ldap._tcp.dc._msdcs.lci.lasalle.mx -Type SRV -Server 10.77.0.4
```
El JSON debe indicar `NetworkConfigurationMode = PlatformManaged`, el pool P2S
en `TrustedClientNetworks` y ambos prefijos en `AllowedRemoteAddresses`.
en `TrustedClientNetworks` cuando exista VPN y los CIDR directos en
`PublicEnrollmentNetworks` cuando se hayan habilitado.
## 5. Emitir un certificado y enrolar cada VM Hyper-V
## 5. Enrolar cada VM Hyper-V
En la estación administrativa, emita una credencial distinta por equipo:
@@ -144,9 +169,28 @@ En una sola ejecución el comando:
5. registra mTLS, instala SGU/RustDesk y une el equipo al dominio;
6. reinicia Windows.
Si la red local bloquea IKEv2 (UDP 500/4500), el paquete de Azure también
incluye un perfil SSTP sobre TCP 443, pero ese fallback todavía requiere
instalación manual con el instalador oficial incluido en `WindowsAmd64`.
Para el modo directo, cada Windows 10/11 usa el lanzador normal y la IP pública;
no necesita perfil ni certificado VPN:
```bat
Start-SguClientEnrollment.cmd 20.9.81.130
```
El bootstrap pide la cuenta de dominio, prueba todas las interfaces con ruta,
descubre el bosque por WinRM, instala el certificado público DoH, configura NRPT
y los nombres del DC/broker, registra mTLS y une la máquina. No pide una IP del
cliente ni una interfaz.
Si la red local bloquea IKEv2 (UDP 500/4500), se puede generar un perfil
OpenVPN sobre TCP 443 para Azure VPN Client. Ese fallback requiere instalar
y configurar el cliente correspondiente; el bootstrap instala el perfil nativo
IKEv2. Azure ya no admite SSTP al crear este gateway.
La prueba real con `Windows11-002` y un bosque en Azure está documentada en
[la validación del despliegue del 10 de septiembre de 2026](azure-deployment-validation-2026-09-10.md).
Incluye un device tunnel para Enterprise y recuperación de Netlogon cuando el
túnel tarda en estar disponible al arrancar. Son configuraciones adicionales
aplicadas a esa VM; el instalador publicado crea el perfil manual anterior.
Windows 10/11 Pro admite unión a AD y VPN nativa, pero Microsoft no licencia el
**Always On VPN device tunnel** para Pro. Por ello el perfil se instala para
@@ -155,21 +199,23 @@ pantalla de inicio de sesión; antes del primer logon de una cuenta de dominio,
conecte `SGU Azure P2S` allí. Enterprise/Education pueden recibir posteriormente
un device tunnel Always On, pero eso no es requisito del enrolamiento SGU.
Validación dentro del cliente, con la VPN conectada:
Validación dentro del cliente, con la VPN conectada o usando el acceso directo:
```powershell
Get-VpnConnection -Name 'SGU Azure P2S' -AllUserConnection
Get-DnsClientNrptRule | Where-Object DisplayName -like 'SGU Azure P2S*'
Test-NetConnection 10.77.0.4 -Port 5985
Test-NetConnection 20.9.81.130 -Port 5985
Resolve-DnsName _ldap._tcp.dc._msdcs.lci.lasalle.mx -Type SRV
nltest.exe /dsgetdc:lci.lasalle.mx
```
## Seguridad y referencias
## Alcance de red y referencias
No agregue reglas NSG públicas para 53, 88, 135, 389, 445, 464, 636, 3268,
3269 ni RPC dinámico. El conjunto de puertos necesario para una unión de dominio
es precisamente la razón de encapsularlo en P2S.
P2S mantiene los puertos de AD dentro del túnel. El modo directo abre el conjunto
necesario para la unión sólo desde `publicEnrollmentSourceAddressPrefixes` y
replica la misma lista en Windows Firewall mediante `PublicEnrollmentNetworks`.
Prefiera `/32` si la salida es estable; use `/24` únicamente cuando deba admitir
todo el segmento. Retire el CIDR cuando termine la prueba si ya no se requiere.
- [Azure VPN Gateway P2S con certificados](https://learn.microsoft.com/en-us/azure/vpn-gateway/point-to-site-certificate-gateway)
- [Cliente P2S nativo de Windows](https://learn.microsoft.com/en-us/azure/vpn-gateway/point-to-site-vpn-client-certificate)