Next: , Previous: , Up: Servicios   [Contents][Index]


11.10.19 Servicios LDAP

Authentication against LDAP with nslcd

El módulo (gnu services authentication) proporciona el tipo nslcd-service-type, que puede usarse para la identificación a través de un servidor LDAP. Además de la configuración del servicio en sí, puede desear añadir ldap como servicio de nombres en el selector de servicios de nombres (NSS). See Selector de servicios de nombres para información detallada.

Aquí se encuentra una declaración simple de sistema operativo con la configuración predeterminada de nslcd-service-type y una configuración del selector de servicios de nombre que consulta en último lugar al servicios de nombres ldap:

(use-service-modules authentication)
(use-modules (gnu system nss))
...
(operating-system
  ...
  (services
    (cons*
      (service nslcd-service-type)
      (service dhcp-client-service-type)
      %base-services))
  (name-service-switch
   (let ((services (list (name-service (name "db"))
                         (name-service (name "files"))
                         (name-service (name "ldap")))))
     (name-service-switch
      (inherit %mdns-host-lookup-nss)
      (password services)
      (shadow   services)
      (group    services)
      (netgroup services)
      (gshadow  services)))))

Los campos disponibles de nslcd-configuration son:

parámetro de nslcd-configuration: package nss-pam-ldapd

El paquete nss-pam-ldapd usado.

parámetro de nslcd-configuration: maybe-number threads

El número de hilos a iniciar que pueden gestionar peticiones y realizar consultas en LDAP. Cada hilo abre una conexión separada al servidor LDAP. Se inician 5 hilos de manera predeterminada.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: string uid

Especifica el id de usuaria con el que debe ejecutarse el daemon.

El valor predeterminado es ‘"nslcd"’.

parámetro de nslcd-configuration: string gid

Especifica el id de grupo con el que debe ejecutarse el daemon.

El valor predeterminado es ‘"nslcd"’.

parámetro de nslcd-configuration: opción-registro log

This option controls the way logging is done via a list containing SCHEME and LEVEL. The SCHEME argument may either be the symbols ‘none’ or ‘syslog’, or an absolute file name. The LEVEL argument is optional and specifies the log level. The log level may be one of the following symbols: ‘crit’, ‘error’, ‘warning’, ‘notice’, ‘info’ or ‘debug’. All messages with the specified log level or higher are logged.

El valor predeterminado es ‘'("/var/log/nslcd" info)’.

parámetro de nslcd-configuration: lista uri

La lista de URI de servidores LDAP. Normalmente, únicamente se usará el primer servidor y los siguientes se usan en caso de fallo.

Defaults to ‘'("ldap://localhost:389/")’.

parámetro de nslcd-configuration: maybe-string ldap-version

La versión del protocolo LDAP usada. El valor predeterminado usa la versión máxima implementada por la biblioteca LDAP.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string binddn

Especifica el nombre distinguido con el que enlazarse en el servidor de directorio para las búsquedas. El valor predeterminado se enlaza de forma anónima.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string bindpw

Especifica las credenciales usadas para el enlace. Esta opción tiene utilidad únicamente cuando se usa con binddn.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string rootpwmoddn

Especifica el nombre distinguido usado cuando la usuaria root intenta modificar la contraseña de una usuaria mediante el módulo de PAM.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string rootpwmodpw

Especifica las credenciales con las que enlazarse si la usuaria root intenta cambiar la contraseña de una usuaria. Esta opción tiene utilidad únicamente cuando se usa con rootpwmoddn.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string sasl-mech

Especifica el mecanismo de SASL usado cuando se realice la identificación con SASL.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string sasl-realm

Especifica el dominio de SASL usado cuando se realice la identificación con SASL.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string sasl-authcid

Especifica la identidad de verificación usada cuando se realice la identificación con SASL.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string sasl-authzid

Especifica la identidad de autorización usada cuando se realice la identificación con SASL.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-boolean sasl-canonicalize?

Determina si el nombre de máquina del servidor LDAP debe transformarse a su forma canónica. Si se activa, la librería LDAP realizará una búsqueda inversa de nombre de máquina. De manera predeterminada, se delega en la biblioteca la decisión de realizar esta comprobación o no.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string krb5-ccname

Establece el nombre para la caché de credenciales GSS-API de Kerberos.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: string base

El directorio de búsqueda base.

El valor predeterminado es ‘"dc=example,dc=com"’.

parámetro de nslcd-configuration: opción-de-ámbito scope

Especifica el ámbito de búsqueda (subtree, oneleve, base o children). El ámbito predeterminado es subtree; el ámbito base casi nunca es útil para búsquedas del servicio de nombres; el ámbito children no está implementado en todos los servidores.

El valor predeterminado es ‘'(subtree)’.

parámetro de nslcd-configuration: maybe-deref-option deref

Especifica la política para seguir las referencias de los alias. La política predeterminada es nunca seguir las referencias de los alias.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-boolean referrals

Especifica si el seguimiento automático de referencias debe activarse. El seguimiento de referencias es comportamiento predeterminado.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: lista-asociación-entrada maps

Esta opción permite que se busquen atributos personalizados en vez de los atributos predeterminados de RFC 2307. Es una lista de asociaciones, de las que cada una consiste en el nombre de la asociación, el atributo de RFC 2307 al que corresponde y la expresión de búsqueda del atributo en la forma que esté disponible en el directorio.

El valor predeterminado es ‘'()’.

parámetro de nslcd-configuration: lista-asociación-entrada filters

Una lista de filtros que consiste en el nombre de una asociación a la que se aplica el filtro y una expresión de filtrado de búsqueda de LDAP.

El valor predeterminado es ‘'()’.

parámetro de nslcd-configuration: maybe-number bind-timelimit

Especifica el tiempo límite usado en segundos durante la conexión al servidor de directorio. El valor predeterminado son 10 segundos.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-number timelimit

Especifica el tiempo límite (en segundos) durante el que se esperará una respuesta del servidor LDAP. Un valor de cero, por omisión, hace que se espere de manera indefinida hasta que las búsquedas se completen.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-number idle-timelimit

Especifica el periodo de inactividad (en segundos) tras el cual se cerrará la conexión con el servidor LDAP. El valor predeterminado no cierra las conexiones por inactividad.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-number reconnect-sleeptime

Especifica en número de segundos que se dormirá cuando falle la conexión a todos los servidores LDAP. De manera predeterminada se espera un segundo entre el primer fallo y el primer reintento.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-number reconnect-retrytime

Especifica el tiempo tras el cual el servidor LDAP se considera no disponible de manera permanente. Una vez se alcance este tiempo, los reintentos se realizarán una vez en cada periodo de tiempo igual al especificado. El valor predeterminado es 10 segundos.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-ssl-option ssl

Determina si se usa SSL/TLS o no (el comportamiento predeterminado es no hacerlo). Si se especifica ’start-tls, se usa StartTLS en vez de la transmisión del protocolo LDAP en crudo sobre SSL.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-tls-reqcert-option tls-reqcert

Especifica las comprobaciones que se deben realizar con un certificado proporcionado por el servidor. El significado de los valores se describe en la página de manual de ldap.conf(5).

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string tls-cacertdir

Especifica el directorio que contiene los certificados X.509 para la identificación de pares. Este parámetro se ignora si se usa GnuTLS.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string tls-cacertfile

Especifica la ruta al certificado X.509 para la identificación de pares.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string tls-randfile

Especifica la ruta de la fuente de entropía. Este parámetro se ignora si se usa GnuTLS.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string tls-ciphers

Especifica como una cadena los algoritmos de cifrado usados para TLS.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string tls-cert

Especifica la ruta al archivo que contiene el certificado local para la identificación de clientes con TLS.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string tls-key

Especifica la ruta al archivo que contiene la clave privada para la identificación de clientes con TLS.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-number pagesize

Proporcione un valor superior a 0 para solicitar al servidor LDAP que proporcione los resultados divididos en páginas de acuerdo con el RFC2696. El valor predeterminado (0) no solicita resultados divididos en páginas.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-ignore-users-option nss-initgroups-ignoreusers

Esta opción previene las búsquedas de pertenencia a grupos a través de LDAP sobre las usuarias especificadas. De manera alternativa, se puede usar el valor ’all-local. Con dicho valor nslcd construye al inicio una lista completa de usuarias que no se encuentren en LDAP.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-number nss-min-uid

Esta opción hace que se ignoren las usuarias de LDAP con un identificador numérico inferior al valor especificado.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-number nss-uid-offset

Esta opción especifica un desplazamiento que se añade a todos los identificadores numéricos de usuaria de LDAP. Puede usarse para evitar colisiones de identificadores con usuarias locales.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-number nss-gid-offset

Esta opción especifica un desplazamiento que se añade a todos los identificadores numéricos de grupos de LDAP. Puede usarse para evitar colisiones de identificadores con grupos locales.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-boolean nss-nested-groups

Cuando se activa esta opción, un grupo puede contener como atributo la pertenencia a otro grupo. Los miembros de grupos anidados se devuelven en el grupo superior y los grupos superiores se devuelven cuando se busquen los grupos de una usuaria específica. El valor predeterminado determina que no se realicen búsquedas adicionales para grupos anidados.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-boolean nss-getgrent-skipmembers

Cuando se activa esta opción, la lista de miembros de un grupo no se obtiene en las búsquedas de grupos. Las búsquedas que busquen los grupos de los que una usuaria es miembro continuarán funcionando de manera que probablemente a la usuaria se le asignen los grupos correctos durante el ingreso al sistema.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-boolean nss-disable-enumeration

Cuando se activa esta opción, las funciones que provocan la carga de todas las entradas usuaria/grupo del directorio no tendrán éxito al realizarlo. Esto puede reducir de forma dramática la carga del servidor LDAP cuando existe un gran número de usuarias y/o grupos. Esta opción no se recomienda para la mayoría de las configuraciones.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string validnames

Esta opción puede usarse para especificar cómo se verifican en el sistema los nombres de usuaria y grupo. Este patrón se usa para comprobar todos los nombres de usuarias y grupos que se soliciten y proporcionen a través de LDAP.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-boolean ignorecase

Especifica si se realizarán las búsquedas sin diferenciar mayúsculas y minúsculas o no. Su activación puede abrir puntos vulnerables que permitan la omisión de las comprobaciones de autorización e introducir vulnerabilidades que permitan el envenenamiento de la caché de nscd, lo que puede provocar la denegación del servicio.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-boolean pam-authc-ppolicy

Esta opción determina si los controles de la política de contraseñas se solicitan y manejan desde el servidor LDAP cuando se realice la identificación de usuarias.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string pam-authc-search

De manera predeterminada nslcd realiza una búsqueda LDAP con las credenciales de la usuaria tras la orden BIND (identificación) para asegurarse de que la opción BIND fue satisfactoria. La búsqueda predeterminada es una simple comprobación de la existencia del DN de la usuaria. Se puede especificar un filtro de búsqueda que se usará en vez de dicha búsqueda. Debe devolver al menos una entrada.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string pam-authz-search

Esta opción permite la configuración detallada de las comprobaciones de autorización que deben realizarse. El filtro de búsqueda especificado es ejecutado, y si cualquier entrada corresponde se permite el acceso, el cual se deniega en caso contrario.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: maybe-string pam-password-prohibit-message

Si se proporciona esta opción, se denegará la modificación de contraseñas a través de pam_ldap y en vez de ello el mensaje especificado se presentará a la usuaria. El mensaje puede usarse para redirigir a la usuaria a un medio alternativo para el cambio de su contraseña.

El valor predeterminado es ‘disabled’.

parámetro de nslcd-configuration: lista pam-services

Lista de nombres de servicio de PAM para los que la identificación de LDAP debería ser suficiente.

El valor predeterminado es ‘'()’.

LDAP Directory Server

The (gnu services ldap) module provides the directory-server-service-type, which can be used to create and launch an LDAP server instance.

Here is an example configuration of the directory-server-service-type:

(use-service-modules ldap)

...
(operating-system
  ...
  (services
    (cons
      (service directory-server-service-type
               (directory-server-instance-configuration
                (slapd
                 (slapd-configuration
                  (root-password "{PBKDF2_SHA256}AAAgAG…ABSOLUTELYSECRET")))))
      %base-services)))

The root password should be generated with the pwdhash utility that is provided by the 389-ds-base package.

Note that changes to the directory server configuration will not be applied to existing instances. You will need to back up and restore server data manually. Only new directory server instances will be created upon system reconfiguration.

Data Type: directory-server-instance-configuration

Available directory-server-instance-configuration fields are:

package (default: 389-ds-base) (type: file-like)

The 389-ds-base package.

config-version (default: 2) (type: number)

Sets the format version of the configuration file. To use the INF file with dscreate, this parameter must be 2.

full-machine-name (default: "localhost") (type: string)

Sets the fully qualified hostname (FQDN) of this system.

selinux (default: #false) (type: boolean)

Enables SELinux detection and integration during the installation of this instance. If set to #true, dscreate auto-detects whether SELinux is enabled.

strict-host-checking (default: #true) (type: boolean)

Sets whether the server verifies the forward and reverse record set in the full-machine-name parameter. When installing this instance with GSSAPI authentication behind a load balancer, set this parameter to #false.

systemd (default: #false) (type: boolean)

Enables systemd platform features. If set to #true, dscreate auto-detects whether systemd is installed.

slapd (type: slapd-configuration)

Configuration of slapd.

Data Type: slapd-configuration

Available slapd-configuration fields are:

instance-name (default: "localhost") (type: string)

Sets the name of the instance. You can refer to this value in other parameters of this INF file using the {instance_name} variable. Note that this name cannot be changed after the installation!

user (default: "dirsrv") (type: string)

Sets the user name the ns-slapd process will use after the service started.

group (default: "dirsrv") (type: string)

Sets the group name the ns-slapd process will use after the service started.

port (default: 389) (type: number)

Sets the TCP port the instance uses for LDAP connections.

secure-port (default: 636) (type: number)

Sets the TCP port the instance uses for TLS-secured LDAP connections (LDAPS).

root-dn (default: "cn=Directory Manager") (type: string)

Sets the Distinquished Name (DN) of the administrator account for this instance.

root-password (default: "{invalid}YOU-SHOULD-CHANGE-THIS") (type: string)

Sets the password of the account specified in the root-dn parameter. You can either set this parameter to a plain text password dscreate hashes during the installation or to a "{algorithm}hash" string generated by the pwdhash utility. Note that setting a plain text password can be a security risk if unprivileged users can read this INF file!

self-sign-cert (default: #true) (type: boolean)

Sets whether the setup creates a self-signed certificate and enables TLS encryption during the installation. This is not suitable for production, but it enables administrators to use TLS right after the installation. You can replace the self-signed certificate with a certificate issued by a certificate authority.

self-sign-cert-valid-months (default: 24) (type: number)

Set the number of months the issued self-signed certificate will be valid.

backup-dir (default: "/var/lib/dirsrv/slapd-{instance_name}/bak") (type: string)

Set the backup directory of the instance.

cert-dir (default: "/etc/dirsrv/slapd-{instance_name}") (type: string)

Sets the directory of the instance’s Network Security Services (NSS) database.

config-dir (default: "/etc/dirsrv/slapd-{instance_name}") (type: string)

Sets the configuration directory of the instance.

db-dir (default: "/var/lib/dirsrv/slapd-{instance_name}/db") (type: string)

Sets the database directory of the instance.

initconfig-dir (default: "/etc/dirsrv/registry") (type: string)

Sets the directory of the operating system’s rc configuration directory.

ldif-dir (default: "/var/lib/dirsrv/slapd-{instance_name}/ldif") (type: string)

Sets the LDIF export and import directory of the instance.

lock-dir (default: "/var/lock/dirsrv/slapd-{instance_name}") (type: string)

Sets the lock directory of the instance.

log-dir (default: "/var/log/dirsrv/slapd-{instance_name}") (type: string)

Sets the log directory of the instance.

run-dir (default: "/run/dirsrv") (type: string)

Sets PID directory of the instance.

schema-dir (default: "/etc/dirsrv/slapd-{instance_name}/schema") (type: string)

Sets schema directory of the instance.

tmp-dir (default: "/tmp") (type: string)

Sets the temporary directory of the instance.

backend-userroot (type: backend-userroot-configuration)

Configuration of the userroot backend.

Data Type: backend-userroot-configuration

Available backend-userroot-configuration fields are:

create-suffix-entry? (default: #false) (type: boolean)

Set this parameter to #true to create a generic root node entry for the suffix in the database.

require-index? (default: #false) (type: boolean)

Set this parameter to #true to refuse unindexed searches in this database.

sample-entries (default: "no") (type: string)

Set this parameter to "yes" to add latest version of sample entries to this database. Or, use "001003006" to use the 1.3.6 version sample entries. Use this option, for example, to create a database for testing purposes.

suffix (type: maybe-string)

Sets the root suffix stored in this database. If you do not set the suffix attribute the install process will not create the backend/suffix. You can also create multiple backends/suffixes by duplicating this section.


Next: Servicios Web, Previous: Servicios Kerberos, Up: Servicios   [Contents][Index]