<Precedenti | Contenuti | Succ.>
1.8. TLS
Quando si esegue l'autenticazione su un server OpenLDAP è meglio farlo utilizzando una sessione crittografata. Ciò può essere ottenuto utilizzando Transport Layer Security (TLS).
Qui saremo noi stessi Certificate Authority e quindi creare e firmare il nostro certificato del server LDAP come tale CA. Poiché slapd è compilato utilizzando la libreria gnutls, utilizzeremo l'utilità certtool per completare queste attività.
1. Installa i pacchetti gnutls-bin e ssl-cert:
sudo apt installa gnutls-bin ssl-cert
2. Creare una chiave privata per l'autorità di certificazione:
sudo sh -c "certtool --generate-privkey > /etc/ssl/private/cakey.pem"
3. Crea il modello/file /etc/ssl/ca.info per definire la CA:
cn = Esempio Azienda ca
chiave_certificata
4. Creare il certificato CA autofirmato:
sudo certtool --genera-self-signed \
--load-privkey /etc/ssl/private/cake.pem \
--template /etc/ssl/ca.info \
--outfile /etc/ssl/certs/cacert.pem
5. Crea una chiave privata per il server:
![]()
4 http://manpages.ubuntu.com/manpages/en/man5/slapd.access.5.html
sudo certtool --generate-privkey \
--bit 1024 \
--outfile /etc/ssl/private/ldap01_slapd_key.pem
![]()
sostituire ldap01 nel nome del file con il nome host del tuo server. Denominare il certificato e la chiave per l'host e il servizio che li utilizzerà aiuterà a mantenere le cose chiare.
6. Crea il /etc/ssl/ldap01.info file di informazioni contenente:
organizzazione = Azienda di esempio cn = ldap01.example.com tls_www_server
crittografia_chiave firma_scadenza_giorni = 3650
Il certificato di cui sopra è valido per 10 anni. Regola di conseguenza.
7. Creare il certificato del server:
sudo certtool --genera-certificato \
--load-privkey /etc/ssl/private/ldap01_slapd_key.pem \
--load-ca-certificate /etc/ssl/certs/cacert.pem \
--load-ca-privkey /etc/ssl/private/cakey.pem \
--template /etc/ssl/ldap01.info \
--outfile /etc/ssl/certs/ldap01_slapd_cert.pem
8. Modificare le autorizzazioni e la proprietà:
sudo chgrp openldap /etc/ssl/private/ldap01_slapd_key.pem sudo chmod 0640 /etc/ssl/private/ldap01_slapd_key.pem sudo gpasswd -a openldap ssl-cert
9. Ora riavvia slapd, poiché abbiamo aggiunto l'utente "openldap" al gruppo "ssl-cert":
sudo systemctl riavvia slapd.service
Il tuo server è ora pronto per accettare la nuova configurazione TLS.
Crea il file certinfo.ldif con i seguenti contenuti (aggiustare di conseguenza, il nostro esempio presuppone che abbiamo creato certificati utilizzando https://www.cacert.org):
dn: cn=config
aggiungi: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
aggiungi: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/ldap01_slapd_cert.pem
-
aggiungi: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/ldap01_slapd_key.pem
Usa il comando ldapmodify per informare slapd del nostro lavoro TLS tramite il database slapd-config:
sudo ldapmodify -Y ESTERNO -H ldapi:/// -f certinfo.ldif
Contrariamente alla credenza popolare, non è necessario ldaps:// in / etc / default / slapd per utilizzare la crittografia. Dovresti avere solo:
SLAPD_SERVICES="ldap:/// ldapi:///"
![]()
LDAP su TLS/SSL (ldaps://) è deprecato a favore di InizioTLS. Quest'ultimo si riferisce a una sessione LDAP esistente (in ascolto sulla porta TCP 389) che viene protetta da TLS/SSL mentre LDAPS, come HTTPS, è un distinto protocollo crittografato dall'inizio che opera sulla porta TCP 636.
Documentazione