dpkg-reconfigure slapd
vi permetterà di riconfigurare il database LDAP con maggiori dettagli:
falcot.com
”.
dpkg-reconfigure slapd
subito dopo la prima installazione.
$
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
e così via), convertire questi dati ed inserirli all'interno del database LDAP.
/etc/migrationtools/migrate_common.ph
dev'essere modificato. Le opzioni IGNORE_UID_BELOW
e IGNORE_GID_BELOW
devono essere abilitate (è sufficiente decommentarle), e DEFAULT_MAIL_DOMAIN
DEFAULT_BASE
devono essere aggiornate.
migrate_all_online.sh
, come segue:
#
cd /usr/share/migrationtools
#
LDAPADD="/usr/bin/ldapadd -c" ETC_ALIASES=/dev/null ./migrate_all_online.sh
migrate_all_online.sh
rivolge alcune domande a proposito del database LDAP nel quale si vogliono migrare i dati. Tabella 11.1 riassume le risposte fornite nel caso d'uso della Falcot.
Tabella 11.1. Le risposte fornite alle domande poste dallo script migrate_all_online.sh
Domanda | Risposta |
---|---|
X.500 naming context | dc=falcot,dc=com |
Nome host del server LDAP | localhost |
Manager DN | cn=admin,dc=falcot,dc=com |
Bind credentials | la password amministrativa |
Create DUAConfigProfile | no |
/etc/aliases
dato che lo schema standard fornito da Debian non include le strutture che utilizza questo script per gli alias email. Se dovessimo integrare questi dati nella directory il file /etc/ldap/schema/misc.schema
dovrebbe essere aggiunto allo schema standard.
-c
con il comando ldapadd
: questa opzione richiede che l'elaborazione non si interrompa in caso di errori. Utilizzare questa opzione è necessario poiché convertire il database /etc/services
genera spesso qualche errore che può essere ignorato senza conseguenze.
Tabella 11.2. Configurare il pacchetto libnss-ldap
Domanda | Risposta |
---|---|
L'Uniform Resource Identifier del server LDAP | ldap://ldap.falcot.com |
Il nome distintivo per la base di ricerca | dc=falcot,dc=com |
La versione di LDAP da utilizzare | 3 |
Il database LDAP deve richiedere il login? | no |
Privilegi speciali LDAP per root | si |
Rendere il file di configurazione leggibile/scrivibile solo dal suo proprietario | no |
L'account LDAP per root | cn=admin,dc=falcot,dc=com |
La password per l'account root di LDAP | la password amministrativa |
/etc/nsswitch.conf
richiede poi di essere modificato per configurare NSS in modo che utilizzi il modulo ldap
appena installato.
Esempio 11.26. Il file /etc/nsswitch.conf
# /etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have the `glibc-doc' and `info' packages installed, try: # `info libc "Name Service Switch"' for information about this file. 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
è generalmente inserito prima degli altri, e sarà di conseguenza richiamato per primo. L'unica eccezione degna di nota è il servizio hosts
dato che contattare il server LDAP richiede prima la consultazione del DNS (per risolvere ldap.falcot.com
). Senza questa eccezione, la richiesta cercherebbe di contattare il server LDAP; questo causerebbe un tentativo di risoluzione del nome per il server LDAP, e così via in un ciclo infinito.
files
ignorati) i servizi possono essere configurati con la seguente sintassi:
servizio: ldap [NOTFOUND=return] files
.
/etc/environment
e /etc/default/locale
) che consentirà alle applicazioni di eseguire le autenticazioni richieste attraverso il database LDAP.
Tabella 11.3. Configurazione di libpam-ldap
Domanda | Risposta |
---|---|
Permettere all'account amministrativo LDAP di agire come root? | Sì. Questo ci consente di utilizzare il comando passwd per cambiare le password conservate nel database LDAP. |
Il database LDAP richiede il login? | no |
L'account LDAP per root | cn=admin,dc=falcot,dc=com |
La password per l'account root di LDAP | La password amministrativa del database LDAP |
Algoritmo di crittografia locale da utilizzare per le password | cripta |
/etc/pam.d/common-auth
, /etc/pam.d/common-password
e /etc/pam.d/common-account
. Questo meccanismo utilizza lo strumento dedicato pam-auth-update
(fornito con il pacchetto libpam-runtime). Questo strumento può anche essere eseguito dall'amministratore qualora desideri abilitare o disabilitare dei moduli PAM.
./build-key-server ldap.falcot.com
pone alcune domande banali (luogo, nome dell'organizzazione e così via). La risposta alla domanda "common name" deve essere il nome di dominio pienamente qualificato del server LDAP; nel nostro caso ldap.falcot.com
.
keys/ldap.falcot.com.crt
; la corrispondente chiave privata è conservata nel file keys/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 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
di usare queste chiavi per la crittografia. La configurazione del server LDAP è gestita dinamicamente: la configurazione può essere aggiornata con le normali operazioni LDAP sulla gerarchia di oggetti cn=config
, ed il server aggiornerà /etc/ldap/slapd.d
in tempo reale per rendere la configurazione persistente. ldapmodify
è quindi lo strumento giusto per aggiornare la configurazione:
Esempio 11.27. Configurare slapd
per la cifratura
#
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
nel file /etc/default/slapd
. Inoltre, per essere prudenti, si renderà necessario disabilitare l'LDAP non sicuro.
Esempio 11.28. Il file /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.conf 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
ed eseguendo update-ca-certificates
.
#
cp keys/ca.crt /usr/local/share/ca-certificates/falcot.crt
#
update-ca-certificates
Aggiornamento certificati in /etc/ssl/certs... 1 aggiunto, 0 rimossi; fatto. Esecuzione gancio in /etc/ca-certificates/update.d.... Aggiunto debian:falcot.pem fatto. fatto.
/etc/ldap/ldap.conf
. Ciò farà risparmiare un bel po' di battitura.
Esempio 11.29. Il file /etc/ldap/ldap.conf
# # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. BASE dc=falcot,dc=com URI ldaps://ldap.falcot.com #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never # TLS certificates (needed for GnuTLS) TLS_CACERT /etc/ssl/certs/ca-certificates.crt