Vous êtes sur la page 1sur 48

1

De una forma muy general un servicio de directorio seria el conjunto de componentes que ofrecen un servicio, el
ejemplo mas común que podemos encontrar es el directorio telefónico, la funcionalidad de este es permitir encontrar
de manera rápida y certera información sobre persona y lugares.

Pero el caso que nos compete son los servicios de directorios en sistemas informáticos, que a diferencia de los
anteriores (directorio telefónico), son dinámicos, esto quiere decir que permiten actualizar los datos en tiempo real,
esto es posible gracias a la estructura del servicio de directorio teniendo como base su organización (la forma en
que podemos buscar en el) y su contenido (tipo de información que almacena)

Un servicio de directorio informático y mas en el área de redes, es un servicio de red que me permite identificar,
encontrar y utilizar de manera clara y coherente recursos de red, y ponerlos a disposición de las personas o
aplicaciones que se encuentran en nuestra red, en otros términos el servicio de directorio es un almacén
estructurado que contiene información sobre los objetos de una red, en ocasiones tiende a relacionarse un servicio
de directorio con una base de datos, pero podemos encontrar grandes diferencias entre ambos:

•Acciones de lecto-escritura: Mientras que las bases de datos tienden a llevar grandes cantidades de accesos de
lectura y escritura, en un servicio de directorio la acción que predomina es la de lectura, por que en un principio se
crea la estructura del directorio, constátenme los usuarios tratan de ubicar recursos (esto seria una acción de
lectura), y muy esporádicamente se ingresa información de recursos al directorio
•Extensibilidad: Los esquemas en un directorio me definen los tipos de datos que almacenara el directorio, es
probable que se puedan generar esquemas de tipos datos y los mecanismos de búsqueda, dependiendo del tipo de
información que busca una empresa, siendo así mas versátil el manejo de dichos datos.
•Centralización de los datos: En un servicio de directorio, toda la información de una entidad se encuentra
almacenada en un solo servidor, siendo así mas fácil la administración y gestión de dicha información
•Replicación de los datos: Así como un servicio de directorio permite centralizar los datos, también permite el
traslado de la gestión y el almacenamiento de dichos datos, esto puede ser para gestionar la carga de manejo de
información o no tener un único punto de falla y además tener alta disponibilidad.

2
Un servicio de directorio define el espacio de nombres de una red, ya que es a través de los nombres de
los objetos, sus características y parámetros que es posible localizarlos, administrarlos y utilizarlos de
manera simplificada y coherente, este gran almacén se encuentra estructurado en forma de árbol esto
se denomina DIT (Árbol de información del directorio)

Para poder acceder a esta gran base de datos de recursos se trabaja con un protocolo de acceso ligero
a directorio (LDAP), en sus orígenes fue X.500, X.500 era un conjunto de estándares que definía la
organización de las entradas en el directorio y describía que esta organización debería de ser de forma
jerárquica, en un principio definía que el acceso de los clientes al servidor que contaba con el servicio
de directorio se debería de hacer a través de DAP (Protocolo de acceso a directorio), posteriormente
surgió LDAP (El LDAP es multiplataforma).

•DAP (Implementado en OSI)


•LDAP (Stack TCP/IP)

3
Un servicio de directorio es un almacén estructural jerárquico donde se encuentran unas entradas
asociadas a cada objeto, pero para poder definir bien cada objeto dentro del servicio de directorio
tenemos tres componentes fundamentales:

•Los esquemas: Los es esquemas me dicen que objetos dentro del directorio se pueden crear, en otras
palabras el esquema me define las clases con todos los atributos que dichas clases pueden tener.

•Las clases: Las clases son como los moldes de los objetos que se pueden crear dentro del directorio,
estas clases son una descripción generalizada de cada objeto, pero para poder diferenciar cada objeto,
estos deben de tener unos atributos que lo identifiquen

•Los atributos: Los atributos son descripciones o características definidas con sus respectivos valores,
así puede haber un atributo que estén presentes en la definición de varios objetos.

Clase  Persona
Atributo  Nombre, DI, Edad, Modulo

4
Para poder acceder a la gran colección de información del Servicio de directorio, contamos con una
arquitectura cliente servidor, siendo el servidor el que cuenta con el servicio de directorio, para ello se
seguirían los siguientes pasos:

1. El aplicativo cliente establece una sesión autenticada o anónima contra el servidor que contiene el
servicio de directorio, como es una arquitectura cliente servidor para poder acceder a el a través del
stack TCP/IP deberemos de especificar adicionalmente la dirección IP (o en el caso que contemos
con un servidor DNS el nombre del servidor) y el puerto por el que esta escuchando el ldap
(normalmente es el puerto TCP 389)
2. El cliente realiza tareas (como búsqueda, actualización, lectura).
3. Cuando el cliente termina de realizar la tarea, cierra la sesión con el servidor del servicio de
directorio

Ahora bien existen dos versiones de LDAP, la original fue LDAPv2, luego se evoluciono a LDAPv3, las
mejoras que trajo LDAPv3 son las siguientes:

• Autenticación fuerte por medio de SASL (Capa de seguridad y autenticación simple) este es el
framework utilizado para la autenticación y autorización, un framework es un conjunto de
aplicaciones o mecanismos sobre el cual se soportan otros para funcionar, en este caso el SASL
ofrece autenticación y autorización, pero por ejemplo no ofrece cifrado por lo tanto para el cifrado si
queremos que los datos de autenticación viajen cifrado utilizamos TLS, que seria la evolución del
SSL.
• Protección, integridad y confidencialidad (ofrecida a través de TLS (SSL))
• Descubrimiento de esquemas

5
Hemos hablado de la estructura, de lo que debería de contener el directorio y el proceso de
comunicación con el servicio de directorio, pues bien ahora hablaremos cual seria el formato para
importar o exportar las entradas al directorio por que en una primera instancia tendremos que poblar el
directorio, para ello contamos con el formato LDIF (Formato de intercambio de datos LDAP), este
formato guarda la información en una estructura jerárquica enfocada a los objetos del directorio, que
posteriormente se convertirán al formato interno del almacén de datos.

Un archivo en formato LDIF, normalmente contiene un DN (Nombre distinguido), este DN consiste en


el nombre de la entrada mas una serie de clases de objetos y atributos de las clases de dicho objeto,
estas series de clases y atributos que acompañan al DN se conocen también como RDN (Nombre
relativo distinguido), normalmente podemos identificar el RDN por que lo almacenamos con un
nombre común o CN

6
El protocolo LDAP busca dentro de los servicios de directorio las entradas que hacen referencia a los recursos de
red que están organizados jerárquicamente, para ubicar los atributos de dichos objetos el protocolo LDAP se enfoca
en encontrar el DN (nombre distinguido).

Ahora bien, teniendo un directorio poblado y con una estructura de entradas jerárquicamente definida en forma de
árbol o lo que se conoce como DIT (Árbol de información del directorio), podemos encontrar los objetos buscando
los DN, que adicionalmente tiene asociados otros datos. En la imagen podemos observar una entrada para un
objeto en este caso un usuario contenido en el directorio, se presenta en formato LDIF

Que podemos observar de este formato:

1. DN (Nombre distinguido) que es verdaderamente es la entrada, así el LDAP puede ubicarlo, pero que
compone el DN?
2 CN (Nombre distinguido relativo)
3 DC (Componente del dominio) que en este caso seria el nombre distinguido de la entrada padre

Ahora bien vamos a determinar los atributos de la entrada

4. CN (Nombre común), podemos observar la diferencia entre el CN del DN y este CN.


5. GivenName: Seria el nombre
6. SN (Surname), que seria el apellido
7. MAIL (Dirección de correo electrónico)

Ya teniendo ubicada toda la información en árbol de direactorio, el servidor a través de LDAP puede entregar al
cliente los atributos de una entrada como el correo, el nombre común, entre otros, o también puede devolver las
entradas completas o lo que llamamos el DN.

7
Existen muchas implementaciones de servicio de directorio, en la imagen vemos algunas
implementaciones de Servicios de directorio que trabajan con LDAP o con OpenLAP, que seria la
versión libre y de código abierto de LDAP.

8
Funciones Básicas de Active Directory:

•Centralizar el control de todos los recursos de la red, para controlar el acceso a este recurso
•Centralizar y Descentralizar la administración de los recursos, delegando administración.
•Almacenar objetos de forma segura en una estructura jerárquica.

El servidor que contiene la base de datos con la información de los objetos dentro del Servicio de
Directorio se llama Controlador de Dominio.

9
Componentes de la estructura lógica de Active Directory:

La estructura lógica de Active Directory me permite organizar y administrar los usuarios y recursos de
red, el servicio de directorio de Microsoft consta dentro de su estructura jerárquica lógica con cinco
elementos:

1. Objetos: Los objetos son los componentes básicos de la estructura de Servicio de Directorio
(usuarios, equipos, recursos de red). Cada uno de estos objetos se define por los atributos
basándose en unas plantillas.

2. Unidades organizativas: Las unidades organizativas son objetos contenedores de otros objetos

3. Dominios: Los dominios son un conjunto de objetos que son agrupados para realizar sobre ellos
un función netamente administrativa, la característica mas importante es que comparten algo en
común.

4. Arboles de Dominio: Los arboles de dominio son dominios que están agrupados jerárquicamente.

5. Bosques : Un bosque es la agrupación de uno o varios arboles, a un bosque se le llama también


una instancia completa.

10
La estructura física consta de los siguientes componentes:

En el directorio Activo la estructura física es independiente de la lógica; la estructura física me permite


optimizar el tráfico de la red, por lo tanto esta estructura me define cuando y donde se produce la
replicación de la información y los inicios de sesión.

Los dos componentes más importantes de la estructura física:

Controladores de dominio: Un controlador de dominio contiene una base de datos de directorio y


realiza tareas de almacenamiento y replicación. Un controlador de dominio solo se aplica a un dominio.

Un controlador de dominio debe de tener, estas particiones:

Partición del dominio: Los replicados de los objetos del dominio


Configuración: Me determina ubicación y como están conectados los controladores de
dominio (topología).
Esquema: Es el que tiene las plantillas de los objetos
Aplicación: Son objetos que tienen compartidas aplicaciones.

Sitio: Es un grupo de equipos que comparten buen ancho de banda

11
Como funciona Active Directory

El servicio de directorio implementado en redes con Microsoft, se llama Active Directory, este servicio de
directorio cuenta con las siguientes capacidades:

•Permite a los usuarios y las aplicaciones obtener información de los recursos.


•Fácil accesibilidad a los recursos, haciendo transparente la topología física y los protocolos
implementados en la red para los usuarios.
•Escalabilidad del catalogo global de datos.

Active Directory por tratarse de un servicio de directorio, trabaja junto con el DNS para definir la
estructura jerárquica del directorio.

En ambientes de Active Directory un dominio, es la agrupación de varios recursos de red que comparten
la misma base de datos del directorio, el controlador de dominio es el equipo que contiene la base de
datos del catalogo global.

En las antiguas redes NT todo se encontraba centralizado en un solo servidor y los cambios solo se
hacían en el servidor que tenia la base de datos centralizada, y para tener un backup de respaldo en
caso de falla había un BDC quien se sincronizaba con el servidor principal llamado PDC. En las redes
con sistemas operativos de la familia Microsoft W2000 y W2003 Server, ya la forma de realizar los
cambios en el directorio cambia totalmente, ya los cambios no solo se hacen en un solo equipo, sino
que se cuentan con varios PDC y entre ellos se replican los cambios

12
Maestros de operaciones

Hay ciertas funciones específicas que se necesitan en ciertas circunstancias replicar a otros
controladores de dominio, ya sea por migración del servidor o cambio en la estructura del bosque, estas
funciones se denominan maestros de operaciones, cada operación es una función.

Maestros de operaciones para el bosque

•Maestro de esquema: Como las plantillas de los objetos son generales para todo el bosque, esta
función controla todos los atributos de las plantillas.

•Maestro de nombre de dominio: Controla la edición de dominios en el bosque (adición, eliminación)

13
Maestros de operaciones para el dominio

•Emulador de controlador de dominio principal: (PDC) Es el controlador de dominio para cada


dominio.

•Maestro de identificadores relativos: Cuando se crea un objeto el controlador de dominio crea un


identificador de seguridad (SID), este consta de un SID de dominio y un identificador relativo (RID) que
es único para cada objeto creado en el dominio.

•Maestro de infraestructuras: Es el que mantiene los enlaces para ubicar objetos que han sido
movidos a otros dominios, cada objeto se referencia con un Identificado único global (GID)+nombre del
objeto+SID.

14
Hasta este punto hemos visto un poco a cerca del servicio de Directorio de la Familia Microsoft (Active
Directory), este es uno de los mas servicios de directorio mas implementados hoy en día en la mayoría
de las empresas, ahora vamos a ver una solución que podría equiparase con la nativa que nos ofrece
Microsoft Windows, la soolucion es crear un controlador de Dominio en un sistema Operativo de la
familia GNU/Linux, para que actué como el poseedor del servicio de directorio para infraestructuras con
equipos que cuenten con sistemas operativos Microsoft Windows, esta seria una implementación de
costo cero, gracias a las bondades de GPL.

15
Independiente de la distribución de GNU/Linux con que trabajemos, estos dos paquetes siempre van a
estar disponibles para instalarlos y configurarlos, ahora bien vamos a estudiar un poco como trabaja
cada uno de ellos y como se complementan para implementar un servicio de directorio en un sistema
operativo Linux, para ofrecer estos servicios a maquinas Windows.

•OpenLDAP es la implementación libre del protocolo LDAP, multiplataforma y compatible con otras
versiones de LDAP

•Samba es una suite de protocolos como el SMB/CIFS que permite compartir recursos de red, SMB fue
originalmente desarrollado por IBM, pero luego Microsoft lo adoptó y lo renombro con el nombre de
CIFS, estos dos protocolos los utilizan los equipos con sistema operativo de la Familia Microsoft para
acceder a los recursos compartidos que ofrece nuestro sistema GNU/Linux a través de samba

Ahora bien LDAP contendrá el almacén y con samba crearemos la estructura y gestionaremos dicho
almacén, además de esto samba me permitirá el acceso a dicho almacén (Directorio) para maquinas en
otras plataformas de sistemas operativos diferentes a GNU/Linux

16
En la dispositiva podemos ver los paquetes necesarios para implementar openldap en nuestro sistema
operativo GNU/Linux, vamos a ver describir la funcionalidad de cada paquete:

1. openldap: Este paquete ofrece ficheros, bibliotecas y documentación para Openldap


2. openldap-clients: Paquete cliente para OpenLDAP, este paquete me permitirá conectarme al
servicio de directorio, especificando el servidor al que deseamos conectarnos y en que directorio
queremos buscar.
3. openldap-servers: Servidores de OpenLDAP y ficheros de configuración, que será donde se
especificaran esquemas, puertos, usuario administrador de openldap y password
4. authconfig: Paquete para configurar la autenticación desde servicios de red, este paquete me
permite configurar el sistema para que busque parámetros para autenticar en el directorio. (LDAP)
5. Authconfig-gtk: Paquete grafico para configurar la autenticación en el sistema, este paquete me
permite modificar gráficamente ficheros como el nsswitch.conf (que me permite especificar donde
el sistema debe de ir a buscar las bases de datos administrativas para autenticar los servicios de
red), y los módulos PAM (Módulos de autenticación Flexible), originalmente desarrollado por
Sun Microsystem y luego adoptado por GNU/Linux, estos módulos me ofrecen la facilidad de
configurar los mecanismos de autenticación de forma independiente para cada servicio que
instalemos y configuremos en nuestro sistema, es así como podemos utilizar los módulos PAM para
permitir a un servicio FTP integrarlo con una base de datos Berkley o Mysql para la autenticación,
pero los mecanismo de autenticación para los demás servicios siguen independientes.

17
Lo primero a tener en cuenta antes de implementar nuestro servicio de directorio en GNU/Linux será:

1. el dominio que utilizaremos para crear nuestra estructura jerárquica de datos


2. Quien será el administrador ldap, quien tendrá los privilegios totales sobre el almacén
3. El password para poder acceder al almacén
4. Si queremos agregarle a nuestro directorio mas esquemas para poder agregar mas entradas, esto
quiere decir mas tipos de objetos, que en nuestro caso como vamos a montar un servicio de
directorio (SAMBA+LDAP), seria el esquema samba, para poder crear las entradas que hacen
referencia a objetos que el samba agregara al directorio LDAP.

18
Ldap.conf

La finalidad de este archivo es poder acceder a la información del directorio, pero para eso tendremos
que especificar que en que dominio vamos a buscar y cual es el servidor LDAP, luego configurar este
archivo por ejemplo podremos ejecutar un slapcat para mirar la estructura de todo el directorio en
formato LFDIF, pero como el directorio esta vacio por el momento no nos mostrara información alguna,
algunos parámetros importantes a configurar dentro de este archivo son:

•Base: Base es el dominio o el DN padre desde el cual vamos a entrar a buscar , todas las entradas en
nuestro directorio.
•URI: URI significa identificador uniforme de recurso, un URI es una cadena corta de caracteres que
identifica inequívocamente un recurso, en este caso ese recurso es el servidor ldap que posteriormente
vamos a configurar.

19
Generando el password para el admin LDAP

Lo primero que hay que hacer es generar el password para el administrador del dominio, para ello
contamos con un comando el slapasswd, este comando me permitirá generar una salida inteligible para
un password escrito en texto plano, que en nuestro caso será una contraseña, este password se
especificara en el archivo de configuración del servidor, como mecanismo de autenticación

Para obtener la salida inteligible del password utilizamos el comando slappasswd, este comando toma
una entrada normal y da como resultado un resumen o lo que conocemos con hash, para poder realizar
este resumen se utilizan algoritmos criptográficos como SHA, MD5. Por defecto slappasswd utiliza el
algoritmo SHA, pero como podemos ver no es solo SHA, sino SSHA, la S del principio indica el SALT,
el por que de esto es que si siempre aplicásemos un resumen a un mismo password dos veces siempre
dará dos resultados totalmente iguales, esto quiere decir que si dos usuarios tuviesen el mismo
password sus resúmenes coincidirían perfectamente, pero al agregar Salt se le agrega a ese resumen
una serie de caracteres aleatorios, así cada ves que generemos un resumen así sea con el mismo
password la probabilidad de que las salidas sean iguales es casi nula.

20
Configurando los parámetros del servidor LDAP

Ahora lo que haremos es ubicar el archivo de configuración del servidor LDAP, para ello find, por que en
algunas distros varia la ubicación del mismo.

Luego de que lo encontremos necesitaremos definir ciertos parámetros como el Nombre distinguido
Padre para el almacén del directorio, que en este caso seria la entrada principal de la cual se derivaran
todas las demás entradas, por eso especificamos el dominio, también configuraremos el Nombre
distinguido para el administrador del dominio, y el password para el mismo.

21
En ocasiones es necesario configurar unos parámetros para la base de datos LDAP, para ello existe un
archivo llamado DB_CONFIG.example, algunas distribuciones traen un ejemplo dentro de la carpeta
openldap, lo que haremos será copiar este archivo que contiene parámetros para la base de datos de
LDAP en el directorio donde se alojaran dichas bases de datos, por lo general es /var/lib/ldap/, esto se
hara para que el servidor cree desde cero todas las bases de datos con la nueva configuración, algunas
distribuciones traen este archivo por defecto (/var/lib/ldap/DB_CONFIG), por lo tanto no es necesario
copiar el ejemplo, pero para nuestro caso si por que iniciaremos desde cero, sin bases de datos ni
configuraciones previas, en el caso dado de que se presente un error y queramos crear bases de datos
para el ldap desde cero lo que haremos es eliminar todo el contenido de dicha carpeta y copiar el
ejemplo, así se crearan de nuevo las bases de datos.

Ahora bien es importante recordar el control del acceso a las bases de datos del directorio para ello
cambiaremos los permisos, para que solo el usuario ldap y el grupo ldap puedan acceder a ella.

22
Creando la raíz del directorio

Para poder empezar a crear las entradas y poblar el servicio de directorio necesitamos una entrada
padre, para que a partir de ella se creen las demás entradas de forma anidada, para ello utilizamos un
archivo con formato LDIF donde crearemos lo necesario para crear la raíz de la estructura jerárquica.

Que tiene que contener como mínimo, pues bien deberá de contener el DN padre, que debe coincidir
con parámetro suffix asignado al servidor ldap en el archivo de configuración slapd.conf, y lo mismo
para el usuario administrador y el password, notemos que en la sección userPassword solo
especificamos el hash aleatorio mas no el protocolo criptográfico.

23
Ahora bien como creamos esta entrada?, hay un comando muy importante este comando es el slapadd,
este me permite agregar entradas al directorio, posteriormente como hemos creado nuevas entradas en
el directorio verificamos que estos archivos tengan los propietarios respectivos, esto lo hacemos
nuevamente con chown.

Iniciamos o reiniciamos el servidor LDAP en caso de que este corriendo en el sistema, como podemos
ver el slapd esta corriendo y escuchando peticiones por el puerto 389, a través del protocolo TCP.

24
En la imagen podemos ver cuales son los paquetes necesarios para implementar samba en nuestro
sistema operativo GNU/Linux, veamos una breve descripcion del a funcionalidad de cada uno de estos
paquetes:

1. samba: Servidor samba


2. Samba-commons: Ficheros utilizados tanto por el servidor como el cliente samba para su
interacción y funcionamiento
3. samba-clients: Paquete cliente para acceder al servidor samba
4. Smbldap-tools: Paquete con un kit de herramientas que permiten la interacción entre el samba y el
ldap, este paquete por ejemplo me permite poblar la estructura de datos del ldap a partir de esquemas y
objetos propios de samba (usuarios y grupos)

Que haremos con el samba, con el samba haremos el PDC para los equipos con sistema operativo
Microsoft Windows, así que el servidor donde integremos el Openldap con el samba actuara como un
controlador de dominio primario.

25
Este seria el derrotero que desarrollaremos para configurar el servidor samba y posteriormente unirlo a
nuestro servidor LDAP.

26
Parámetros de identificación del samba

El archivo de configuración de samba se encuentra dividido en secciones, para configurar los parámetros de
identificación del servidor samba nos ubicamos en la sección global, en esta sección existen ciertos parámetros
imprescindibles de configurar para identificar a nuestro nuevo servidor de directorio como PDC para los equipos
Windows.

En esta sección configuraremos por ejemplo el Workgroup haciendo referencia el dominio NT, el nombre del servidor
o sea que el nombre del PDC, logs, y demás especificaciones que nos permitirán definir el comportamiento de
nuestro servidor samba.

Workgroup: Es el grupo de trabajo para SMB, cuando tenemos un grupo de trabajo se diferencia de un dominio por
que toda la información se encuentra descentralizada en cada uno de los equipos, por eso es que tenemos que
configurar este workgroup, ahora bien cuando hablamos de un dominio NT, es un workgoup o conjunto de maquinas
trabajando con SMB que en el caso de windows es CIFS, pero con un controlador de dominio que tiene toda la
información centralizada, que será la función de este nuevo servidor

Netbiosname: Ahora bien estamos hablando de tecnología NT, pero cuando implementamos samba el protocolo
SMB se aplica para equipos windows 98 o versiones anteriores, es por eso que trabajamos con NetBIOS, nótese
que el nombre NetBIOS es diferente a lo que comúnmente manejamos en DNS, toma solo la primera porción del
fqdn

ServerString: Es una breve descripción de nuestro servidor

Loglevel: Niveles de registro, mientras el nivel sea mayor mas detallado será el registro lo recomendable es 3

Enable Privileges: Este parámetro me permite otorgar al futuro grupo administradores del dominio la capacidad de
unir maquinas al dominio.

27
Parámetros para el controlador de dominio

Estos son algunos parámetros que debemos configurar dentro de la sección global para definir que
nuestro nuevo servidor ser un controlador de dominio, veamos algunos apuntes acerca de estos
parámetros:

Domain logons: Habilitar al samba para que sea el servidor encargado de los logueos para clientes NT

Domain master: Habilitar samba para que actué como un controlador de dominio primario para clientes
NT

Wins support: Habilitar soporte para WINS (Recordemos que WINS hace resolución de nombres
NetBIOS)

Time Server: Actuar como servidor de tiempo para los clientes NT

28
Parámetros de interacción del samba con el LDAP

Estos son algunos parámetros que también irían en la sección global, con ellos especificaremos ciertas
especificaciones para comunicarnos con el LDAP, veamos algunas anotaciones sobre estos parámetros
de configuración:

Passdb backend: Un backend es el estado final de un proceso, podemos decir entonces que el
almacén o la base de datos donde al final se almacenara la información de los usuarios y los grupos
será la base de datos de directorio
Ldap idmap: Sera la unidad organizativa donde se almacenaran los uid y gid que se mapearan a SID
propios de NT.
Idmap uid: Rango de identificadores de usuarios unix para el mapeo de SID (Identificadores de
seguridad)NT
Idmap gid: Rango de identificadores de grupos unix para el mapeo de SID ( Identificadores de
seguridad)NT

29
Recurso para almacenar las casas de los usuarios.

Estos parámetros irían dentro del recurso compartido HOME, veamos algunas anotaciones sobre estos
parámetros:

Coment: Breve descripción para el recurso compartido


Browseable: Visible
Writable: Se puede modificar el contenido del recurso compartido
Create mask: Privilegios (octal-Unix) para todos los archivos creados por los clientes pertenecientes al
dominio (clientes NT)
Directory mask: Privilegios (octal-Unix) para todos los directorios creados por los clientes
pertenecientes al dominio (clientes NT)

30
Recurso Publico

Este recurso se utiliza para para almacenar información a la cual cualquiera pueda acceder, sin
restricción alguna.

31
Recursos para impresoras compartidas.

Algunas descripciones de los parámetros de esta seccion:

Path: Cola de impresión (Procesos para imprimir), normalmente seria la ubicación del recurso
compartido
Printable: Indica que esta sección no es de archivos sino de impresoras

32
Recurso para la ejecución de scripts al inicio de sesión

Recurso para almacenar los scripts de inicio cuando se logueen los usuarios, normalmente como los
usuarios se loguean desde equipos con sistema operativo Microsoft Windows estos scripts serian con
extendion .bat

33
Recurso para perfiles

Este seria el recurso para el perfil de los usuarios, en el perfil del usuario va las configuraciones propias
que realiza el usuario en su sesión, como el papel tapiz, y demás aspectos de personalización de su
sesión, este recurso se utiliza para almacenar dichos cambios.

34
Ahora bien para que el LDAP reconozca los objetos del samba, tenemos que agregar el esquema del
samba al directorio donde el LDAP ira a buscar, para ello podemos obtener el esquema del samba
desde la los archivos que obtuvimos cuando instalamos la documentación del samba o específicamente
el samba-docs, o también algunas de las implementaciones de servicio de directorio ya traen una pre
configurada, posteriormente debemos decirle a nuestro servidor LDAP que incluya el esquema del
samba, esto para que cuando poblemos nuestro ldap con el samba el pueda reconocer grupos,
identificadores de grupos, identificadores de usuarios y demás, todo lo que el samba agregue al
almacén de directorio, todo esto será reconocido gracias al esquema del samba.

35
Credenciales de LDAP para el samba

Necesitamos que el samba tenga los privilegios suficientes para poblar el almacén de datos del
directorio, para ello debemos proporcionar al samba la contraseña del admin del LDAP, para ello
utilizamos el comando smbpasswd, ahora bien el parámetro –W es para que el password que
ingresemos lo tome como el password para acceder al LDAP a llevar a cabo los proceso de escritura,
este password será almacenado en una base de datos local del samba llamada secrets.tdb.

Ahora bien debemos obtener un SID para nuestro grupo de trabajo, el SID es un identificador de
Seguridad, este identificador se utiliza para identificar valga la redundancia un objeto especifico dentro
de una red, cada equipo, cada usuario, cada grupo de trabajo tiene su propio SID, por eso cuando
clonamos maquinas necesitamos generar un nuevo SID ya que si no los generamos encontraremos dos
equipos totalmente iguales en su identificador y no sabremos diferenciar uno de otro en la red, para
poder generar este SID utilizamos el comando net getlocalsid y nuestro grupo de trabajo.

Por ultimo verificamos que este identificador si se encuentre almacenado en nuestro LDAP, antes de
reiniciar el samba es importante crear todos los directorios que actuaran como recursos compartidos,
estos directorios fueron especificados en smb.conf (recordemos la sección netlogon, la sección profile,
etc)

36
Poblando el directorio

Bueno luego de tener configurado nuestro servidor samba, necesitamos crear el resto de la estructura
de nuestro almacen de directorio, recordemos que hemos creado solo la entrada padre y la entrada del
administrador de dicho directorio, ahora lo que haremos será crear las demás entradas necesarias para
que nuestro servidor samba se pueda integrar completamente con nuestro servidor LDAP, creando los
grupos, unidades organizativas y demás tipos de objetos para que los clientes del directorio puedan
acceder y hacer parte del mismo, para ello utilizaremos el paquete smbldap-tools.

El paquete smbldap-tools tiene dos archivos de configuración que debemos de modificar para poder que
se comunique con nuestro servidor ldap y además para definir que entradas deseamos crear en nuestro
almacen de datos jerárquico

1. smbldap_bind.conf: En este archivo definimos cuales son las credenciales necesarias para poder
escribir en nuestro directorio LDAP y el password necesario para llevar a cabo dicha operación.
2. Smbldap.conf: : En este archivo se puede hacer una definición por secciones
1. Una sección corresponde a la definición de los parámetros de conexión a nuestro servidor
LDAP y las especificaciones de información nuestro servidor samba.
2. Otra sección corresponde la definición de los contenedores para la información de los
objetos de nuestro servidor LDAP.
3. Otra sección corresponde a la configuración de nuestro servidor samba

37
smbldap_bind.conf: En este archivo definimos cuales son las credenciales necesarias para poder
escribir en nuestro directorio LDAP y el password necesario para llevar a cabo dicha operación, ahora
bien el masterDN me definirá las credenciales para el servidor ldap primario o maestro para los acceso
de escritura, y el slaveDN será por si tenemos configurado un segundo servidor LDAP o esclavo para
los accesos de lectura, como por el momento tenemos solo uno y es maestro configuraremos las
mismas credenciales en ambos.

38
Sección 1 (smbldap.conf)

• SID (Identificados de seguridad de nuestro grupo de trabajo), este es el mismo que generamos y
almacenamos en nuestro directorio LDAP
• sambaDomain (Grupo de trabajo o dominio NT), este corresponde al especificado en el archivo de
configuración smb.conf
• ldapTLS (conexión segura al LDAP), si configuramos esta opción en 0 deshabilitamos la conexión
segura, pero si la configuramos en 1 utilizara TLS que es la evolución del SSL para comunicarse con el
LDAP de forma cifrada.
• Suffix (Sufijo LDAP), especificamos la entrada DN padre para todas las demás entradas que
crearemos con el samba.

39
Sección 2

• Usersdn: Unidad organizativa donde se almacenaran las cuentas de usuario


• Computersdn: Unidad organizativa donde se almacenara las cuentas de los equipos
• Groupsdn: Unidad organizativa donde se almacenara los grupos
• Idmapdn: Unidad organizativa donde se almacenaran los identificadores de los usuarios y grupos
para el mapeo a SID propio de NT
• SambaUnixIDPooldn: Almacen para los uid y gid de los nuevos usuarios y grupos para el mapeo
SID propio de NT (Recordemos el rango de asignación de de UID y GID de 20000 a 30000 especificado
en el samba para ser asignados a grupos y usuarios.)
• Scope: Ámbito de búsqueda, por defecto es sub

40
Seccion 3

SkeletonDir: Es un directorio para las nuevas cuentas de usuario creadas, solo se crea el directorio
casa o esqueleto si se pide crearlo con el comando smbldap-useradd –k, es equivalente al -m

41
Luego de haber configurado los parámetros necesarios para poder utilizar correctamente las herramientas smbldap-
tools, vamos a poblar el directorio para ello utilizamos el comando smbpldap-populate

Este comando creara todas la estructura necesaria para poder que nuestro servidor samba actué como servidor
PDC, para ello crea

•Los contenedores de los usuarios (Unidad organizativa Users)


•Los contenedores para los grupos (Unidad organizativa Group), cuando el samba crea esta unidad organizativa
también automáticamente crea los grupos predeterminados para un servidor PDC y estos son:
•Operadores de copia
•Administradores
•Operadores de backup
•Administradores del dominio
•Computadores del dominio
•Invitados del dominio
•Usuarios del dominio
•Operadores de impresión
•Replicadores

•Contenedor para los equipos (Unidad organizativa Computers)


•Contenedor para los mapeos SID (unidad Organizativa Idmap), esta unidad organizativa contendrá los mapeos de
los identificadores de usuario (uid) y los identificadores de grupo (gid), a los identificadores SID de samba/Windows
NT.

Notemos que existen unos parámetros adicionales, el -m indica que cree un nuevo home , el numero 512 indica el
grupo principal para la cuenta Windows que agregaremos con el parámetro –a en este caso será administrator, así
este nuevo usuario pertenecerá automáticamente al grupo Administradores del dominio que es al que corresponde
el GID 512, y creara un home para dicho usuario.

42
Configurando reconocimiento de bases de datos

Para poder que nuestro sistema operativo utilice las cuentas de usuarios y grupo consignadas en el
Directorio LDAP necesitamos modificar un archivo llamado nsswitch.conf, en este archivo se
configuran las bases de datos de búsqueda del sistema y sistema de conmutación del servicio de
nombres.

Notemos que tiene dos almacenes donde debería buscar información como password de los usuarios,
grupos, nombres de equipo, entre otros, en esta oportunidad le diremos que busque en los archivos
locales del sistemas como /etc/passwod o /etc/shadow, /etc/groups, pero adicionalmente estamos
configurando los datos del directorio LDAP, o sea que terminando de configurar este archivo el sistema
podrá reconocer los grupos y usuarios que se crearon cuando poblamos del directorio.

43
Configurando reconocimiento de bases de datos-información de usuarios (modo grafico)

Una opción es modificar el nsswitch manualmente, otra utilidad que nos permite modificar estos
parámetros en modo grafico es el autconfig y el authconfig-gtk, para ello digitamos en la consola
authconfig-gtk y nos abrirá un cuadro como el de la figura donde: Para la información de los usuarios,
diremos que habilite el soporte para el ldap y posteriormente diremos cual es nuestro servidor ldap, en
este caso es nuestro propio equipo.

44
Configurando reconocimiento de bases de datos-información de autenticación (modo grafico)

Para la autenticación de los usuarios escogemos la pestaña autenticación seleccionamos habilitar el


soporte LDAP y posteriormente especificamos cual es el servidor ldap a utilizar en nuestro caso será
nuestra maquina local.

45
Para probar que nuestro sistema reconoce perfectamente los password, los grupos y la demás
información que alberga y que nos interesa buscar en nuestro directorio LDAP, contamos con un
comando llamado getent, este comando lo que hace es tomar la información de las bases de datos
administrativas especificadas en el archivo nsswitch.conf.

Pues bien la forma mas rápida de comprobar que el sistema si esta buscando en el directorio LDAP es
buscar que grupos reconoce el sistema, si al final de la salida del comando nos muestra los grupos
(propios de un PDC) creados en la población de nuestro directorio LDAP por parte del samba, quiere
decir que el sistema quedo satisfactoriamente configurado.

También podríamos probarlo con passwd o shadow

46
47
48