Hay tres áreas a considerar para la configuración de OpenLDAP: el servidor (slapd.conf), el cliente (ldap.conf) y el directorio (schema). Esta sección configurará los requerimientos de un servidor SSL así como la autentificación de un cliente.
Nota | |
---|---|
Un ejemplo completo del archivo de configuración del demonio slapd se encuentra en el Apéndice P, Archivo de configuración /etc/ldap/slapd.conf |
Se ha de añadir las siguientes líneas al archivo de configuración de slapd, slapd.conf.
Ejemplo 4.9. Líneas de configuración para un servidor SSL/TLS
# Certificado firmado de una entidad certificadora y # el certificado del servidor TLSCipherSuite HIGH:MEDIUM:+SSLv2 TLSCACertificateFile /etc/ldap/ssl/cacert.pem TLSCertificateFile /etc/ldap/ssl/certs/servidorcert.pem TLSCertificateKeyFile /etc/ldap/ssl/private/servidorkey.pem # Si desea que el cliente necesite autentificación, # descomente la siguiente línea TLSVerifyClient demand # ... si no, descomente esta otra # TLSVerifyClient never |
El archivo de configuración /etc/ldap/ldap.conf configura las opciones por defecto para los clientes LDAP.
Si se necesitan valores específicos para los usuarios, se puede crear el archivo ldaprc o .ldaprc en el home del usuario o en el directorio actual, lo que sobreescribirá la configuración global de LDAP.
Si se requiere la autentificación de los clientes, se necesita añadir el certificado y la llave privada del cliente al archivo ldaprc o .ldaprc.
La siguiente tabla refleja las directivas referentes a la parte de configuración del cliente LDAP. Las ocurrencias de las palabras específicas para usuarios quieren decir que las directivas a las que afectan sólo son aplicadas en la configuración del archivo ldaprc o .ldaprc, no son directivas globales de LDAP.
Tabla 4.1. Directivas de configuración de clientes LDAP
Directiva | Valor | Descripción |
---|---|---|
BASE | dn | Base por defecto (Default Base - DN) a utilizar cuando se realizan operaciones ldap |
BINDDN | dn | Base por defecto a la que cambiar cuando se realizan operaciones ldap específicas para usuarios |
HOST | nombre[:puerto] | Nombre de los servidores LDAP a los que conectarse (separados por espacios) |
PORT | número | Puerto por defecto utilizado en las conexiones a un servidor LDAP. 636 = SSL |
SIZELIMIT | número | Límite de resultados devueltos en una búsqueda (0 = sin límite) |
TIMELIMIT | número | Límite en el tiempo de búsqueda (0 = sin límite) |
TLS | nivel | Si el usuario ha de utilizar TLS por defecto ( never | hard ), el uso de esta directiva está desaconsejado; es incompatible con la petición StartTLS de LDAPv3 |
TLS_CACERT | nombre de un archivo | Especifica el archivo que contiene todos los certificados pertenecientes a entidades certificadoras que el cliente reconoce |
TLS_CACERTDIR | directorio | Usado si falla TLS_CACERT |
TLS_REQCERT | nivel | Especifica que tipo de comprobación se ha de realizar a un certificado de servidor ( never | allow | try | demand,hard ) |
TLS_CERT | nombre de un archivo | Autentificación de clientes: especifica el certificado del cliente específico del usuario |
TLS_KEY | nombre de un archivo | Autentificación de clientes: especifica la llave privada, para la entrada TLS_CERT, específico del usuario |
A continuación se muestra un ejemplo de configuración de un archivo ldap.conf:
Nota | |
---|---|
En el Apéndice Q, Archivo de configuración /etc/ldap/ldap.conf se encuentra un ejemplo de configuración más extenso de este archivo. |
Ejemplo 4.10. Ejemplo de configuración de un archivo ldap.conf
# # Configuración global de LDAP # # Lea ldap.conf(5) para más detalles # Este archivo se ha de poder leer por todo el mundo, pero no escribir. HOST miservidor.pt PORT 636 TLS_CACERT /etc/ldap/ssl/certs/cacert.pem TLS_REQCERT demand |
Esta configuración hará que los clientes se conecten a ldaps://miservidor.pt:636 sin necesidad de especificar el host ni el puerto en los comandos del cliente.
El archivo ldaprc se utiliza para sobreescribir las opciones globales de LDAP y para establecer el el certificado y la llave privada utilizados para la autentificación del cliente.
Ejemplo 4.11. Ejemplo de configuración de un archivo ldaprc (en el home del usuario o en el directorio actual)
# # Configuraciones de usuario específicas para LDAP # # Sobreescribe la directiva global (si se ha establecido) TLS_REQCERT demand # Autentificación del cliente TLS_CERT /home/ldap-user/ssl/certs/client.cert.pem TLS_KEY /home/ldap-user/ssl/certs/keys/client.key.pem |
Esta configuración mínima es todo lo que se necesita para la autentificación de un cliente.
En el archivo slapd.conf, los esquemas (schema) aparecen cerca de la parte superior del archivo. A continuación se muestra un ejemplo de algunos de los esquemas que se pueden establecer.
Nota | |
---|---|
En el directorio /etc/ldap/schema se encuentran varias definiciones de esquemas para LDAP. |
Existen varios grados de configuración SSL que se pueden establecer. La Tabla 4.2, “Resumen de configuración SSL en LDAP” resume las directivas y los valores que estas han de tomar para realizar desde una configuración básica (“Básica”) a una muy estricta (“La mejor”) en el servidor en cuanto a conexiones SSL se refiere.
Tabla 4.2. Resumen de configuración SSL en LDAP
Archivo | Directiva | Básica | OK | Buena | Mejor | La mejor |
---|---|---|---|---|---|---|
slapd.conf | TLSCACertificateFile o TLSCACertificatePath | x | x | x | x | x |
TLSCertificateFile | x | x | x | x | x | |
TLSCertificateKeyFile | x | x | x | x | x | |
TLSCipherSuite | - | x | x | x | x | |
TLSVerifyClient | never | never | allow | try | demand | |
ldap.conf | TLS_CACERT | - | x | x | x | x |
TLS_CACERTDIR (opcional) | - | x | x | x | x | |
TLS_REQCERT | never | never | allow | try | demand | |
ldaprc o .ldaprc | TLS_CERT | - | - | - | x | x |
TLS_KEY | - | - | - | x | x |
LEYENDA:
-: no se usa
x: se usa y se ha de asignar un nombre de archivo o un directorio
Note: El valor por defecto de TLSVerifyClient es “never” y el valor por defecto de TLS_REQCERT es “demand”