<Precedenti | Contenuti | Succ.>
1.9. Replica e TLS
Se è stata impostata la replica tra server, è pratica comune crittografare (StartTLS) il traffico di replica per evitare intercettazioni. Questo è diverso dall'uso della crittografia con autenticazione come abbiamo fatto sopra. In questa sezione svilupperemo il lavoro di autenticazione TLS.
Il presupposto qui è che tu abbia impostato la replica tra Fornitore e Consumatore in base alla Sezione 1.6, «Replica» [p. 123] e aver configurato TLS per l'autenticazione sul Provider seguendo Sezione 1.8, «TLS» [p. 129].
Come affermato in precedenza, l'obiettivo (per noi) della replica è l'elevata disponibilità per il servizio LDAP. Poiché disponiamo di TLS per l'autenticazione sul Fornitore, richiederemo lo stesso al Consumatore. Oltre a questo, però, vogliamo crittografare il traffico di replica. Ciò che resta da fare è creare una chiave e un certificato per il consumatore e quindi configurarli di conseguenza. Genereremo la chiave/certificato sul Provider, per evitare di dover creare un altro certificato CA, per poi trasferire il materiale necessario al Consumatore.
1. Sul Fornitore,
Creare una directory di contenimento (che verrà utilizzata per l'eventuale trasferimento) e successivamente la chiave privata del Consumatore:
mkdir ldap02-ssl cd ldap02-ssl
sudo certtool --generate-privkey \
--bit 1024 \
--outfile ldap02_slapd_key.pem
Crea un file di informazioni, ldap02.info, per il server Consumer, modificandone i valori di conseguenza:
organizzazione = Società di esempio cn = ldap02.esempio.com
tls_www_server crittografia_chiave firma_scadenza chiave_giorni = 3650
Creare il certificato del consumatore:
sudo certtool --genera-certificato \
--load-privkey ldap02_slapd_key.pem \
--load-ca-certificate /etc/ssl/certs/cacert.pem \
--load-ca-privkey /etc/ssl/private/cakey.pem \
--template ldap02.info \
--outfile ldap02_slapd_cert.pem
Ottieni una copia del certificato CA:
cp /etc/ssl/certs/cacert.pem .
Sono state fatte. Ora trasferisci il file ldap02-ssl directory al Consumatore. Qui utilizziamo scp (aggiustalo di conseguenza):
cd ..
scp -r ldap02-ssl utente@consumatore:
2. Sul Consumatore,
Configura l'autenticazione TLS:
sudo apt installa ssl-cert
sudo gpasswd -a openldap ssl-cert
sudo cp ldap02_slapd_cert.pem cacert.pem /etc/ssl/certs sudo cp ldap02_slapd_key.pem /etc/ssl/private
sudo chgrp openldap /etc/ssl/private/ldap02_slapd_key.pem sudo chmod 0640 /etc/ssl/private/ldap02_slapd_key.pem sudo systemctl restart slapd.service
Crea il file /etc/ssl/certinfo.ldif con i seguenti contenuti (adattarsi di conseguenza):
dn: cn=config
aggiungi: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
aggiungi: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/ldap02_slapd_cert.pem
-
aggiungi: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/ldap02_slapd_key.pem
Configura il database slapd-config:
sudo ldapmodify -Y ESTERNO -H ldapi:/// -f certinfo.ldif
Configurazione / etc / default / slapd come sul Provider (SLAPD_SERVICES).
3. Sul Consumatore,
Configura TLS per la replica lato consumatore. Modificare l'esistente olcSyncrepl attributo aggiungendo alcune opzioni TLS. Così facendo, vedremo, per la prima volta, come modificare il/i valore/i di un attributo.
Crea il file consumer_sync_tls.ldif con i seguenti contenuti:
dn: olcDatabase={1}mdb,cn=config sostituire: olcSyncRepl
olcSyncRepl: rid=0 provider=ldap://ldap01.example.com bindmethod=simple binddn="cn=admin,dc=example,dc=com" credenziali=secret searchbase="dc=example,dc=com" logbase= "cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))" schemachecking=on type=refreshAndPersist retry="60 +" syncdata=accesslog starttls=critical tls_reqcert=demand
Le opzioni extra specificano rispettivamente che il consumer deve utilizzare StartTLS e che è necessario il certificato della CA per verificare l'identità del Provider. Notare inoltre la sintassi LDIF per modificare i valori di un attributo ("sostituisci").
Implementa queste modifiche:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f consumer_sync_tls.ldif
E riavvia slapd:
sudo systemctl riavvia slapd.service
4. Sul Fornitore,
Verificare che sia stata stabilita una sessione TLS. In / Var / log / syslog, a condizione che tu abbia impostato la registrazione a livello di "conns", dovresti visualizzare messaggi simili a:
slapd[3620]: conn=1047 fd=20 ACCETTA da IP=10.153.107.229:57922 (IP=0.0.0.0:389) slapd[3620]: conn=1047 op=0 EXT oid=1.3.6.1.4.1.1466.20037
slapd[3620]: conn=1047 op=0 STARTTLS
slapd[3620]: conn=1047 op=0 RISULTATO oid= err=0 testo=
slapd[3620]: conn=1047 fd=20 TLS stabilito tls_ssf=128 ssf=128 slapd[3620]: conn=1047 op=1 BIND dn="cn=admin,dc=example,dc=com" metodo=128
slapd[3620]: conn=1047 op=1 BIND dn="cn=admin,dc=esempio,dc=com" mech=SIMPLE ssf=0 slapd[3620]: conn=1047 op=1 RISULTATO tag=97 err= 0 testo