TT ASO RedWindows
TT ASO RedWindows
TT ASO RedWindows
WINDOWS:
ACTIVE
DIRECTORY
David Pérez Martínez
Omar Montenegro Macía
Abel González Vázquez
Índice
1. CÓMO SE ALMACENAN E IDENTIFICAN LOS OBJETOS:
a. GUID
b. Nombres distinguidos
c. Tipos de atributos
2. DOMINIOS
a. Múltiples dominios en una organización
b. Árbol de dominios
c. Bosque de dominios
3. NIVELES FUNCIONALES
4. SERVIDOR DE CATÁLOGO GLOBAL
5. FSMO ROLES
a. FSMO ROLES a nivel de bosque
b. FSMO ROLES a nivel de dominio
6. REPLICACIÓN
a. ¿Cómo funciona la replicación?
b. Replicación Intransite
c. Replicación Intersite
7. ACTIVE DIRECTORY SCHEMA
a. ESTRUCTURA DEL ESQUEMA DE ACTIVE DIRECTORY
b. X.500 OID NAMESPACE
c. CLASES DEL ESQUEMA (classSchema Objects)
d. CREACIÓN DE INSTANCIAS EN UN BOSQUE
e. ATRIBUTOS EN EL ESQUEMA (attributeSchema Objects)
i. SINTAXIS DE UN ATRIBUTO
ii. ATRIBUTOS ENLAZADOS (LINKED ATTRIBUTES)
iii. SYSTEMFLAGS
iv. SEARCHFLAGS
v. PROPERTY SETS
vi. MAPI ID
f. EXTENDER EL ESQUEMA
8. Infraestructura de red en Active Directory:
a. Domain Name Service (DNS)
i. Zonas DNS
ii. Integración de DNS en AD
b. Dynamic Host Configuration Protocol (DHCP)
c. IP Adress Management (IPAM)
9. Seguridad en Active Directory
a. Políticas de grupo
i. Donde se almacenan?
ii. Como se filtran?
b. ACLs
c. Autenticación
i. NTLM
ii. Kerberos
iii. LDAP
10. Bibliografía.
CÓMO SE ALMACENAN E IDENTIFICAN LOS
OBJETOS:
Active Directory (AD) es un servicio de directorio para su uso en un entorno Windows
Server. Se trata de una estructura de base de datos distribuida y jerárquica que comparte
información de infraestructura para localizar, proteger, administrar y organizar los recursos
del equipo y de la red, como archivos, usuarios, grupos, periféricos y dispositivos de red.
GUID
Para poder identificar de forma única los objetos en Active Directory, Microsoft utiliza un
identificador único global o GUID de 128 bits. Debe tener en cuenta que, si mueve un objeto
en su árbol AD, o incluso si cambia el nombre del objeto dentro de Active Directory, este
GUID permanece sin cambios. Hay una excepción importante a esto, y sería un movimiento a
través de un bosque a otro bosque utilizando algo como la Herramienta de migración de
Active Directory (ADMT). Esta situación no conserva el GUID.
Nombres distinguidos
Los humanos ciertamente no vamos a trabajar con GUID para identificar objetos en
AD. Afortunadamente, existe otro método de identificación llamado nombres distinguidos
(DN).
Tipos de atributos
Aquí hay una lista de estos tipos de atributos:
CN = Nombre común
L = Nombre de la localidad
ST = Nombre del estado o provincia
O = Nombre de la organización
OU = Nombre de la unidad organizativa
C = Nombre del país
CALLE = Dirección de la calle
DC = componente de dominio
UID = ID de usuario
pág. 1
DOMINIOS
Tanto el Active Directory como DNS establecen espacios de nombres. Podemos entender un
espacio de nombres como un área delimitada en la cual un nombre puede ser resuelto. La
resolución de nombres es el proceso de traducción de un nombre en un objeto o información
que lo representa. Por ejemplo, el sistema de ficheros NTFS puede ser considerado un
espacio de nombres en cual un nombre de fichero puede ser resuelto en el fichero
propiamente dicho.
Por otro lado, cada ordenador basado en Windows Server que forma parte de un dominio
tiene un nombre DNS cuyo sufijo es precisamente el nombre DNS de dicho dominio
(siguiendo con el ejemplo, un ordenador de dicho dominio podría denominarse
pc0100.miempresa.com). De esta forma, los dominios y ordenadores que se representan
como objetos en Active Directory, son también nodos en DNS. Por tanto, resulta fácil
confundir ambos espacios de nombres, ya que comparten idénticos nombres de dominio. La
diferencia es que, aunque comparten la misma estructura, almacenan información diferente:
DNS almacena zonas y registros de recursos y el Directorio Activo almacena dominios y
objetos de dominio.
Resolución de nombres
Definición del espacio de nombres
Búsqueda de los componentes físicos de AD
Se hablará con algo más de profundidad sobre el protocolo DNS en puntos posteriores de
este pdf.
Delimitar la seguridad
Replicar información
Aplicar Políticas (o Directivas) de Grupo
Delegar permisos administrativos
pág. 2
La estructura de dominios de una organización se basa en los nombres de sus dominios.
Puesto que, en Windows Server, estos nombres se basan en el estándar DNS, los dominios se
crean en una estructura de árbol invertida, con la raíz en la parte superior. Sin embargo,
aunque la estructura se basa en los nombres, la vinculación entre dominios se establece
explícitamente mediante las denominadas relaciones de confianza, que se describen más
adelante.
Árbol de dominios
Un árbol es un conjunto de uno o más dominios dentro de un bosque que comparten un
espacio de nombres contiguo, es decir, comparten un sufijo de DNS común. Como hemos
dicho, si en una organización existe más de un dominio, estos se disponen en una o varias
estructuras de árbol jerárquicas.
El primer dominio que se crea en una organización es el dominio raíz del bosque, y crea el
propio bosque y el primer árbol de este. Cuando se agrega un dominio a un árbol existente,
éste pasa a ser un dominio secundario (o hijo) de alguno de los dominios existentes, que pasa
a ser su dominio padre. Los dominios secundarios pueden representar entidades geográficas
(Valencia, Madrid, Barcelona), entidades administrativas dentro de la organización
(departamento de ventas, departamento de desarrollo ...), u otras delimitaciones específicas de
una organización, según sus necesidades.
Bosque de dominios
pág. 3
Un bosque se define como un grupo de árboles que no comparten un espacio de nombres
contiguo, y que se conectan mediante relaciones de confianza bidireccionales y transitivas. A
efectos prácticos, se debe recordar que sea cual sea la cantidad y estructuración de dominios
de una organización, todos ellos constituyen un único bosque. Por lo tanto, aunque en la
organización exista un único dominio, o varios dominios en un único árbol, dicho dominio o
árbol constituyen por sí mismos el bosque de la organización. En un bosque, todos los
dominios comparten la misma configuración, el mismo esquema de directorio, y el mismo
catálogo global.
Añadir nuevos dominios a un bosque es fácil. Sin embargo, existen ciertas limitaciones que
hemos de tener en cuenta al respecto:
NIVELES FUNCIONALES
Un nivel funcional, que puede estar definido a nivel de dominio o de bosque, establece
simultáneamente una serie de características o funcionalidades disponibles en el
dominio/bosque y la posibilidad de ser compatible con una versión previa de Windows
Server a nivel de servidor (DC). Es decir, cuando situamos el nivel funcional del
pág. 4
dominio/bosque en un valor determinado, podemos tener en dicho dominio DCs de cualquier
versión de Windows Server que admita dicho nivel simultáneamente.
Si elevamos el nivel funcional, ampliamos las posibilidades del dominio/bosque, pero a costa
de no poder tener DCs de versiones previas de Windows que no sean compatibles con dicho
nivel funcional. Una vez elevado el nivel funcional de un dominio/bosque, no puede volver a
ponerse en el nivel previo. A efectos prácticos, podemos entender los niveles funcionales
como una forma razonable de actualizar los servidores (DCs) de los dominios de una
organización a una versión superior de Windows Server. Lo habitual es instalar un DC con la
versión nueva.
Un servidor de catálogo global es un controlador de dominio que almacena una copia del
catálogo y procesa las consultas al mismo. En cada bosque debe existir al menos un DC
configurado como servidor de catálogo global, y esta función puede incorporarse a cualquier
otro DC del bosque que se desee.
FSMO ROLES
Los Flexible Single Master Operations, conocidos como «FSMO roles» o también
«Operations Master Roles», no son roles como los que se instalan a través del Server
Manager en Windows Server. Son una serie de funciones de Active Directory para prevenir
conflictos de replicación.
Cambios como actualizar las propiedades de un objeto, cambiar la contraseña, etc. Se pueden
hacer desde cualquier DC de escritura. En este modelo los conflictos se resuelven dando
prioridad al último que haga el cambio. Si, por ejemplo, reseteamos la contraseña de un
usuario desde 2 DCs diferentes, el último que lo haga prevalece.
Sin embargo, hay ciertos cambios que son demasiado importantes y críticos en AD para que
se puedan hacer desde cualquier DC, y para evitar conflictos se recurre a un sistema Single-
Master. Estos cambios tan importantes son llevados a cabo por los FSMO roles, que no tienen
por qué estar en un mismo DC, pueden distribuirse entre varios DCs.
Existen 5 FSMO roles, 2 de ellos son a nivel de bosque, y 3 a nivel de dominio. En un bosque
sólo puede haber un Schema Master y un Domain Naming Master. Y por cada dominio del
bosque existirá un PDC Emulator, un RID Master y un Infrastructure Master.
pág. 5
FSMO roles a nivel de bosque:
Schema Master (Maestro de Esquema): El DC que tenga este rol es el único
autorizado para modificar el esquema de AD. Cualquier cambio en el esquema, no
importa desde que DC lo hagamos, siempre estará «conectado» al DC con el FSMO
rol de Schema Master. Y éste tiene que estar siempre online cuando actualicemos el
esquema.
Domain Naming Master (Maestro de Nombres de Dominio): Se encarga de autorizar
el alta o baja de dominios en el bosque, así como de mantener una lista actualizada de
todos los dominios existentes (para que, por ejemplo, no se dé el caso de intentar crear
dos dominios con el mismo nombre al mismo tiempo). También tiene la función de
añadir o eliminar particiones de aplicación en AD. Tiene que estar online cuando
añadimos o eliminamos dominios o particiones de aplicación.
pág. 6
S-1 : Especifica que la cadena es un SID y la versión de revisión actual
es 1.
5: Identifica a la autoridad (5 es para NT Authority, indica que es un
SID específico de Windows).
21: Indica que lo que viene a continuación es un Domain ID.
o DOMAIN ID: Es un identificador del dominio, todas las cuentas de usuario, grupo y
equipo de un mismo dominio comparten estos datos.
o RID: Es un número que se asigna de forma secuencial a partir del número 1000 a
cada nuevo objeto que se crea en el dominio. Para los objetos creados por defecto con
el sistema existen una serie de RIDs estándar: 500 para el administrador, 501 para el
usuario invitado, 502 para el Kerberos Key Distribution Center.
pág. 7
REPLICACIÓN
¿Cómo funciona la replicación?
Un Sitio (Site) es una o más redes IP, con conectividad permanente, confiable y con
suficiente ancho de banda disponible para la replicación. La replicación tiene distintos
objetivos en cada caso. Si no tenemos problemas de conectividad, el objetivo principal es que
un cambio que se produce en un Controlador de Dominio se replique en muy poco tiempo
en el resto de los Controladores de Dominio. En cambio, si tenemos posibles restricciones de
conectividad como puede suceder con enlaces WAN, el objetivo es diferente, como, por
ejemplo, controlar y disminuir dicho tráfico de replicación. Nos podemos encontrar con dos
escenarios diferentes, cuando tenemos a todos los DCs en el mismo Site (Replicación
Intrasite) y cuando tenemos los DCs en diferentes Sites (Replicación Intersite).
Replicación Intrasite:
En el anterior ejemplo tenemos un escenario con 3 DCs ubicados en el Site: A Coruña, los
cuales replican todos entre sí. El sentido de las flechas indica que hay dos procesos de
replicación distintos: en un sentido y en el otro (entrante y saliente), consiguiendo finalmente
una replicación bidireccional entre todos los DCs.
pág. 8
Con lo que vemos que la replicación tiene lugar entre pares de DCs
¿Quién crea estos conectores? Pues hay un proceso en AD llamado Knowledge Consistency
Checker (KCC) que se encarga de ello. Tiene como responsabilidad crear y mantener los
conectores de replicación ante posibles cambios en la topología de nuestra organización.
Cada par de DCs mantiene su propia conversación de replicación, la cual extrae información
de dos tablas de valores: «High-Watermark Vector» y «Up-To-Dateness Vector».
El Up-To-Dateness Vector (UTDV) es el valor USN más alto que un DC ha recibido de otro
DC cualquiera. Cada DC mantiene una tabla de Up-To-Dateness Vector de cada uno de los
DCs que existen o han existido en el bosque. Esta tabla también contiene una marca de
tiempo (timestamp) de la última vez que el DC replicó satisfactoriamente con cada uno de
esos DCs.
En un momento dado, o en intervalos de una hora si no ha tenido lugar ningún cambio antes, DC2
envía una solicitud a DC1 preguntando si hubo algún cambio (si hubiese algún cambio antes de
este tiempo en DC1, éste notificaría a DC2 para que se iniciase la replicación). Como curiosidad,
la replicación dentro de un mismo Site tarda 15 segundos en notificar un cambio, esto es así para
que puedan producirse más cambios (objetos a replicar) dentro de una misma transacción, y si
hubiera más de un partner de replicación los iría notificando con incrementos de 3 segundos a
cada uno de esos partners. A efectos prácticos se considera que la Replicación Intrasite es
instantánea. En nuestro ejemplo sólo hay un partner que sería DC2.
Replicación Intersite:
La replicación se maneja de forma totalmente diferente, ya que el objetivo es controlar y
disminuir el tráfico.Dentro de cada Site, hay un Controlador de Dominio que asume la función de
ISTG = Inter-site Topology Generator.
Éste es quien nombra al Bridgehead Server (Servidor Cabeza de Puente) que será el que
replicará con otro Site. Se pueden configurar los Bridgehead Server preferidos por cada
protocolo (IP o SMTP) pero debemos tener cuidado porque en ese caso el sistema lo elegirá
solamente entre los preferidos. Si elegimos uno o varios y ninguno de esos estuviera disponible,
se cortaría la replicación entre Sites.
pág. 9
una preferencia administrativa para definir los Objetos Conexión, cuando hay posibilidades
redundantes.
AC
TI
VE
DIRECTORY SCHEMA:
El objetivo de entender los fundamentos del esquema de AD es que el administrador sea
capaz de poder extender dicho esquema para adaptarse a las necesidades de la organización.
Por ejemplo, una universidad necesita guardar los créditos obtenidos de cada alumno, como
no existe por defecto nada relacionado con los créditos para asociar a un usuario, es necesario
implementar un objeto en el esquema que represente los créditos de un alumno.
pág. 10
El esquema de Windows Active Directory es una especie de plano separado del bosque, que
contiene las definiciones de los posibles objetos que se pueden crear dentro del bosque.
Cualquier objeto del bosque en AD es una instancia de una clase en el esquema, incluso
el propio esquema es una instancia de una clase. Una clase es una estructura de datos y una
instancia de dicha clase es el almacenamiento de los datos en esa estructura, si yo quiero
guardar datos de un empleado como su nombre, nºtlf, email... tendré que crear una instancia
de la clase que tenga dichos datos en su estructura.
Para todo un bosque sólo hay un esquema de AD, todos los objetos creados en un bosque son
instancias de clases definidas en el esquema asociado a ese bosque:
Para que el esquema del bosque mantenga la coherencia al tratar con varios subdominios, se
le concede la gestión centralizada a un domain controller, que es el que recibe el rol de
SchemaMaster.
Para cada bosque el esquema de partida contiene una serie de definiciones por defecto, en
Windows Server se puede consultar su contenido mediante consultas de PowerShell o
utilizando el snap-in Active Directory Services Interfaces Editor (ADSI Edit).
pág. 11
Para poder ver el esquema en ADSI Edit, tendremos que conectarnos al path LDAP
correspondiente al esquema:
Una clase puede tener varios atributos, y un mismo atributo puede ser usado en varias clases,
por eso el esquema guarda por separado estos 2 elementos. Todas las clases del esquema son
instancias de la clase classSchema y todos los atributos del esquema son instancias de la
clase attributeSchema.
pág. 12
Esquema por defecto de AD
En el plano lógico si es verdad que el esquema reside dentro del contenedor de configuración,
pero en el plano físico el esquema se encuentra en una partición independiente.
Todos los objetos que residen dentro del esquema tendrán de nombre distinguido el propio
del objeto más el nombre distinguido del esquema del bosque. Por ejemplo, para la clase
account, su nombre distinguido es CN=account, CN=Schema, CN=Configuration,
DC=OMI, DC=LOCAL.
Estos objetos también tienen otro nombre, que puede ser utilizado para realizar consultas al
usar LDAP o ADSI guardado en el atributo lDAPDisplayName. El nombre LDAP es el
nombre del objeto, pero empezando por minúscula y sin guiones. Por ejemplo, para el objeto
Domain-Policy-Object, su nombre LDAP es domainPolicyObject.
Si queremos crear un objeto en el esquema, necesitamos solicitar un OID único para nuestra
organización a través de la IANA, ya que si utilizamos un OID ya ocupado, puede generar
conflictos con otros dominios visibles. Alternativamente, Microsoft provee de un script para
pág. 13
autogenerar OIDs únicos cada vez que es ejecutado, aunque las buenas prácticas recomiendan
adquirir los OIDs a través de la IANA.
Una vez obtenido un OID, por ejemplo el 1.3.6.1.4.1.35686, tenemos total control de ese OID
con el que podremos crear ramas y hojas como queramos. El OID de la IANA es el
1.3.6.1.4.1, por lo que la IANA puede otorgar los identificadores que quiera a partir de este
OID base.
pág. 14
OID de una clase del esquema
pág. 15
En la anterior imagen, se puede ver como la clase “user” es subclase de
“organizationalPerson” que es subclase de “person” y que es subclase de “top”.
Las clases además de simplemente guardar datos contienen otras propiedades como su
categoría. Según la categoría, las reglas de creación de instancias y herencia pueden cambiar
para una clase. Existen las siguientes 4 categorías:
-Auxiliares: están hechas con el fin de agrupar atributos, permite que otras clases puedan
heredar colecciones de atributos sin que ellas mismas los definan y tampoco se pueden crear
instancias directamente de una clase auxiliar. Por ejemplo, más de una clase en el esquema
necesita guardar configuración del correo, entonces entre varias clases se repite la definición
de los atributos relativos al correo, la clase Mail-Recipient almacena todos esos atributos por
lo que las clases anteriores pueden utilizar esos atributos con hacer una herencia de Mail-
Recipient. Una clase auxiliar no puede heredar de una clase estructural.
Para utilizar los atributos contenidos en una clase auxiliar no hace falta heredar directamente
de ella, Active Directory provee de un atributo multivaluado que contiene todas las clases
auxiliares asociadas llamado AuxiliaryClass, el atributo llamado systemAuxiliaryClass es
lo mismo, pero está restringido por el sistema.
pág. 16
Clases auxiliares que está usando la clase “User”
-Clases del 88: la organización de clases en categorías viene del estándar X.500 de 1993, esta
categoría hace referencia a las clases anteriores al estándar, concretamente del año 88.
Si queremos saber de qué clase se ha creado una instancia podemos consultar el atributo
ObjectClass, que nos dice de que clases deriva, la última clase listada sería de la que es
instancia. Este atributo coincide muchas veces con el ObjectCategory, pero no son lo mismo
(la información de ObjectCategory es sacada del atributo defaultObjectCategory de la clase
de la que el objeto es instancia, que de valor puede contener la propia clase o una de sus
superclases). Por ejemplo, si creamos un nuevo usuario, objectClass nos dirá que pertenece a
la clase user (de la que realmente es instancia), pero objectCategory que pertenece a la clase
person.
pág. 17
Kichi Diaz es una instancia de la clase user, que también deriva de las clases que se listan
antes que user
Para saber de qué categoría es una clase, basta con consultar el atributo
“objectClassCategory” de sintaxis integer, que puede adoptar los valores siguientes:
0: clase del 88
1: estructural
2: abstracta
3: auxiliar
pág. 18
Clase auxiliar en AD
Si al crear una nueva clase no se le especifica categoría, por defecto será una clase del 88.
pág. 19
El propio esquema es instancia de la clase DMD
Posibles instancias de clases que se pueden crear dentro del container “Users”
pág. 20
Users es una instancia de la clase container y no de una clase especial para usuarios, por lo
que dentro de esta instancia se pueden crear más que sólo usuarios como se ve en la anterior
imagen.
También podemos ver de qué padres se puede crear una determinada clase con el atributo
PossSuperiors (lista de objetos que pueden contener dicha clase) o systemPossSuperiors
(lista de clases que pueden contener dicha clase, la lista sólo puede ser modificada por el
sistema):
Se pueden crear instancias de la clase account por medio de una OU (las carpetas con
prefijo OU) o de un container (las carpetas con prefijo CN).
Los objetos en el esquema que son atributos son instancias de la clase attributeSchema.
Aunque todos estos objetos heredan atributos de la clase top y attributeSchema, los
atributos no permiten herencias.
pág. 21
Atributos dentro del attributeSchema
Todos estos atributos con un valor asignado son instancias de dichos atributos. Por ejemplo,
si queremos crear un nuevo atributo en el esquema siempre hay que asociarle un attributeID
en el momento de la creación, entonces al momento de crear el atributo estamos creando
pág. 22
una instancia de tipo attributeID con el valor que le asignamos (aparte de otras instancias
de atributos que también se crean: cn, attributeSyntax, systemOnly...).
Los atributos tienen una serie de propiedades que es importante conocer, debido a que
afectan al uso y a la funcionalidad de los mismos. A continuación, se enseñan de forma
resumida los más importantes:
SINTAXIS DE UN ATRIBUTO:
La sintaxis es el tipo de dato que un atributo puede contener, las sintaxis no están guardadas
como objetos en el esquema, sino que están codificadas directamente en Active Directory,
por lo que no se pueden crear nuevas sintaxis.
Al crear un nuevo atributo debes indicar su sintaxis, para ello debemos introducir el OID de
la sintaxis y el OM syntax, esto es porque más de una sintaxis tienen el mismo OID.
pág. 23
-Forward link: siguiendo el anterior ejemplo, un forward link nos permite saber la lista de
usuarios que pertenecen a un grupo.
El atributo member es exclusivo de la clase group y guarda la lista de usuarios que pertenecen a un
grupo.
-Back link: este enlace en el mismo ejemplo nos permite saber a qué grupos pertenece un
usuario.
pág. 24
memberOf es exclusivo de la clase User y dice a qué grupos pertenece un usuario.
pág. 25
linkID del atributo Member
-Si es un back link, su linkID siempre es impar. Para asegurarlo, el nº es igual al del forward
linkID relacionado pero incrementado en 1.
Teniendo esto en cuenta, el atributo member es un forward link y su back link asociado
(memberOf) tiene el linkID 2+1=3.
SYSTEMFLAGS:
El systemFlag es un atributo que toma diferentes valores a través de una máscara de bits,
hay diferentes valores definidos para las systemFlags:
Como se puede ver las systemFlags definen como un atributo o clase puede ser gestionado en
Active Directory. El hecho de que sea una máscara de bits permite que un objeto adopte
varios valores definidos de las systemFlags.
pág. 26
Un ejemplo es la clase classSchema, que según las systemFlags el objeto no se puede borrar y es de
categoría 1 (viene en el esquema por defecto)
SEARCHFLAGS:
También contiene una máscara de bits con los posibles valores, este atributo sólo se aplica en
la definición de los atributos del esquema.
pág. 27
searchFlag bits
Las searchFlags se encargan de gestionar índices, que permiten hacer consultas más
eficientes (no siempre). El atributo abarca más utilidades aparte de los índices:
-ANR (Ambiguous Name Resolution): filtro que permite expandir una simple petición a una
petición de múltiples atributos deseados por el administrador y que estén soportados por
ANR. Se suele utilizar para encontrar objetos relacionados con usuarios.
pág. 28
Posible filtro de búsqueda de ANR al poner en la petición anr=Joe Richards
-Conservar los atributos en una tumba: cuando un objeto se elimina, conservar datos de
algunos de sus atributos. Útil si no se dispone de la papelera de reciclaje. Los atributos
enlazados no soportan esta funcionalidad.
-No replicar ciertos atributos a otros DC, concretamente a los Read-Only DC (son utilizados
en ramas que no pueden tener un DC completo). Este conjunto de atributos es conocido como
RODC filtered attribute set.
-Marcar un atributo como confidencial: en este caso, para consultar los datos de un atributo
necesitas permisos de lectura y de control de acceso.
PROPERTY SETS:
Permite asociar un atributo a un conjunto de otros atributos que comparten una propiedad. Un
atributo que guarde el nº de teléfono de los empleados pertenecerá al property set de
información personal.
pág. 29
El uso de property sets por parte del administrador le permite añadir solo una regla de
control de acceso (ACE) para un conjunto de atributos, lo que hace más eficiente el otorgar
o denegar el acceso a un objeto. El concepto de ACE y ACL se tratará más adelante.
MAPI ID:
Messaging Application Programming Interface
pág. 30
es un componente de Windows que permite enviar y recibir diversas peticiones de correo
electrónico. Cualquier atributo usado por MAPI tiene un MAPI ID.
EXTENDER EL ESQUEMA:
La creación ya sea de un atributo o de una clase es una operación permanente, por lo que no
se podrá deshacer o destruir del esquema a menos que se restaure una copia anterior del
mismo.
Para crear nuevos objetos es recomendable usar el snap-in de AD Schema desde la MMC
console. Por defecto no están todas las funcionalidades de la mmc console activadas, para
activarlas ejecutar el comando RegSvr32 SchmMgmt.dll desde una terminal.
Para entrar a la MMC console, pulsar Windows + R y teclear “mmc”. Dentro de la consola,
para añadir el snap-in, pulsar Ctrl + M y selecciona el esquema:
Ya hemos añadido el snap-in a la consola, si lo desplegamos nos saldrán dos containers, las
clases y las instancias, desde los que podremos crear nuevos atributos y clases.
pág. 31
Creación de un atributo
pág. 32
Creación de una clase
En la infraestructura de red de Active Directory tenemos 3 protocolos que destacan sobre los
demás: DNS, DHCP e IPAM.
Aparte de estos tres protocolos existe también la virtualización de red Hyper-V, este
protocolo proporciona "redes virtuales" (denominadas red de vm) a máquinas virtuales
similares a la forma en que la virtualización del servidor (hipervisor) proporciona "máquinas
virtuales" al sistema operativo. Lo cual permite la virtualización de las redes de los clientes
en una infraestructura de red física compartida. No hablaremos más a profundidad sobre el
dado que consideramos necesario para su entendimiento un control y conocimientos sobre
otros procesos en una profundidad mayor a la que poseemos actualmente.
Pasamos entonces a hablar del primero de los tres protocolos, el protocolo DNS.
pág. 33
DNS es un protocolo de resolución de nombres para redes TCP/IP, como Internet o una red
de organización. La gran mayoría de compañías emplean este protocolo para la traducción de
sus nombres de dominio a IP e inversa o para alternar su nombre a un alias y que este sea
reconocido.
Vamos a dar una breve explicación antes de pasar a sus partes y a como se integra en AD.
Planteando una situación general, donde un usuario hace una búsqueda sobre internet a cierta
web, el servidor DNS le dará la IP necesaria para acceder, en caso de que este servidor no
tenga la IP, preguntara a otro DNS hasta dar con ella o enviar un error.
Un DNS tiene una colección de nombres, para tener un orden sobre estos y agilizar los
procesos de búsqueda se emplean zonas.
Zonas DNS
Una zona es un conjunto de nombre de dominio, los cuales están diferenciados por áreas que
se gestionan en el DNS. El DNS se puede ver como un espacio de nombres jerárquico, el
dominio raíz del DNS es la parte superior y cada área compone una rama formada por
subdominios.
pág. 34
Vamos a emplear el ejemplo de TI.com. Este dominio tiene 3 subdominios aso.TI.com,
ar.TI.com y ssi.TI.com. Vamos a suponer que ar y ssi pueden administrarse de manera
conjunta y aso al ser una asignatura especial debe administrarse por separado. Podríamos
verlos como en el siguiente esquema:
AD hace uso de los DDNS (Dynamic DNS), un método para que los clientes envíen peticiones a un
servidor DNS para añadir o eliminar recursos en una zona. Esto permite agilizar la gestión en el DNS
si tenemos un entorno muy grande, ya que anteriormente se debía de modificar un fichero de texto por
zona para su control.
Ahora que sabemos que es DNS y para qué sirve en general, pasemos a saber cómo es integrado
en AD:
Integración de DNS en AD
AD integra el protocolo DNS para que le sirva como un localizador de Controladores de
Dominio para permitir al usuario autenticarse contra este. Veámoslo con un ejemplo:
2. Cuando este cliente inicia sesión este pensará que sigue estando en A, así que trae de su cache la
información del DC A y trata de comunicarse con él.
3. El DC A recibe la información, pero se percata que la IP viene de B, por lo que determina que este
cliente debería de usar un DC de B.
pág. 35
4. El cliente entonces lanza un DNS lookup para encontrar aquellos DC que trabajan en B
5.El cliente hace contacto con un DC de B y entonces pasará una de estas 3 opciones:
3- Todos los servicios de B han muerto (asesinados por systemd) fallando en su respuesta y, por lo
tanto, el cliente procede a buscar todos los DC que sirven al dominio e intenta autenticarse contra
cualquiera de estos.
De una forma simple, DHCP viene a ser un protocolo mediante el cual un servidor DHCP
proporciona, de manera directa, una IP a un nuevo cliente cuando este inicia sesión en la red. De esta
forma, la implementación de DHCP evita problemas de configuración al hacerlo de manera manual o
conflictos con usuarios que empleen un portátil y cambien su localización frecuentemente.
Active Directory no necesita de manera obligatoria un servidor DHCP, a partir de Windows Server
2016 los servidores DHCP son roles de red que pueden seleccionarse durante la creación del dominio
o ser añadidos a posteriori, pero el tenerlo aporta las siguientes ventajas:
pág. 36
Descubrir: El cliente trasmite un intento de descubrir un servidor DHCP
Ofrecer: El servidor DHCP recibe la petición DHCPDISCOVER del cliente y le ofrece una dirección
IP
Reconocer: El servidor DHCP otorga la dirección IP y no ofrecerá esa dirección a ningún otro cliente
pág. 37
IPAM al igual que DHCP es un rol opcional en la configuración de nuestro AD, que podemos
implementar o no.
¿Ahora bien, si solo el protocolo DNS es “obligatorio” entonces que tipo escenarios de redes son
admitidos para construir un entorno de AD en Windows Server?
2. Que tiene permitido hacer como usuario o que funciones puede emplear y de qué
manera un equipo (Política de grupos)
3. A que ficheros puede acceder y que permisos tiene para su uso (ACLs)
pág. 38
Política o Directiva de grupo en AD:
Las políticas de grupo en AD determinar el comportamiento y privilegios de un usuario o un
ordenador dentro del dominio. Se usan principalmente para fortalecer la seguridad en el entorno.
Los administradores configuran y crean objetos de directivas de grupo (GPO) que luego enlazaran con
cuatro tipos de contenedores:
-Local: Las políticas que implementa Windows al iniciar, sin importar que usuario este
iniciando, luego de esto podrán ser sobrescritas por cualquiera de los demás niveles al iniciar
la sesión si se establece como tal.
Estos niveles de mando son así por defecto, pero si tenemos una política de grupo dentro de una OU,
esta bloqueara la herencia de cualquier política que modifique características de usuario (EJ: Fondo de
pantalla, accesos directos...), y fusionara otras que pueden ser comunes dentro de las referentes a los
ordenadores (EJ: Plan de gestión de batería) siempre y cuando la GPO de un nivel superior no sea
forzada, en cuyo caso está ultima primara por sobre las demás. Las políticas locales son las únicas que
no pueden forzar el no heredar valores, sería algo contraproducente usar un dominio y forzar políticas
locales.
Group Policy Objects (GPO): es un conjunto de políticas de seguridad que actúan sobre ordenadores
o usuarios para determinar sus privilegios y capacidades. Son creadas a través del Editor de objetos de
políticas de grupo en AD.
pág. 39
Donde se almacenan las GPO en AD:
Las GPO están almacenadas en dos sitios diferenciados:
-Contenedor de políticas de grupo (GPC): un objeto que contiene información como puede ser el
nombre de la GPO, sus ACLs, la información de su versión o su estado actual. Se almacenan el el
propio AD en el contenedor CN=Policies o CN=System.
pág. 40
En nuestros ordenadores con Windows podemos ver las políticas de seguridad de la misma manera
que en un AD, solo debemos de buscar por el “Editor de Directivas de Grupo Local”.
Microsoft proporciona la posibilidad de aplicar filtros en nuestras GPO para hacer su administración
más sencilla. Por defecto si creamos una GPO en cualquier nivel, esta será aplicada a todos los
usuarios contenidos en este nivel.
Security Filter: Antes de Windows Server 2016, incluido este, se podía decidir mediante los filtros
de seguridad (Security Filters) eliminar la opción de que todos los usuarios autenticados se viesen
afectados por la política de grupo y poder decidir nosotros quien, y como se vería afectado, grupos o
usuarios. A partir de Windows Server 2019, está función ya no está, podemos añadir usuarios
específicos al filtro, pero no tendrá ningún efecto diferente a restringir los permisos de todos los
usuarios para los que se diseñe esta política. Podemos seguir usando el filtro de la misma forma que
en versiones anteriores si revocamos el permiso de “Autenticated Users” en el apartado de
“Delegations” de la GPO que permite que se aplique la política de grupo sobre él, pero esto no es
recomendable.
pág. 41
Opción de selección del filtro WMI dentro de la GPO
WMI filter: los filtros WMI permiten al administrador seleccionar ordenadores específicos que
cumplan las características del filtro y aplicar la GPO correspondiente, especificando una query como
puede ser:
Tipo de producto:
ProductType 1 = Desktop OS
pág. 42
Windows Server 2012 R2 y Windows 8.1 = 6.3%
Windows XP = 5.1%
Tipo de arquitectura:
Pasemos a hablar ahora de las listas de control de acceso y su importancia a nivel de seguridad.
Todos los ficheros de nuestro sistema hacen uso de las ACLs, para dividir los privilegios de un
usuario, un administrador y el SYSTEM (el usuario con mayores privilegios en Windows).
pág. 43
Lista de control de acceso al sistema (SACL): permite a los administradores registrar intentos de
acceso a un archivo. Cada ACE puede auditar el tipo de intento de acceso al archivo, si se denegó, si
se permitió o ambos. De esta manera un administrador puede llevar cuenta de quien y como accede a
que.
- ACE de denegación de acceso: Se usan con las DACL para expresar que un grupo no puede
acceder - ACE de permiso de acceso: Se usan con las DACL para expresar que un grupo tiene
acceso
- ACE de auditoría del sistema: Se usan con la SACL para generar logs cuando un usuario o grupo
intenta acceder
-Identificador de seguridad (SID) que identifica el usuario o grupo de confianza al que se aplica la
ACE.
-Una máscara de acceso que especifica los derechos de acceso controlados por la ACE.
-Un conjunto de marcas de bits que determinan si los contenedores u objetos secundarios pueden
heredar la ACE del objeto principal al que está asociada la ACL.
Sabiendo que es y para qué sirven las ACLs, entendemos que son necesarias a nivel de seguridad para
impedir que cualquier usuario haga lo que quiera con un archivo o ejecute cualquier programa desde
algún lugar al que no debería de tener acceso. Las ACLs se pueden configurar de manera manual
accediendo al apartado de seguridad de un archivo en sus propiedades, o especificándolas en AD
haciendo uso de las GPO (aunque esto último da problemas a veces). Lo recomendable en AD es
modificar una carpeta de manera manual en la cual se hereden las ACLs a su contenido para poder
compartir la carpeta con todos en el dominio.
pág. 44
Pasemos ahora a hablar de los métodos de autenticación en AD.
Autenticación:
Cuando nombramos a la autenticación, nos referimos a un procedimiento mediante el cual un usuario
mediante el uso de medios de verificación comprueba que en verdad es quien dice ser y accede a su
información.
Net-NTLM y NTLM no son lo mismo. NTLM es una función hash que emplea Microsoft para
transformar sus contraseñas y almacenarlas, net-NTLM es un protocolo de autenticación en red que
funciona mediante desafío-respuesta. Es necesaria esta aclaración debido a que Microsoft nombra a
los dos de igual manera, NTLM, sin hacer ningún tipo de distinción. Aquí hablaremos de net-NTLM
empleando solamente “NTLM”, haremos aclaraciones si es necesario.
Empecemos entonces a entender este protocolo. NTLM fue el primer protocolo de autenticación
empleado por Microsoft y actualmente está obsoleto, aunque por motivos de compatibilidad podemos
seguir implementándolo.
El protocolo NTLM se basa en un proceso de desafío-respuesta por el cual el cliente se comunica con
el servidor y el servidor con el DC para completar el proceso de autenticación. Veamos los pasos:
pág. 45
6. El DC usa el nombre de usuario para obtener la contraseña asociada a este de la base de datos.
Usa el hash que recibe para encriptar el desafío
7. El DC compara el resultado obtenido del paso 6 y la respuesta del 4, si son idénticos la
autenticación es exitosa y si no se le comunicará al usuario por medio de un mensaje de error.
NTLM se considera obsoleto debido a que emplea funciones hash MD4, consideradas poco eficientes
en la actualidad y haciéndolo vulnerable a ataques de fuerza bruta para crackear el hash y obtener la
contraseña o ataques “Pass The Hash”, un ataque en el cual si se conoce el hash NTLM (función hash)
de un usuario se pueden ejecutar comandos o abrir un shell en el equipo de ese usuario sin problema
de autenticación.
NTLM tiene dos versiones, NTLM v1 y v2, la v1 funciona exactamente como se describe arriba, la v2
solamente incluye una nueva característica: NTLM v2 emplea marcas de tiempo que no deben de ser
superiores a 30 minutos entre cliente, servidor y DC para que la autenticación sea exitosa. Las dos
versiones caen en las mismas vulnerabilidades.
Hablemos ahora del sustituto actual de NTLM y proceso de autenticación por defecto en AD,
Kerberos.
KERBEROS:
Kerberos es un sistema de autenticación basado en el uso de tickets. En el protocolo de kerberos
tenemos 3 actores principales:
Vamos a explicar primero que es el KDC para entender mejor cómo funciona el protocolo.
El KDC es el servicio encargado de distribuir los tickets a los clientes. Este servicio se divide en dos
partes:
El AS es el encargado de validar la identidad del usuario y devolverle un ticket TGT (Ticket Granting
Ticket) que demuestra la identidad del usuario en este dominio, este ticket permite la obtención de los
TGS. El TGS es el encargado de dar al usuario un TGS (Ticket Grating Service) lo cual le brinda
acceso al servicio solicitado.
Los tickets empleados por el KDC tienen un tiempo de validez, si este se sobrepasa se deberá de
renovar o volver a pasar por el proceso de autenticación, además de esto, los tickets tienen dentro de
si toda la información necesaria para identificar al usuario, sus permisos y servicios de los que puede
hacer uso.
Que el ticket sea válido no implica que el usuario tenga autorización para acceder a los servicios, todo
dependerá de sus privilegios.
pág. 46
Pasemos entonces a ver como es el proceso de autenticación:
En este proceso intervienen el usuario, el KDC y el servidor de aplicaciones (donde están expuestos
los servicios a los que un usuario puede acceder). Se enviarán una serie de mensajes:
1. KRB_AS_REQ: Mensaje que emplea el usuario para solicitar el TGT al KDC empleando sus
credenciales:
a. Un timestap cifrado con la contraseña
b. Nombre de usuario
c. El identificador del servicio al que quiere acceder (SPN)
d. Un numero nonce generado por el usuario (evita ataques replay)
2. KRB_AS_REP: Respuesta del KDC para enviar el TGT al usuario:
a. Ticket TGT:
i. Nombre de usuario
ii. Clave de sesión
iii. Expiración del TGT
iv. PAC con los privilegios del usuario
b. Datos cifrados con la clave del usuario
3. KRB_TGS_REQ: El usuario emplea el TGT para solicitar el TGS al KDC, envía:
a. Datos cifrados con la clave
b. TGT
c. SPN del servicio solicitado
d. Un nonce
4. KRB_TGS_REP: Respuesta del KDC para enviar el TGS solicitado al usuario, envía:
a. Nombre de usuario
b. TGS:
i. Clave de sesión del servicio
ii. Nombre de usuario
iii. Expiración del TGS
iv. PAC con los privilegios del usuario
c. Datos cifrados con la clave del usuario
5. KRB_AP_REQ: El usuario se identifica contra el servicio usando el TGS:
a. TGS
b. Datos cifrados
pág. 47
Kerberos también tiene fallas de seguridad y la mayoría de los ataques se realizan enfocándose en el
proceso de obtención de tickets, como pueden ser los ataques “Golden Ticket” y “Silver Ticket”.
El objetivo del ataque Golden Ticket del es construir un TGT, para lo cual se necesita la clave del
krbtgt. Por tanto, si se obtiene el hash NTLM de la cuenta krbtgt, es posible construir un TGT. Dicho
TGT puede contar con la caducidad y permisos que se desee, consiguiendo incluso privilegios de
administrador de dominio.
El ticket continuará siendo válido, aunque el usuario incluido cambie su contraseña. El TGT solo
podrá ser invalidado si expira o cambia la contraseña de la cuenta krbtgt.
El Silver Ticket es similar, pero esta vez se construye un TGS y lo que se requiere es la clave del
servicio al que se quiere acceder. Esta clave se deriva del hash NTLM de la cuenta propietaria del
servicio. Esta técnica no funcionará si el servicio verifica el PAC, ya que al no conocer la clave de
krbtgt, no es posible firmarlo correctamente.
AD emplea por defecto Kerberos como sistema de autenticación, podemos verlo si vamos al “Visor
de Eventos” y buscamos por el código 4624.
pág. 48
Hablemos ahora entonces de LDAP.
LDAP puede emplearse para que cuando un usuario intente acceder a un servicio, LDAP busque sus
credenciales en la base de datos de AD y permitirle el acceso si está configurado de una de estas dos
formas:
1. Autentificación simple: Las credenciales que es usuario uso para iniciar sesión son correctas y
son las necesarias para acceder al servicio indicado además de que posee los privilegios
necesarios.
2. Autentificación simple y capa de seguridad: emplea el método de autenticación simple pero
además usa un servicio de autentificación secundario como lo puede ser Kerberos para añadir
un nivel de seguridad mayor al proceso.
LDAP hace que la aplicación verifique directamente las credenciales del usuario. Las aplicaciones
tienen un par de credenciales de AD que pueden usar para llamar a LDAP y que este verifique contra
la base de datos de AD que el usuario es quien dice ser.
pág. 49
LDAP es un protocolo de autenticación y/o autorización de recursos IT, mientras que AD es más una
base de datos.
Ejemplo: un usuario quiere imprimir usando una impresora con LDAP habilitado:
pág. 50
BIBLIOGRAFÍA:
Active Directory
Active Directory, 5th Edition Designing, Deploying, and Running Active Directory (Brian
Desmond, Joe Richards, Robbie Allen etc.). Pág 17-25
FSMO Roles
Replicación
AD Schema:
Active Directory, 5th Edition Designing, Deploying, and Running Active Directory (Brian
Desmond, Joe Richards, Robbie Allen etc.) Pág 73
Theitbros.com | adsi-edit
Active Directory, 5th Edition Designing, Deploying, and Running Active Directory (Brian
Desmond, Joe Richards, Robbie Allen etc.) Pág 74 y 75
Schema location
Windowstechno.com | what-is-active-directory-schema
pág. 51
X.500 OID NAMESPACE:
Active Directory, 5th Edition Designing, Deploying, and Running Active Directory (Brian
Desmond, Joe Richards, Robbie Allen etc.) Pág 75-79
OIDs asignados
Techgenix.com | schemaobjectsidentifiersoids
What is an OID?
Alverstrand.no | objectid/index.htlm
Active Directory, 5th Edition Designing, Deploying, and Running Active Directory (Brian
Desmond, Joe Richards, Robbie Allen etc.) Pág 95-104
Microsoft.learn | adschema/classes
Windows-Active_Directory | active-directory-object-classes-and-attributes
Active Directory, 5th Edition Designing, Deploying, and Running Active Directory (Brian
Desmond, Joe Richards, Robbie Allen etc.) Pág 79-81
Microsoft.learn | adschema/attributes
SINTAXIS DE UN ATRIBUTO:
Active Directory, 5th Edition Designing, Deploying, and Running Active Directory (Brian
Desmond, Joe Richards, Robbie Allen etc.) Pág 82-83
LINKED ATTRIBUTES:
Active Directory, 5th Edition Designing, Deploying, and Running Active Directory (Brian
Desmond, Joe Richards, Robbie Allen etc.) Pág 94
Neroblanco.co.uk | links-and-backlinks-in-active-directory-for-exchange
SYSTEMFLAGS:
Active Directory, 5th Edition Designing, Deploying, and Running Active Directory (Brian
Desmond, Joe Richards, Robbie Allen etc.) Pág 84-86
pág. 52
SEARCHFLAGS:
Active Directory, 5th Edition Designing, Deploying, and Running Active Directory (Brian
Desmond, Joe Richards, Robbie Allen etc.) Pág 86-93
RODC
Micrososft.learn | ad/rodc-and-active-directory-schema
PROPERTY SETS:
Active Directory, 5th Edition Designing, Deploying, and Running Active Directory (Brian
Desmond, Joe Richards, Robbie Allen etc.) Pág 94
Itprotoday | compute-engines/using-ad-property-sets
MAPI ID:
Active Directory, 5th Edition Designing, Deploying, and Running Active Directory (Brian
Desmond, Joe Richards, Robbie Allen etc.) Pág 95
Mail2.cni.org | MAPI.html
EXTENDER EL ESQUEMA:
Windowstechno.com | how-to-create-custom-attributes-in-active-directory
DNS
Windows-Active-Directory.com | dns-and-active-directory
Libro: “Active Directory, 5th Edition Designing, Deploying, and Running Active Directory
(Brian Desmond, Joe Richards, Robbie Allen etc.)”. Capítulo 6: “Active Directory and
DNS”.
Microsoft.learn.com | windows/server/networking/dns/dns-top
Zona DNS:
Cloudflare.com | learning/dns/glossary/dns-zone
Libro: “Active Directory, 5th Edition Designing, Deploying, and Running Active Directory
(Brian Desmond, Joe Richards, Robbie Allen etc.)”. Capítulo 6: “Active Directory and DNS”
Microsoft.com | /azure/dns/dns-zones-records#dns-zones
DHCP
Microsoft.learn.com | windows-server/troubleshoot/dynamic-host.configuration-protocol-
basics
pág. 53
Microsoft.learn.com | windows-server/networking/technologies/dhcp/dhcp-top
Computernetworkingnotes.com | how-dhcp-works-explained-with-examples
IPAM:
Microsoft.learn.com | windows-server/networking/technologies/ipam/ipam-top
Microsoft.learn.com | windows-server/networking/windows-server-supported-networking-
scenarios
Políticas de grupo:
Libro: “Active Directory, 5th Edition Designing, Deploying, and Running Active Directory
(Brian Desmond, Joe Richards, Robbie Allen etc.)”. Capítulo 8: “Group Policy Primer”.
Windows-Active-Directory.com | create-enable-disable-gpo
Windows-Active-Directory.com | active-directory-policies
Windows-Active-Directory.com | security-filtering-and-wmi-filtering
Microsoft.learn.com | active-drectory-domain-services/manage-group-policiy
ACLS:
NTLM
Windows-Active-Drirectory.com | ntlm-and-kerneros-authentication-protocols
Infosecwriteups | ntlm-authentication-in-active-directory
Kerberos
Tarlogic | como-funciona-kerberos
Microsoft.learn | microsoft-kerberos
LDAP
Infosecwriteups | ldap-in-active-directory
pág. 54
Connect2id.com | ldapauth/auth-explained
Jumpcloud.com | what-is-ldap-authentication
Wikipedia.org | Protocolo-ligero-de-acceso-a-directorios
pág. 55