Demo de Dynamic Access Control 2 de 2.
Hola.
Lo prometido es deuda y en esta entrada os voy a recopilar los pasos de la demo de Dynamic Access Control.
El propósito de la demo es permitir acceso solo a usuarios del grupo administradores a documentos que contengan una cadena de números que coincide con el formato de una tarjeta de crédito (Ejemplo: 0000-0000-0000-0000) almacenados en una carpeta compartida, aunque podríamos generalizarlo de forma fácil a todas las carpetas del dominio, por ejemplo.
Para que veáis la potencia de DAC, esta demo se podría extender a por ejemplo, permitir acceso a estos documentos, solo a usuarios los cuales, tengan en el campo departamento en el AD, el texto “Financieros”.
Vamos allá. La demo continua tras la creación de un Share:
Como requisito previo necesitamos:
Activación File Server Resource manager
Comprobar que tenemos acceso a Active Directory Administrative Center
No es imprescindible para esta demo, pero si la política que vamos a crear queremos que se aplique a todas las share, solo tenemos que marcar que Dynamic Access control se aplique en esta share.
Entramos en materia. Para hacerlo fácil, he recopilado algún script de powershell por la red, que he modificado debidamente para adaptarlo a mis pretensiones. Estos comandos lanzarán la creación de políticas y configuración en general que iremos revisando desde las consolas gráficas.
#file server resource manager
Set-ADResourceProperty PII_MS -Enabled $true
New-FsrmClassificationRule -Name ‘Tarjeta_credito’ -Namespace ‘c:\share’ -ClassificationMechanism ‘Content Classifier’ -Property PII_MS -PropertyValue 5000 –ContentRegularExpression ‘\b(?:\d[ -]*?){13,20}\b’ -ReevaluateProperty Overwrite
$schedule = New-FsrmScheduledTask -Time ’00:00′ –Weekly @(‘Sunday’,’Monday’,’Tuesday’,’Wednesday’,’Thursday’,’Friday’,’Saturday’)
Set-FsrmClassification -Schedule $schedule –Continuous
A ver…. en el comando anterior, creo una política a aplicar en principio sobre la carpeta c:\share que da valor 5000 (luego veremos qué es esto) a cualquier documento que contenga un texto “ \b(?:\d[ -]*?){13,20}\b’ de entre 13 y 20 caracteres, separado por guiones y esto se ha de aplicar 24 horas por día, 7 días por semana.
El resulta es la creación de una clasificación 5000 = High.
“High” según lo que vemos en Classification Rules, serán documentos que tengan la cadena que hemos visto antes ‘\b(?:\d[ -]*?){13,20}\b’.
Según el siguiente comando crearemos una regla y una política (politíca no es más que la agrupación de una o más reglas) que veréis en AD Administravie Center.
#Active directory administrative center
$condition = ‘(@RESOURCE.PII_MS >= 3000)’
$acl = ‘O:SYG:SYD:(A;;FA;;;OW)(A;;FA;;;BA)(A;;FA;;;SY)’
New-ADCentralAccessRule -Name ‘Regla PII’ -ResourceCondition $condition -CurrentAcl $acl
New-ADCentralAccessPolicy -Name ‘Politica de acceso restringido a inf’
Add-ADCentralAccessPolicyMember -Identity ‘Politica de acceso restringido a inf‘ -Members ‘Regla PII’
El fundamento de esto en resumen es: Vamos a tener una capa sobre los permisos efectivos de siempre, o sea, los que configuramos en la pestaña de seguridad de cualquier carpeta. Esta capa, tendrá unos permisos que sustituirán a los anteriores si las condiciones se cumplen.
Y lo que hemos hecho y visto en estas tres capturas anteriores, es que documentos con calificación HIGH, en realidad, con calificación mayor de 3000, tienen unos permisos que solo ofrecen acceso de lectura al grupo Administradores y lo importante es que no ofrecen permisos de lectura al grupo Domain Users. (aquí es donde podéis llegar a ofrecer solo acceso a usuarios con el texto “Financieros” en el campo departamento del AD, por ejemplo.
Tras ello, debemos crear dos GPOS, una aplicada a Domain controllers y otra a todos los equipos y servidores del dominio. En estas políticas lo importante es esto: Kerberos client support for claims, compound authentication and Kerberos armoring – Enabled y también propagar las política de DAC que hemos llamado ‘Politica de acceso restringido a inf‘.
Cómo esto es una entrada que requiere un grado medio alto de conocimiento en administración de Windows Server, os cuelgo las pantallas y sé que sabéis llegar solitos a las rutas .
En mi caso, voy a provocar el forzado de políticas en el equipo que opero y a un equipo remoto que se llama nodo1 desde donde el usuario tratará de abrir el documento.
Gpupdate /force
invoke-command -computername nodo1 -scriptblock { Gpupdate /force }
Aplicamos la política de DAC a la carpeta c:\share
Ahora vemos como un documento almacenado en Share y con un texto cualquiera, obtiene calificación NONE (se podría dar calificación HIGH manualmente incluso y con esto, a este documento no podrían acceder los usuarios).
Ahora vemos que tras añadir un texto que cumple con la cadena que buscamos, el documento adquiere calificación HIGH y en consecuencia, valoración 5.000 que es mayor de 3.000 (ya sé que es una obviedad pero ya sabéis por qué lo digo ).
Al tiempo, comprobamos que un usuario administrador puede abrir perfectamente el documento.
Ahora iniciamos sesión en otro equipo con el usuario “usuario”.
Vemos que este usuario no tiene permitido la apertura del documento.
Esto es viejo, pero si explotamos la opción “Enable access-based enumeration”, el usuario que no tiene permiso, no ve el documento.
Veis, funciona. Curiosamente solo no me funcionó en el webcast, cosas del directo.