Los grupos protegidos del directorio activo.
Comprendiendo el funcionamiento de los grupos protegidos del directorio Activo. Como son y como funcionan: Propagador SD, FixUpInheritance, AdminSDHolder, SDPRO, AdminSDProtectFrequency, Problemas con la delegación de privilegios en Active Directory
Si has llegado hasta este artículo, probablemente tengas algún tipo de noción de directorio activo, y es probable que, lo que aquí contemos, lo sepas o por lo menos lo intuyas.
Tras varios años dando soporte a infraestructuras de directorio activo, han aparecido en varias ocasiones problemas relacionados con los grupos protegidos. Por lo tanto, la pregunta, a priori, es muy sencilla… ¿Porqué se elimina lo que configuro en las ACL’s de ciertos objetos del directorio, si he asignado que reciban los privilegios por herencia? según aclaremos conceptos iremos complicando el escenario para entender el alcance de todos estos conceptos y como se combinan unos con otros.
¿Qué son los grupos protegidos del directorio activo?
Los grupos protegidos del directorio activo son aquellos grupos sensibles de tener delegados ciertos privilegios especiales, y por tanto sus miembros no están sujetos a las mismas normas que otros usuarios. Mas adelante veremos el detalle de cuales son
¿Qué efectos tiene la membresía a grupos protegidos del directorio activo?
Cuando un objeto del AD pertenece a un grupo protegido, este objeto recibirá cada vez que ocurra una propagación SD (por defecto cada 60 minutos) la herencia de las entradas ACL’s de seguridad explícitamente indicadas en la ACL de AdminSDHolder
Clarito, verdad? Volvamos hacia atrás.
¿Qué es una propagación SD, SD Propagador?
Es un proceso automático, que por defecto se ejecuta cada 60 minutos. Es un proceso ejecutado en la sombra del directorio activo, iniciado por el emulador de PDC, aquel domain controler con el ROL FSMO Primary Domain Controller, que se encarga de implementar la protección de los grupos administrativos. Esto que puede sonar a chino es mas sencillo de lo que parece, es un proceso que lee la ACL de AdminSDHolder y la replica en aquellos objetos que considere que cumplan ciertos criterios. ¿Qué criterios? La pertenencia a grupos protegidos. ¿Qué grupos protegidos?
En la lista siguiente se describen los grupos protegidos de Windows 2000:
• Administradores de organización
• Administradores de esquema
• Administradores de dominio
• Los administradores
En la lista siguiente se describen los grupos protegidos en Windows Server 2003 y en Windows 2000 una vez que aplique la revisión 327825 o instalar el Service Pack 4 de Windows 2000:
• Los administradores
• Operadores de cuentas
• Operadores de servidores
• Operadores de impresión
• Operadores de copia de seguridad
• Administradores de dominio
• Administradores de esquema
• Administradores de organización
• Editores de certificados
Además los siguientes usuarios también se consideran protegidos:
• Administrador
• Krbtgt
Por lo tanto, si el objeto es miembro de algun grupo protegido, el efecto que recibirá cuando se ejecute el SDProp será que recibirá una herencia forzada en su ACL con el contenido incluido en la ACL del AdminSDHolder. Además, de regalo se desactiva la casilla de recibir la seguridad por herencia, y se actualiza la propiedad “AdminCount” del objeto a 1, tenga el valor que tenga
¿Qué es AdminSDHolder?
En el KB232199 aparece la descripción de AdminSDHolder, pero quizas sea mas facil entender para que vale. AdminSDHolder es un objeto del AD que alberga el diseño de seguridad que se aplica a todos los “principales de seguridad” o “security Principals”, a través del proceso SDProp.
Como lo mas sencillo es verlo, abrid una consola ADUC (Dsa.msc) y en “View” habilitais “Advanced Features” (En español creo que es Vista y Opciones avanzadas)
Esto os mostrará en vuestro directorio “system” y dentro de System, AdminSDHolder. Si pulsais propiedades y os vais a la ACL, allí estará toda la definición de seguridad que se aplicará a los securityprincipals, y por tanto a todos los miembros de grupos protegidos.
Una vez aclarados estos conceptos, veremos que efectos negativos producen en aquellos usuarios miembros de grupos protegidos.
El resultado de una ejecución de SDProp es que la ACL de los miembros de grupos protegidos se elimina completamente y se sustituye por aquella que aparece definida en el AdminSDHolder. Esto tiene sus implicaciones en varias áreas, por ejemplo:
Delegando permisos : Cuando haces una delegación, utilizando el mecanismo que estimes oportuno e independientemente de lo que estes tratando de delegar, si hay miembros de estos grupos, la delegación NO funcionará. Bueno, para ser fieles a la verdad, funcionará un rato. Concretamente hasta que se ejecute el SDProp.
Usuario que puede recibir pero no puede enviar a través de BlackBerry: Cuando se instala un servidor de blackberry, la cuenta que se utiliza para envio de correos tiene el privilegio de enviar en nombre del usuario de la blackberry. Este privilegio lo recibe por herencia y por tanto es otro mecanismo de delegación. La casuistica es la misma que la anterior, al impedir recibir el “Send As” permitido a la cuenta de BlackBerry.
Básicamente, cualquier necesidad que incluya modificar o añadir una entrada en las ACL’s de seguridad del usuario fallará en cuanto se ejecute el proceso SDProp, al forzar el contenido de la ACL con aquel definidio en el AdminSDHolder.
¿Cómo ejecutamos manualmente el SDProp?
El artículo KB251343 explica como ejecutarlo con mas detalle. A modo resumen, utilizando LDP para conectarse al PDC y agregando para su ejecución la operación de AD FixUpInheritance. (al final debe quedar la operación así:
[Add]fixupinheritance:yes
¿Cómo monitorizo su ejecución?
Si abres una consola de monitorización de performance y contadores (perfmon.msc) y añades el objeto “NTDS” al completo, verás una propiedad:
DS Security Propagation Events
Cuando el SDProp está en ejecución, este contador se activa a 1. Cuando ha finalizado, el contador se pone a 0.
Aún cuando hemos eliminado un miembro de un grupo protegido, si ya se ha ejecutado una vez el SDProp, seguirá siendo susceptible de seguir heredando el contenido de la ACL del adminsdholder. ¿Por qué? Hay una propiedad de cada objeto que se llama AdminCount. Esta propiedad normalmente no está fijada (<not set>) pero cuando SDProp se ejecuta y detecta un usuario de un grupo protegido, habilita esta propiedad a 1.
Cuando eliminamos un usuario de un grupo protegido, necesitaremos utilizar ADSIEdit.msc para eliminar el contenido de esta propiedad, ya que si no lo hacemos SDProp continuará machacando la información de su ACL.
Si queremos fijar la frecuencia de ejecución del SDProp, podemos hacerlo con el valor de registro AdminSDProtectFrequency en la rama:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
Es un valor que si no está presente vale 60 minutos (3600 segundos) y que se puede crear de tipo dword para definirlo.
Todos estos conceptos son bastante complejos, y te instamos a que manejes esta información con cuidado, ya que puedes comprometer la seguridad de todo tu directorio. La información se facilita tal cual, sin responsabilidad algúna, por lo que actua con cuidado cuando estes tratando con directorios en producción.
Espero que toda esta información te sea de utilidad, y si necesitas ampliar algún concepto, dejanos un comentario y te responderemos a la mayor brevedad.