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 subtree # 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: 2 # numEntries: 1
/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
#
PERL5LIB="${PERL5LIB}:/etc/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 |
PERL5LIB
. Esto se debe al informe de error de Debian #982666.
/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, se 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.
/etc/nsswitch.conf
luego debe modificarse, así configurar NSS para que use el recién instalado módulo ldap
.
Ejemplo 11.23. El archivo /etc/nsswitch.conf
# /etc/nsswitch.conf # # Un archivo de ejemplo que podría copiarse en /etc/nsswitch.conf; # usa LDAP junto con archivos. # # "hosts:" y "services:" in this file are used only if the # el archivo /etc/netconfig tiene un "-" para nametoaddr_libs de transportes "inet". # las siguientes líneas obvian la entrada " + " en /etc/passwd and /etc/group. passwd: files ldap shadow: files ldap group: files ldap # consulte primero el DNS, lo necesitaremos para resolver el host LDAP. (Si nosotros # no podemos resolverlo, estamos en recursión infinita, porque libldap llama #a gethostbyname(). ¡Cuidado!) hosts: dns ldap # LDAP tiene autoridad nominal para los siguientes maps services: ldap [NOTFOUND=return] files networks: ldap [NOTFOUND=return] files protocols: ldap [NOTFOUND=return] files rpc: ldap [NOTFOUND=return] files ethers: ldap [NOTFOUND=return] files # aún no hay soporte para netmasks, bootparams, publickey. netmasks: files bootparams: files publickey: files automount: files #Estoy bastante seguro de que a nsswitch.conf le consulta directamente por sendmail, # aquí, así que no podemos hacer mucho aquí. En su lugar, usar las reglas # LDAP de bbense ofr sendmail. aliases: files sendmailvars: files # Nota: no hay soporte para grupos de red en Solaris (yet) netgroup: ldap [NOTFOUND=return] 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.
/etc/pam.d/common-auth
, /etc/pam.d/contraseña común
y /etc/pam.d/common-account
archivos. Este mecanismo utiliza la herramienta pam-auth-update
dedicada (proporcionada por el paquetelibpam-runtime). Esta herramienta también la puede ejecutar el administrador en caso de que desee habilitar o deshabilitar los módulos PAM.
./easyrsa build-server-full ldap.falcot.com nopass
, le preguntará sobre el «common name» (nombre común). La respuesta a esa pregunta debe ser el nombre de equipo completamente calificado del servidor LDAP; en nuestro caso: ldap.falcot.com
.
pki/issued/ldap.falcot.com.crt
; la llave privada correspondiente es almacenada en pki/private/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 pki/private/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 pki/issued/ldap.falcot.com.crt /etc/ssl/certs/ldap.falcot.com.pem
#
chown root.root /etc/ssl/certs/ldap.falcot.com.pem
#
chmod 0644 /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.24. Configuración de slapd
para cifrado
#
cat >ssl.ldif <<END dn: cn=config changetype: modify add: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ssl/private/ldap.falcot.com.key - add: olcTLSCertificateFile olcTLSCertificateFile: /etc/ssl/certs/ldap.falcot.com.pem 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" #
systemctl restart slapd.service
#
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config -s base | grep TLS
SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 olcTLSCertificateFile: /etc/ssl/certs/ldap.falcot.com.pem olcTLSCertificateKeyFile: /etc/ssl/certs/ldap.falcot.com.key
SLAPD_SERVICES
en el archivo /etc/default/slapd
. Para esta más seguros desactivaremos LDAP inseguro completamente.
Ejemplo 11.25. El archivo /etc/default/slapd
# Ubicación predeterminada del archivo slapd.conf o slapd.d cn=config directory. If # vacío, use el compilado predeterminado (/etc/ldap/slapd.d con una alternativa a # /etc/ldap/slapd.conf). SLAPD_CONF= # Cuenta del sistema para ejecutar el servidor slapd. Si vacía el servidor # se ejecutará como root . SLAPD_USER= "openldap" # Grupo de sistema en el que ejecutar el servidor slapd. Si está vacío, el servidor # ejecutar en el grupo principal de su usuario. SLAPD_GROUP= "openldap" # Ruta al archivo pid del servidor slapd. Si no, configure el script init.d # intentará averiguarlo desde $SLAPD_CONF (/etc/ldap/slapd.d por # predeterminado ) SLAPD_PIDFILE= # slapd normalmente sirve ldap solo en todos los puertos TCP 389. slapd también puede # servir solicitudes en el puerto TCP 636 (ldaps) y solicitudes a través de conexiones # unix . # Ejemplo de uso: # SLAPD_SERVICES= "ldap://127.0.0.1: 389 / ldaps: ///ldapi:///" SLAPD_SERVICES= " ldaps: /// ldapi:///" # Si se establece SLAPD_NO_START, el script de inicio no se iniciará ni reiniciará # slapd (pero stop seguirá funcionando). Descomente esto si es así # iniciando slapd por otros medios o si no quieres slapd normalmente # comenzó en el arranque . # SLAPD_NO_START=1 # Si SLAPD_SENTINEL_FILE se establece en ruta a un archivo y ese archivo existe, # el script de inicio no se iniciará ni reiniciará slapd (pero stop seguirá # funcionando). Úselo para deshabilitar temporalmente el inicio de slapd (cuando haga # mantenimiento, por ejemplo, o a través de un sistema de gestión de la configuración) # cuando no desea editar un archivo de configuración. SLAPD_SENTINEL_FILE=/etc/ldap/noslapd # Para la autenticación Kerberos (a través de SASL), slapd por defecto usa el sistema # archivo keytab (/etc/krb5.keytab). Para usar un archivo de tabla de claves diferente, # descomente esta línea y cambie la ruta. # exportar KRB5_KTNAME=/etc / krb5.tabla de claves # Opciones adicionales para pasar a slapd SLAPD_OPTIONS=""
ldaps://
URI.
/usr/local/share/ca-certificates
y ejecutando update-ca-certificates
.
#
cp pki/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.26. El archivo /etc/ldap/ldap.conf
# # Predeterminados para LDAP # # Revise ldap.conf(5) para más detalles # Este archivo ha de ser legible, pero no escrito por cualquiera. #BASE dc=example,dc=com #URI ldap://ldap.example.com ldap://ldap-provider.example.com:666 #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never # Certificados TLC (necesarios para GnuTLS) TLS_CACERT /etc/ssl/certs/ca-certificates.crt