GNU/Linux >> Linux Esercitazione >  >> Cent OS

Configura OpenLDAP con SSL su CentOS 7 / RHEL 7

Nel nostro articolo precedente, abbiamo configurato il server OpenLDAP su CentOS 7 / RHEL 7 per l'autenticazione centralizzata. In seguito, configureremo ora OpenLDAP con SSL per una comunicazione sicura. In questa configurazione, le comunicazioni dei client LDAP avvengono sulla porta protetta 636 anziché sulla porta non protetta 389.

Segui questa guida per configurare OpenLDAP con SSL.

Prerequisiti

1. Impostazione di OpenLDAP.

2. Crea una voce host del server LDAP sulle tue macchine client in /etc/hosts per la risoluzione dei nomi.

192.168.1.10 server.itzgeek.local server

O

Se prevedi di utilizzare il nome host invece dell'indirizzo IP,  Configura il server DNS su CentOS 7 / RHEL 7 per avere una risoluzione del nome host.

Crea certificato LDAP

Se prevedi di utilizzare LDAP su SSL, puoi seguire uno dei metodi seguenti per implementarlo.

1. Certificato autofirmato:è un semplice certificato autofirmato. I client LDAP devono avere tls_reqcert allow in /etc/nslcd.conf di non convalidare il certificato.

2. Certificato firmato dalla CA:la tua CA interna o i certificati firmati dalla CA esterna. Dovresti inserire il certificato CA che ha firmato il certificato del tuo server LDAP in /etc/openldap/cacerts/ directory in modo che i client LDAP possano convalidare i certificati.

Certificato autofirmato

Creiamo un certificato autofirmato per il nostro server LDAP. Il comando seguente genera sia il certificato che la chiave privata in /etc/openldap/certs/ directory.

openssl req -new -x509 -nodes -out /etc/openldap/certs/itzgeekldap.crt -keyout /etc/openldap/certs/itzgeekldap.key -days 1460

Risultato:

Generating a 2048 bit RSA private key
...+++
.....................................+++
writing new private key to '/etc/openldap/certs/itzgeekldapkey.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]: XX
State or Province Name (full name) []: XX
Locality Name (eg, city) [Default City]: XXXXXX
Organization Name (eg, company) [Default Company Ltd]:ITzGeek
Organizational Unit Name (eg, section) []:IT Infra
Common Name (eg, your name or your server's hostname) []:server.itzgeek.local
Email Address []:[email protected]

Imposta le autorizzazioni del proprietario e del gruppo.

chown -R ldap:ldap /etc/openldap/certs/itzgeek*

Verifica il certificato LDAP creato in /etc/openldap/certs/ directory.

ll /etc/openldap/certs/itzgeek*

Risultato:

-rw-r--r--. 1 ldap ldap 1302 Apr 1 14:18 /etc/openldap/certs/itzgeekldap.crt
-rw-r--r--. 1 ldap ldap 1704 Apr 1 14:18 /etc/openldap/certs/itzgeekldap.key

Crea certs.ldif per configurare LDAP per l'utilizzo della comunicazione protetta utilizzando un certificato autofirmato.

vi certs.ldif

Usa le informazioni di seguito.

dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/itzgeekldap.crt

dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/itzgeekldap.key

Importa le configurazioni sul server LDAP.

ldapmodify -Y EXTERNAL  -H ldapi:/// -f certs.ldif

Verifica la configurazione

slaptest -u

Dovresti ricevere il seguente messaggio in caso di verifica riuscita.

config file testing succeeded

Certificato personalizzato firmato da un'autorità di certificazione

Crea la chiave radice usando il comando seguente.

cd  /etc/openldap/certs/
openssl genrsa -out itzgeekrootCA.key 2048

Ora crea il certificato radice autofirmato.

openssl req -x509 -new -nodes -key itzgeekrootCA.key -sha256 -days 1024 -out itzgeekrootCA.pem

Risultato:

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:XX
State or Province Name (full name) []:XXX
Locality Name (eg, city) [Default City]:XXX
Organization Name (eg, company) [Default Company Ltd]:ITzGeek
Organizational Unit Name (eg, section) []:XXX
Common Name (eg, your name or your server's hostname) []:ITzGeek Root CA
Email Address []:[email protected]

Crea una chiave privata per il server LDAP.

openssl genrsa -out itzgeekldap.key 2048

Una volta che hai la chiave privata, crea una richiesta di firma del certificato.

openssl req -new -key itzgeekldap.key -out itzgeekldap.csr

Risultato:

Assicurati che il nome comune corrisponda al nome host o all'indirizzo IP del server LDAP.

Generating RSA private key, 2048 bit long modulus
.........+++
.............................................................+++
e is 65537 (0x10001)
[root@server certs]# openssl req -new -key itzgeekldap.key -out itzgeekldap.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:XX
State or Province Name (full name) []:XX
Locality Name (eg, city) [Default City]:XXX
Organization Name (eg, company) [Default Company Ltd]:ITzGeek
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:server.itzgeek.local
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Ora, firma una richiesta di firma del certificato utilizzando la CA radice personalizzata.

openssl x509 -req -in itzgeekldap.csr -CA itzgeekrootCA.pem -CAkey itzgeekrootCA.key -CAcreateserial -out itzgeekldap.crt -days 1460 -sha256

Imposta le autorizzazioni del proprietario e del gruppo.

chown -R ldap:ldap /etc/openldap/certs/itzgeek*

Verifica il certificato LDAP creato in /etc/openldap/certs/ directory.

 ll /etc/openldap/certs/itzgeek*

Risultato:

-rw-r--r--. 1 ldap ldap 1285 Apr  1 16:54 /etc/openldap/certs/itzgeekldap.crt
-rw-r--r--. 1 ldap ldap 1050 Apr  1 16:53 /etc/openldap/certs/itzgeekldap.csr
-rw-r--r--. 1 ldap ldap 1675 Apr  1 16:51 /etc/openldap/certs/itzgeekldap.key
-rw-r--r--. 1 ldap ldap 1679 Apr  1 16:49 /etc/openldap/certs/itzgeekrootCA.key
-rw-r--r--. 1 ldap ldap 1399 Apr  1 16:49 /etc/openldap/certs/itzgeekrootCA.pem
-rw-r--r--. 1 ldap ldap   17 Apr  1 16:54 /etc/openldap/certs/itzgeekrootCA.srl

Crea certs.ldif per configurare LDAP per l'utilizzo della comunicazione protetta utilizzando un certificato autofirmato.

vi certs.ldif

Usa le informazioni di seguito.

dn: cn=config
changetype: modify
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/openldap/certs/itzgeekrootCA.pem

dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/itzgeekldap.crt

dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/itzgeekldap.key

Importa le configurazioni sul server LDAP.

ldapmodify -Y EXTERNAL  -H ldapi:/// -f certs.ldif

Verifica la configurazione

slaptest -u

Dovresti ricevere il seguente messaggio in caso di verifica riuscita.

config file testing succeeded

Configura OpenLDAP per l'ascolto su SSL

Modifica il /etc/sysconfig/slapd file e configura OpenLDAP per l'ascolto su SSL.

vi /etc/sysconfig/slapd

Aggiorna la riga sottostante.

SLAPD_URLS="ldapi:/// ldap:/// ldaps:///"

Riavvia il servizio slapd.

systemctl restart slapd

Verifica il servizio LDAP. Il servizio LDAP ora dovrebbe essere in ascolto anche sulla porta TCP 636.

netstat -antup | grep -i 636

Risultato:

tcp        0      0 0.0.0.0:636             0.0.0.0:*               LISTEN      11720/slapd     
tcp6       0      0 :::636                  :::*                    LISTEN      11720/slapd

Firewall

Aggiungi il servizio LDAPS al firewall (TCP 686).

firewall-cmd --permanent --add-service=ldaps
firewall-cmd --reload

Configurazione client OpenLDAP per OpenLDAP su SSL

Installa i pacchetti client usando il comando yum.

yum install -y openldap-clients nss-pam-ldapd

Esegui authconfig comando per aggiungere una macchina client al server LDAP per il Single Sign-On. Sostituisci "server.itzgeek.local ” con il tuo indirizzo IP o nome host del tuo server LDAP.

Se hai utilizzato un certificato personalizzato firmato da una CA o un certificato esterno firmato da una CA nella configurazione di OpenLDAP, il nome host o l'indirizzo IP dovrebbe corrispondere al nome comune del certificato del server LDAP

authconfig --enableldap --enableldapauth --ldapserver=ldaps://server.itzgeek.local --ldapbasedn="dc=itzgeek,dc=local" --enablemkhomedir --disableldaptls --update

Dovresti eseguire i passaggi seguenti in base al metodo che hai configurato OpenLDAP per utilizzare SSL.

Certificato autofirmato

Modifica il nslcd.conf file.

vi /etc/nslcd.conf

Aggiungi la seguente riga in nslcd.conf file. L'impostazione seguente disabiliterà la convalida del certificato eseguita dai client poiché utilizziamo un certificato autofirmato.

tls_reqcert allow

Firma CA personalizzata o CA esterna firmata

Copia il itzgeekrootCA.pem dal server LDAP o inserire il certificato intermedio o la CA fornita dalla CA esterna nel /etc/openldap/cacerts directory.

cd /etc/openldap/cacerts/
scp -pr 192.168.1.10:/etc/openldap/certs/itzgeekrootCA.pem /etc/openldap/cacerts

Crea l'hash c del certificato CA.

/etc/pki/tls/misc/c_hash /etc/openldap/cacerts/itzgeekrootCA.pem

Risultato:

997ee4fb.0 => /etc/openldap/cacerts/itzgeekrootCA.pem

Ora, collega in modo simbolico rootCA.pem al numero esadecimale di 8 cifre mostrato.

ln -s /etc/openldap/cacerts/itzgeekrootCA.pem 997ee4fb.0

Riavvia il servizio client LDAP.

systemctl restart nslcd

Verifica accesso LDAP

Usa il comando getent per ottenere le voci LDAP dal server LDAP.

getent passwd raj

Risultato:

raj:x:9999:100:Raj [Admin (at) ITzGeek]:/home/raj:/bin/bash

Per verificare l'LDAP, accedere utilizzando l'utente LDAP "raj" sul computer client.

Schermata:

Riferimento

OpenFusion – Suggerimenti e trucchi OpenLDAP

CentOS – Forum

Questo è tutto.


Cent OS
  1. Configura VNC su CentOS 6 / RHEL 6

  2. Come configurare IMAP con SSL

  3. Come installare e configurare OpenLDAP su CentOS / RHEL Linux

  4. CentOS / RHEL 7:come configurare getty seriale con systemd

  5. CentOS / RHEL:configura gli aggiornamenti automatici yum con il servizio yum-cron

Come configurare l'indirizzo IP in CentOS 7/RHEL 7 e CentOS 6/RHEL 6

Configura la replica multimaster OpenLDAP su Linux

Come configurare l'indirizzo IP statico in CentOS 7 / RHEL 7

Come configurare l'indirizzo IP statico in CentOS 8 / RHEL 8

Come configurare Nginx con SSL

Come configurare il client LDAP su CentOS/RHEL 6 utilizzando SSSD