GNU/Linux >> Tutoriels Linux >  >> Cent OS

Configurer OpenLDAP avec SSL sur CentOS 7 / RHEL 7

Dans notre article précédent, nous configurons le serveur OpenLDAP sur CentOS 7 / RHEL 7 pour une authentification centralisée. Dans la continuité de cela, nous allons maintenant configurer OpenLDAP avec SSL pour une communication sécurisée. Dans cette configuration, les communications des clients LDAP se font sur le port sécurisé 636 au lieu du port non sécurisé 389.

Suivez ce guide pour configurer OpenLDAP avec SSL.

Prérequis

1. Configuration OpenLDAP.

2. Créez une entrée d'hôte du serveur LDAP sur vos machines clientes dans /etc/hosts pour la résolution de noms.

192.168.1.10 server.itzgeek.local server

OU

Si vous prévoyez d'utiliser le nom d'hôte au lieu de l'adresse IP, alors Configurez le serveur DNS sur CentOS 7/RHEL 7 pour avoir une résolution de nom d'hôte.

Créer un certificat LDAP

Si vous envisagez d'utiliser LDAP sur SSL, vous pouvez suivre l'une des méthodes ci-dessous pour l'implémenter.

1. Certificat auto-signé - Il s'agit d'un simple certificat auto-signé. Les clients LDAP doivent avoir tls_reqcert allow dans /etc/nslcd.conf à ne pas valider le certificat.

2. Certificat signé par une autorité de certification – Vos certificats signés par une autorité de certification interne ou une autorité de certification externe. Vous devez placer le certificat CA qui a signé votre certificat de serveur LDAP dans /etc/openldap/cacerts/ répertoire afin que les clients LDAP puissent valider les certificats.

Certificat auto-signé

Créons un certificat auto-signé pour notre serveur LDAP. La commande ci-dessous génère à la fois le certificat et la clé privée dans /etc/openldap/certs/ répertoire.

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

Sortie :

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]

Définissez les autorisations du propriétaire et du groupe.

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

Vérifiez le certificat LDAP créé sous /etc/openldap/certs/ répertoire.

ll /etc/openldap/certs/itzgeek*

Sortie :

-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

Créer certs.ldif fichier pour configurer LDAP afin d'utiliser une communication sécurisée à l'aide d'un certificat auto-signé.

vi certs.ldif

Utilisez les informations ci-dessous.

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

Importez les configurations sur le serveur LDAP.

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

Vérifiez la configuration

slaptest -u

Vous devriez recevoir le message suivant en cas de vérification réussie.

config file testing succeeded

Certificat personnalisé signé par une autorité de certification

Créez la clé racine à l'aide de la commande suivante.

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

Maintenant, créez le certificat racine auto-signé.

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

Sortie :

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]

Créez une clé privée pour le serveur LDAP.

openssl genrsa -out itzgeekldap.key 2048

Une fois que vous avez la clé privée, créez une demande de signature de certificat.

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

Sortie :

Assurez-vous que le nom commun correspond au nom d'hôte ou à l'adresse IP de votre serveur 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 []:

Maintenant, signez une demande de signature de certificat à l'aide de l'autorité de certification racine personnalisée.

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

Définissez les autorisations du propriétaire et du groupe.

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

Vérifiez le certificat LDAP créé sous /etc/openldap/certs/ répertoire.

 ll /etc/openldap/certs/itzgeek*

Sortie :

-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

Créer certs.ldif fichier pour configurer LDAP afin d'utiliser une communication sécurisée à l'aide d'un certificat auto-signé.

vi certs.ldif

Utilisez les informations ci-dessous.

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

Importez les configurations sur le serveur LDAP.

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

Vérifiez la configuration

slaptest -u

Vous devriez recevoir le message suivant en cas de vérification réussie.

config file testing succeeded

Configurer OpenLDAP pour écouter via SSL

Modifiez le /etc/sysconfig/slapd fichier et configurez OpenLDAP pour écouter via SSL.

vi /etc/sysconfig/slapd

Mettez à jour la ligne ci-dessous.

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

Redémarrez le service slapd.

systemctl restart slapd

Vérifiez le service LDAP. Le service LDAP devrait maintenant écouter également sur le port TCP 636.

netstat -antup | grep -i 636

Sortie :

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

Pare-feu

Ajoutez le service LDAPS au pare-feu (TCP 686).

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

Configuration du client OpenLDAP pour OpenLDAP sur SSL

Installez les packages client à l'aide de la commande yum.

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

Exécutez le authconfig commande pour ajouter une machine cliente au serveur LDAP pour l'authentification unique. Remplacez "server.itzgeek.local " par l'adresse IP ou le nom d'hôte de votre serveur LDAP.

Si vous avez utilisé un certificat signé par une autorité de certification personnalisée ou une autorité de certification externe dans la configuration OpenLDAP, le nom d'hôte ou l'adresse IP doit correspondre au nom commun du certificat du serveur LDAP

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

Vous devrez effectuer les étapes ci-dessous en fonction de la méthode que vous avez configurée OpenLDAP pour utiliser SSL.

Certificat auto-signé

Modifiez le nslcd.conf fichier.

vi /etc/nslcd.conf

Ajoutez la ligne suivante dans le nslcd.conf dossier. Le paramètre ci-dessous désactivera la validation du certificat effectuée par les clients car nous utilisons un certificat auto-signé.

tls_reqcert allow

Signé par une autorité de certification personnalisée ou signé par une autorité de certification externe

Copiez le itzgeekrootCA.pem depuis le serveur LDAP ou placez le certificat intermédiaire ou l'autorité de certification fournie par l'autorité de certification externe dans /etc/openldap/cacerts répertoire.

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

Créez le hachage c du certificat CA.

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

Sortie :

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

Maintenant, créez un lien symbolique entre rootCA.pem et le numéro hexadécimal à 8 chiffres affiché.

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

Redémarrez le service client LDAP.

systemctl restart nslcd

Vérifier la connexion LDAP

Utilisez la commande getent pour obtenir les entrées LDAP du serveur LDAP.

getent passwd raj

Sortie :

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

Pour vérifier le LDAP, connectez-vous à l'aide de l'utilisateur LDAP "raj" sur la machine cliente.

Capture d'écran :

Référence

OpenFusion – Trucs et astuces OpenLDAP

CentOS – Forum

C'est tout.


Cent OS
  1. Configurer VNC sur CentOS 6 / RHEL 6

  2. Configurer DNS sur CentOS 5 / RHEL 5 avec chroot

  3. Configurer Kibana 4 avec Nginx | Sécurisation de Kibana 4 – CentOS 7

  4. Configuration étape par étape du serveur OpenLDAP sur CentOS 7 / RHEL 7

  5. Comment définir un nom d'interface personnalisé avec NetworkManager dans CentOS/RHEL 7

Comment configurer l'adresse IP dans CentOS 7 / RHEL 7 et CentOS 6 / RHEL 6

Configurer la réplication multi-maître OpenLDAP sous Linux

Comment configurer une adresse IP statique dans CentOS 7 / RHEL 7

Comment configurer une adresse IP statique dans CentOS 8 / RHEL 8

Comment configurer Nginx avec SSL

Comment configurer le client LDAP sur CentOS/RHEL 6 à l'aide de SSSD