dpkg-reconfigure slapd
para reconfigurar la base de datos LDAP más detalladamente:
falcot.com
».
dpkg-reconfigure slapd
inmediatamente después de instalarlo por primera vez.
$
ldapsearch -x -b dc=falcot,dc=com
# extended LDIF # # LDAPv3 # base <dc=falcot,dc=com> with scope sub # filter: (objectclass=*) # requesting: ALL # # falcot.com dn: dc=falcot,dc=com objectClass: top objectClass: dcObject objectClass: organization o: Falcot Corp dc: falcot # admin, falcot.com dn: cn=admin,dc=falcot,dc=com objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator # search result search: 2 result: 0 Success # numResponses: 3 # numEntries: 2
/etc/passwd
, /etc/group
, /etc/services
, /etc/hosts
, etc.), convetir estos datos y agregarlos en la base de datos LDAP.
/etc/migrationtools/migrate_common.ph
; debe activar las opciones IGNORE_UID_BELOW
y IGNORE_GID_BELOW
(descomentarlas es suficiente) y debe actualizar DEFAULT_MAIL_DOMAIN
/DEFAULT_BASE
.
migrate_all_online.sh
, como sigue:
#
cd /usr/share/migrationtools
#
LDAPADD="/usr/bin/ldapadd -c" ETC_ALIASES=/dev/null ./migrate_all_online.sh
migrate_all_online.sh
realizará unas pocas preguntas sobre la base de datos LDAP a la que migrará los datos. La Tabla 11.1 resume las respuestas dadas en el caso de uso de Falcot.
Tabla 11.1. Respuestas a las preguntas del script migrate_all_online.sh
Pregunta | Respuesta |
---|---|
Contexto de nombre X.500 | dc=falcot,dc=com |
Nombre del servidor LDAP | localhost |
Administrador del DN | cn=admin,dc=falcot,dc=com |
Credenciales Bind | la contraseña de administración |
Crear DUAConfigProfile | no |
/etc/aliases
, ya que el esquema estándar provisto por Debian no incluye la estructura que utiliza este script para describir alias de correo. Si quisiéramos integrar estos datos en el directorio, debe agregar el archivo /etc/ldap/schema/misc.schema
al esquema estándar.
ldapadd
tiene una opción -c
; esta opción solicita que no se detenga el proceso en caso de errores. Es necesario utilizar esta opción debido a que la conversión del archivo /etc/services
genera unos pocos errores que puede ignorar sin problemas.
Tabla 11.2. Configuración del paquete lbnss-ldap
Pregunta | Respuesta |
---|---|
Identificar de recurso uniforme (URI) del servidor LDAP | ldap://ldap.falcot.com |
Nombre distinguido de la base de búsqueda | dc=falcot,dc=com |
Versión LDAP a utilizar | 3 |
¿La base de datos LDAP requiere inicio de sesión? | no |
Permisos LDAP especiales para root | si |
Modifique el archivo de configuración para que sólo pueda ser leído/escrito por su dueño | no |
cuenta LDAP para root | cn=admin,dc=falcot,dc=com |
contraseña de la cuenta root de LDAP | la contraseña de administración |
/etc/nsswitch.conf
para configurar que NSS utilice el módulo ldap
recién instalado.
Ejemplo 11.26. El archivo /etc/nsswitch.conf
# /etc/nsswitch.conf # # Ejemplo de configuración de la funcionalidad de GNU Name Service # Switch. Si están instalados los paquetes «glibc-doc» e «info», # intente «info libc "Name Service Switch"» para más información # sobre este archivo. passwd: ldap compat group: ldap compat shadow: ldap compat hosts: files dns ldap networks: ldap files protocols: ldap db files services: ldap db files ethers: ldap db files rpc: ldap db files netgroup: ldap files
ldap
antes que los demás para que, de esa forma, sea consultado primero. La excepción notable es el servicio hosts
ya que para contactar el servidor LDAP necesita una consulta de DNS primero (para resolver ldap.falcot.com
). Sin esta excepción, una consulta de nombres intentaría consultar al servidor LDAP; esto dispararía una resolución de nombres para el servidor LDAP, y así sucesivamente en un ciclo infinito.
files
), puede configurar los servicios con la siguiente sintaxis:
servicio: ldap [NOTFOUND=return] files
.
/etc/environment
y /etc/default/locale
) que permitirá a las aplicaciones realizar las autenticaciones necesarias contra la base de datos LDAP.
Tabla 11.3. Configuración de libpam-ldap
Pregunta | Respuesta |
---|---|
¿Permitir a la cuenta de administración LDAP comportarse como root local? | Sí. Esto permite utilizar el programa passwd típico para modificar las contraseñas almacenadas en la base de datos LDAP. |
¿La base de datos LDAP requiere inicio de sesión? | no |
cuenta LDAP para root | cn=admin,dc=falcot,dc=com |
contraseña de la cuenta root de LDAP | la contraseña de administración de la base de datos LDAP |
Algoritmo local de cifrado para las contraseñas | crypt |
/etc/pam.d/common-auth
, /etc/pam.d/common-password
y /etc/pam.d/common-account
. Este mecanismo utiliza la herramienta dedicada pam-auth-update
(provista por el paquete libpam-runtime). El administrador también puede utilizar esta herramienta si desea activar o desactivar módulos PAM.
./build-key-server ldap.falcot.com
deberá responder unas pocas preguntas mundanas (ubicación, nombre de la organización, etc.). La respuesta a la pregunta por el «nombre común» («common name») debe ser el nombre de equipo completamente calificado del servidor LDAP; en nuestro caso: ldap.falcot.com
.
keys/ldap.falcot.com.crt
; la llave privada correspondiente es almacenada en keys/ldap.falcot.com.key
.
openldap
, pueda leer el archivo privado:
#
adduser openldap ssl-cert
Adding user `openldap' to group `ssl-cert' ... Adding user openldap to group ssl-cert Done. #
mv keys/ldap.falcot.com.key /etc/ssl/private/ldap.falcot.com.key
#
chown root:ssl-cert /etc/ssl/private/ldap.falcot.com.key
#
chmod 0640 /etc/ssl/private/ldap.falcot.com.key
#
mv newcert.pem /etc/ssl/certs/ldap.falcot.com.pem
slapd
que utilice estas llaves para el cifrado. La configuración del servidor LDAP es gestionada de forma dinámica: puede actualizar la configuración con operaciones LDAP normales en la jerarquía de objetos cn=config
y el servidor actualizará /etc/ldap/slapd.d
en tiempo real para que la configuración sea persistente. Por lo tanto, ldapmodify
es la herramienta correcta para actualizar la configuración:
Ejemplo 11.27. Configuración de slapd
para cifrado
#
cat >ssl.ldif <<END dn: cn=config changetype: modify add: olcTLSCertificateFile olcTLSCertificateFile: /etc/ssl/certs/ldap.falcot.com.pem - add: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ssl/private/ldap.falcot.com.key - END
#
ldapmodify -Y EXTERNAL -H ldapi:/// -f ssl.ldif
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "cn=config"
SLAPD_SERVICES
en el archivo /etc/default/slapd
. Para esta más seguros desactivaremos LDAP inseguro completamente.
Ejemplo 11.28. El archivo /etc/default/slapd
# Ubicación predeterminada del archivo slapd.conf o el directorio cn=config # de slapd.d. Si está vacío, utilice el valor predeterminado durante la # compilación (/etc/ldap/slapd.d con /etc/ldap/slapd.conf como respaldo). SLAPD_CONF= # Cuenta del sistema bajo la que se ejecutará el servidor slapd. Si está # vacío, el servidor ejecutará como root. SLAPD_USER="openldap" # Grupo del sistema bajo el que se ejecutará el servidor slapd. Si está # vacío, el servidor ejecutará en el grupo primario de su usuario. SLAPD_GROUP="openldap" # Ruta al archivo de pid del servidor slapd. Si no está definido, el script # init.d intentará adivinarlo basándose en $SLAPD_CONF # (/etc/ldap/slapd.conf de forma predeterminada) SLAPD_PIDFILE= # slapd normalmente provee sólo ldap en todos los puertos TCP 389. slapd # también puede atender pedidos en el puerto TCP 636 (ldaps) y a través # de zócalos unix. # Ejemplo de uso: # SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:/// ldapi:///" SLAPD_SERVICES="ldaps:/// ldapi:///" # Si está definida SLAPD_NO_START, el script de inicialización no iniciará # o reiniciará slapd (podrá detenerlo, sin embargo). Descomente esta línea # si está iniciando slapd por otros medios o no desea que inicie slapd # durante el arranque del equipo. #SLAPD_NO_START=1 # Si SLAPD_SENTINEL_FILE está configurado como la ruta a un archivo y dicho # archivo exist, el script de inicialización no iniciará o reiniciará slapd # (podrá detenerlo, sin embargo). Utilícelo para desactivar temporalmente # el inicio de slapd (por ejemplo, mientras realiza mantenimiento o con un # sistema de administración de configuraciones) cuando no desee editar # un archivo de configuración. SLAPD_SENTINEL_FILE=/etc/ldap/noslapd # Para autenticación Kerberos (a través de SASL), slapd utiliza el archivo # keytab del sistema (/etc/krb5.keytab) de forma predeterminada. Descomente # esta línea y cambie la ruta si desea utilizar otro archivo keytab. #export KRB5_KTNAME=/etc/krb5.keytab # Opciones adicionales para slapd SLAPD_OPTIONS=""
ldaps://
.
/usr/local/share/ca-certificates
y ejecutando update-ca-certificates
.
#
cp keys/ca.crt /usr/local/share/ca-certificates/falcot.crt
#
update-ca-certificates
Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d.... Adding debian:falcot.pem done. done.
/etc/ldap/ldap.conf
. Esto le ahorrará bastante tiempo.
Ejemplo 11.29. El archivo /etc/ldap/ldap.conf
# # Valores predeterminados para LDAP # # Revise ldap.conf(5) para más detalles # Este archivo debe poder ser leído (pero no escrito) por cualquiera. BASE dc=falcot,dc=com URI ldaps://ldap.falcot.com #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never # Certificados TLC (necesarios para GnuTLS) TLS_CACERT /etc/ssl/certs/ca-certificates.crt