dpkg-reconfigure slapd
us permetrà reconfigurar la base de dades LDAP amb més detall:
falcot.com
”.
dpkg-reconfigure slapd
just després de la instal·lació inicial.
$
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
i així successivament), converteix aquestes dades i les injecta a la base de dades LDAP.
/etc/migrationtools/migrate_common.ph
; les opcions IGNORE_UID_BELOW
i IGNORE_GID_BELOW
han d'estar habilitades (el fet de descomentar-les és suficient), i DEFAULT_MAIL_DOMAIN
/DEFAULT_BASE
ha de ser actualitzat.
migrate_all_online.sh
de la següent manera:
#
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
fa algunes preguntes sobre la base de dades LDAP a la qual s'han de migrar les dades. Taula 11.1 resumeix les respostes donades en el cas d'ús de Falcot.
Taula 11.1. Respostes a les preguntes plantejades per l'script migrate_all_online.sh
Pregunta | Resposta |
---|---|
Context de noms X.500 | dc=falcot,dc=com |
Nom del servidor LDAP | localhost |
Administrador del DN | cn=admin,dc=falcot,dc=com |
Credencials de vinculació | la contrasenya administrativa |
Crear DUAConfigProfile | no |
PERL5LIB
variable. This is due to Debian bug report #982666.
/etc/aliases
file, since the standard schema as provided by Debian does not include the structures that this script uses to describe email aliases. Should we want to integrate this data into the directory, the /etc/ldap/schema/misc.schema
file should be added to the standard schema.
-c
a l'ordre ldapadd
; aquesta opció demana que el processament no s'aturi en cas d'error. Usar aquesta opció és necessari perquè la conversió dels /etc/services
sovint genera alguns errors que es poden ignorar sense problemes.
Taula 11.2. Configuring the libnss-ldap package:
Pregunta | Resposta |
---|---|
LDAP server URI (Uniform Resource Identifier) | ldapi://ldap.falcot.com |
Nom distingit de la base de cerca | dc=falcot,dc=com |
Versió LDAP a utilitzar | 3 |
Compte LDAP per a l'usuari «root» | cn=admin,dc=falcot,dc=com |
Contrasenya del compte de l'usuari «root» d'LDAP | la contrasenya administrativa |
Permetre que el compte d'administrador LDAP es comporti com a superusuari local? | sí |
La base de dades LDAP requereix iniciar una sessió? | no |
/etc/nsswitch.conf
a continuació s'ha de modificar, per tal de configurar l'NSS per utilitzar el mòdul ldap
recentment instal·lat. Podeu utilitzar l'exemple proporcionat a /usr/share/doc/libnss-ldap/examples/nsswitch.ldap
o editar la configuració existent.
Exemple 11.23. El fitxer /etc/nssswitch.conf
#ident $Id: nsswitch.ldap,v 2.4 2003/10/02 02:36:25 lukeh Exp $ # # An example file that could be copied over to /etc/nsswitch.conf; it # uses LDAP conjunction with files. # # "hosts:" and "services:" in this file are used only if the # /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports. # the following lines obviate the "+" entry in /etc/passwd and /etc/group. passwd: files ldap shadow: files ldap group: files ldap # consult DNS first, we will need it to resolve the LDAP host. (If we # can't resolve it, we're in infinite recursion, because libldap calls # gethostbyname(). Careful!) hosts: dns ldap # LDAP is nominally authoritative for the following 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 # no support for netmasks, bootparams, publickey yet. netmasks: files bootparams: files publickey: files automount: files # I'm pretty sure nsswitch.conf is consulted directly by sendmail, # here, so we can't do much here. Instead, use bbense's LDAP # rules ofr sendmail. aliases: files sendmailvars: files # Note: there is no support for netgroups on Solaris (yet) netgroup: ldap [NOTFOUND=return] files
ldap
s'insereix normalment abans que d'altres, i per tant es consultarà primer. La notable excepció és el servei hosts
ja que el contacte amb el servidor LDAP requereix consultar abans el DNS (per resoldre ldap.falcot.com
). Sense aquesta excepció, una consulta del nom d'un servidor intentaria preguntar al servidor LDAP; això desencadenaria una resolució de nom per al servidor LDAP, i així successivament en un bucle infinit.
files
siguin ignorats), els serveis es poden configurar amb la següent sintaxi:
servei: ldap [NOTFOUND=return] files
.
/etc/environment
i /etc/default/locale
) que permetrà a les aplicacions realitzar les autenticacions necessàries contra la base de dades LDAP.
Taula 11.3. Configuració de libpam-ldap
Pregunta | Resposta |
---|---|
Permet que el compte d'administrador LDAP es comporti com a superusuari local? | Sí. Això permet utilitzar l'ordre habitual passwd per canviar les contrasenyes desades a la base de dades LDAP. |
La base de dades LDAP requereix iniciar sessió? | no |
LDAP account for root: | cn=admin,dc=falcot,dc=com |
LDAP administrative password: | la contrasenya d'administració de la base de dades LDAP |
Local encryption algorithm to use for passwords: | crypt |
PAM profiles to enable: | LDAP Authentication is among the enabled profiles |
/etc/pam.d/common-auth
, /etc/pam.d/common-password
i /etc/pam.d/common-account
. Aquest mecanisme utilitza l'eina dedicada pam-auth-update
(proveïda pel paquet libpam-runtime). L'administrador també pot executar aquesta eina si desitja activar o desactivar mòduls PAM.
./easyrsa build-server-full ldap.falcot.com nopass
us preguntarà el “nom comú” o «common name» en anglès. La resposta a aquesta pregunta ha de ser el nom d'amfitrió completament qualificat del servidor LDAP; en el nostre cas, ldap.falcot.com
.
pki/issued/ldap.falcot.com.crt
; la corresponent clau privada s'emmagatzema a pki/private/ldap.falcot.com.key
.
openldap
:
#
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
també se li ha de dir que utilitzi aquestes claus per a l'encriptació. La configuració del servidor LDAP es gestiona dinàmicament: la configuració es pot actualitzar amb operacions LDAP normals en la jerarquia d'objectes cn=config
, i el servidor actualitza /etc/ldap/slapd.d
en temps real per fer que la configuració sigui persistent. ldapmodify
és per tant l'eina correcta per actualitzar la configuració:
Exemple 11.24. Configuració d'slapd
per al xifratge
#
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
del fitxer /etc/default/slapd
. No ens la jugarem i inhabilitarem completament l'LDAP no segur.
Exemple 11.25. El fitxer /etc/default/slapd
# Default location of the slapd.conf file or slapd.d cn=config directory. If # empty, use the compiled-in default (/etc/ldap/slapd.d with a fallback to # /etc/ldap/slapd.conf). SLAPD_CONF= # System account to run the slapd server under. If empty the server # will run as root. SLAPD_USER="openldap" # System group to run the slapd server under. If empty the server will # run in the primary group of its user. SLAPD_GROUP="openldap" # Path to the pid file of the slapd server. If not set the init.d script # will try to figure it out from $SLAPD_CONF (/etc/ldap/slapd.d by # default) SLAPD_PIDFILE= # slapd normally serves ldap only on all TCP-ports 389. slapd can also # service requests on TCP-port 636 (ldaps) and requests via unix # sockets. # Example usage: # SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:/// ldapi:///" SLAPD_SERVICES="ldaps:/// ldapi:///" # If SLAPD_NO_START is set, the init script will not start or restart # slapd (but stop will still work). Uncomment this if you are # starting slapd via some other means or if you don't want slapd normally # started at boot. #SLAPD_NO_START=1 # If SLAPD_SENTINEL_FILE is set to path to a file and that file exists, # the init script will not start or restart slapd (but stop will still # work). Use this for temporarily disabling startup of slapd (when doing # maintenance, for example, or through a configuration management system) # when you don't want to edit a configuration file. SLAPD_SENTINEL_FILE=/etc/ldap/noslapd # For Kerberos authentication (via SASL), slapd by default uses the system # keytab file (/etc/krb5.keytab). To use a different keytab file, # uncomment this line and change the path. #export KRB5_KTNAME=/etc/krb5.keytab # Additional options to pass to slapd SLAPD_OPTIONS=""
ldaps://
.
/usr/local/share/ca-certificates
and running 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
. Això estalviarà teclejar una mica.
Exemple 11.26. El fitxer /etc/ldap/ldap.conf
# # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. #BASE dc=example,dc=com #URI ldap://ldap.example.com ldap://ldap-provider.example.com:666 #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never # TLS certificates (needed for GnuTLS) TLS_CACERT /etc/ssl/certs/ca-certificates.crt