Necesitamos configurar el servidor OpenLDAP para que actue como una base de datos SAM. Por tanto, para conseguir dicho objetivo, debemos de hacer posible que:
OpenLDAP acepte la modificación al esquema de Samba.
el servidor LDAP ejecute como base dc=admon.com
se añadan las entradas mínimas para empezar a usarlo.
Para conseguir los objetivos anteriores, definiremos la estructura del directorio según el siguiente DIT (LDAP Directory Information Tree).
dc=admon, dc=com | ---- ou = Users : cuentas de usuario tanto para linux como para Windows | ---- ou = Computers : cuentas de máquina para los sistemas Windows | ---- ou = Groups : cuentas de grupos tanto para linux como para Windows | ---- ou = DSA : cuentas espciales de sistema
Esta estructura es conforme con las recomendaciones del RFC 2307bis. Por tanto, la conjuncion de Samba y OpenLDAP nos permitirá almacenar la siguiente información:
Cuentas de usuario Microsoft Windows utilizando la clase de objeto sambaSAMAccount (samba.schema)
Cuentas de máquina Microsoft Windows utilizando la clase de objeto sambaSAMAccount.
Cuentas de usuario Unix utilizando las clases de objeto posixAccount y shadowAccount (nis.schema)
Grupos de usuarios utilizando las clases de objetos posixGroup y sambaGroupMapping.
Cuentas de seguridad utilizadas por software de clientes (Samba y Linux) que utilizan la clase de objeto simpleSecurityObject (core.schema)
Los ficheros de configuración del servidor OpenLDAP se encuentran
bajo el directorio /etc/openldap
. El fichero de
configuración principal del servidor se denomina
/etc/openldap/slapd.conf
. El fichero de configuración
de las herramientas clientes se llama /etc/openldap/ldap.conf, y los
diferentes ficheros que configuran el esquema que ofrece el servicio de
directorio se encuentran bajo el subdirectorio schema.
El fichero base de configuración sobre el que vamos a trabajar a lo largo del libro es el siguiente:
# Fichero /etc/openldap/slapd.conf # # Diferentes ficheros que definen partes del esquema # include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/samba.schema # Ficheros que mantienen el pid del proceso servidor # y los argumentos pasados # pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args # Formato de la base de datos que almacenará el directorio # database ldbm # Raíz(sufijo) del servicio de directorio # dn y password del administrador del directorio # suffix "dc=admon,dc=com" rootdn "cn=admin,dc=admon,dc=com" rootpw {SSHA}86kTavd9Dw3FAz6qzWTrCOKX/c0Qe+UV # Ubicación de los datos físicos del servicio de directorio # directory /var/lib/ldap # Indices # index objectClass eq index cn pres,sub,eq index sn pres,sub,eq index uid pres,sub,eq index displayName pres,sub,eq index uidNumber eq index gidNumber eq index memberUID eq index sambaSID eq index sambaPrimaryGroupSID eq index sambaDomainName eq index default sub
En el fichero de configuración del servidor OpenLDAP se aprecia la
inclusión de un fichero de configuración del esquema que nos va a permitir
definir los atributos necesarios para poder dar soporte a los objetos que
requiere un cliente Windows. El fichero /etc/openldap/schema/samba.schema
viene en el paquete Samba. Por tanto habrá que copiarlo de la ubicación
/usr/share/doc/samba-3.0.10/LDAP/samba.schema
al
directorio /etc/openldap/schema
.
Una vez definido el fichero de configuración de OpenLDAP y el esquema que va a soportar, el siguiente paso sería rellenar el directorio con la estructura básica que queremos implementar. Para ello sería necesario obtener el fichero en formato LDIF. Si utilizamos las herramientas comentadas anteriormente de IDEALX, existe un comando (smbldap-populate) que nos permite crear toda esa infraestructura en el servidor LDAP. Lo único necesario sería configurar el fichero /etc/smbldap-tools/smbldap.conf que define algunos parámetros necesarios para dicha operación
# smbldap-populate