GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Konfigurieren Sie OpenLDAP mit SSL auf CentOS 7 / RHEL 7

In unserem vorherigen Artikel haben wir OpenLDAP-Server auf CentOS 7 / RHEL 7 eingerichtet für die zentrale Authentifizierung. In Fortsetzung dessen werden wir nun OpenLDAP konfigurieren mit SSL für sichere Kommunikation. Bei dieser Konfiguration erfolgt die Kommunikation der LDAP-Clients über den sicheren Port 636 statt über den unsicheren Port 389.

Befolgen Sie diese Anleitung, um OpenLDAP zu konfigurieren mit SSL.

Voraussetzungen

1. OpenLDAP-Einrichtung.

2. Erstellen Sie einen Host-Eintrag des LDAP-Servers auf Ihren Client-Rechnern in /etc/hosts zur Namensauflösung.

192.168.1.10 server.itzgeek.local server

ODER

Wenn Sie statt der IP-Adresse den Hostnamen verwenden möchten,  konfigurieren Sie den DNS-Server unter CentOS 7/RHEL 7 um eine Hostnamenauflösung zu haben.

LDAP-Zertifikat erstellen

Wenn Sie vorhaben, LDAP über SSL zu verwenden, können Sie eine der folgenden Methoden anwenden, um es zu implementieren.

1. Selbstsigniertes Zertifikat – Es ist ein einfaches selbstsigniertes Zertifikat. LDAP-Clients müssen tls_reqcert allow haben in /etc/nslcd.conf um das Zertifikat nicht zu validieren.

2. CA-signiertes Zertifikat – Ihre internen CA- oder externen CA-Signaturzertifikate. Sie sollten das CA-Zertifikat, das Ihr LDAP-Serverzertifikat signiert hat, in /etc/openldap/cacerts/ platzieren Verzeichnis, damit LDAP-Clients Zertifikate validieren können.

Selbstsigniertes Zertifikat

Lassen Sie uns ein selbstsigniertes Zertifikat für unseren LDAP-Server erstellen. Der folgende Befehl generiert sowohl das Zertifikat als auch den privaten Schlüssel in /etc/openldap/certs/ Verzeichnis.

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

Ausgabe:

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]

Legen Sie die Eigentümer- und Gruppenberechtigungen fest.

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

Überprüfen Sie das erstellte LDAP-Zertifikat unter /etc/openldap/certs/ Verzeichnis.

ll /etc/openldap/certs/itzgeek*

Ausgabe:

-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

Erstellen Sie certs.ldif Datei zum Konfigurieren von LDAP für die Verwendung einer sicheren Kommunikation mit einem selbstsignierten Zertifikat.

vi certs.ldif

Verwenden Sie die folgenden Informationen.

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

Importieren Sie die Konfigurationen auf den LDAP-Server.

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

Überprüfen Sie die Konfiguration

slaptest -u

Bei erfolgreicher Verifizierung sollten Sie die folgende Meldung erhalten.

config file testing succeeded

Benutzerdefiniertes CA-signiertes Zertifikat

Erstellen Sie den Stammschlüssel mit dem folgenden Befehl.

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

Erstellen Sie nun das selbstsignierte Stammzertifikat.

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

Ausgabe:

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]

Erstellen Sie einen privaten Schlüssel für den LDAP-Server.

openssl genrsa -out itzgeekldap.key 2048

Wenn Sie über den privaten Schlüssel verfügen, erstellen Sie eine Zertifikatsignieranforderung.

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

Ausgabe:

Stellen Sie sicher, dass der allgemeine Name mit dem Hostnamen oder der IP-Adresse Ihres LDAP-Servers übereinstimmt.

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 []:

Signieren Sie jetzt eine Zertifikatsignieranforderung mit der benutzerdefinierten Stammzertifizierungsstelle.

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

Legen Sie die Eigentümer- und Gruppenberechtigungen fest.

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

Überprüfen Sie das erstellte LDAP-Zertifikat unter /etc/openldap/certs/ Verzeichnis.

 ll /etc/openldap/certs/itzgeek*

Ausgabe:

-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

Erstellen Sie certs.ldif Datei zum Konfigurieren von LDAP für die Verwendung einer sicheren Kommunikation mit einem selbstsignierten Zertifikat.

vi certs.ldif

Verwenden Sie die folgenden Informationen.

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

Importieren Sie die Konfigurationen auf den LDAP-Server.

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

Überprüfen Sie die Konfiguration

slaptest -u

Bei erfolgreicher Verifizierung sollten Sie die folgende Meldung erhalten.

config file testing succeeded

Konfigurieren Sie OpenLDAP, um über SSL zu lauschen

Bearbeiten Sie /etc/sysconfig/slapd Datei und konfigurieren Sie OpenLDAP so, dass es über SSL lauscht.

vi /etc/sysconfig/slapd

Aktualisieren Sie die folgende Zeile.

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

Starten Sie den slapd-Dienst neu.

systemctl restart slapd

Überprüfen Sie den LDAP-Dienst. Der LDAP-Dienst sollte jetzt auch TCP-Port 636 überwachen.

netstat -antup | grep -i 636

Ausgabe:

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

Firewall

Fügen Sie den LDAPS-Dienst zur Firewall hinzu (TCP 686).

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

OpenLDAP-Client-Konfiguration für OpenLDAP über SSL

Installieren Sie die Client-Pakete mit dem Befehl yum.

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

Führen Sie die authconfig aus Befehl zum Hinzufügen eines Clientcomputers zum LDAP-Server für Single Sign-On. Ersetzen Sie „server.itzgeek.local “ durch die IP-Adresse oder den Hostnamen Ihres LDAP-Servers.

Wenn Sie ein benutzerdefiniertes, von einer Zertifizierungsstelle signiertes oder von einer externen Zertifizierungsstelle signiertes Zertifikat in der OpenLDAP-Einrichtung verwendet haben, sollte der Hostname oder die IP-Adresse mit dem allgemeinen Namen des LDAP-Serverzertifikats übereinstimmen

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

Sie müssten die folgenden Schritte basierend auf der Methode ausführen, die Sie OpenLDAP für die Verwendung von SSL konfiguriert haben.

Selbstsigniertes Zertifikat

Bearbeiten Sie die nslcd.conf Datei.

vi /etc/nslcd.conf

Fügen Sie die folgende Zeile in der nslcd.conf hinzu Datei. Die folgende Einstellung deaktiviert die von Clients durchgeführte Zertifikatsvalidierung, da wir ein selbstsigniertes Zertifikat verwenden.

tls_reqcert allow

Benutzerdefinierte CA-signiert oder externe CA-signiert

Kopieren Sie die itzgeekrootCA.pem vom LDAP-Server oder platzieren Sie das Zwischenzertifikat oder die Zertifizierungsstelle, die von einer externen Zertifizierungsstelle bereitgestellt wird, in /etc/openldap/cacerts Verzeichnis.

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

Erstellen Sie den C-Hash des CA-Zertifikats.

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

Ausgabe:

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

Verknüpfen Sie nun rootCA.pem mit der angezeigten 8-stelligen Hexadezimalzahl.

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

Starten Sie den LDAP-Client-Dienst neu.

systemctl restart nslcd

LDAP-Anmeldung bestätigen

Verwenden Sie den Befehl getent, um die LDAP-Einträge vom LDAP-Server abzurufen.

getent passwd raj

Ausgabe:

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

Um das LDAP zu überprüfen, melden Sie sich mit dem LDAP-Benutzer „raj“ auf dem Client-Rechner an.

Screenshot:

Referenz

OpenFusion – OpenLDAP-Tipps und Tricks

CentOS – Forum

Das ist alles.


Cent OS
  1. Konfigurieren Sie VNC auf CentOS 6 / RHEL 6

  2. Konfigurieren Sie DNS auf CentOS 5 / RHEL 5 mit Chroot

  3. So konfigurieren Sie IMAP mit SSL

  4. So installieren und konfigurieren Sie OpenLDAP unter CentOS / RHEL Linux

  5. CentOS / RHEL 7 :So konfigurieren Sie Serial Getty mit Systemd

So konfigurieren Sie die IP-Adresse in CentOS 7 / RHEL 7 und CentOS 6 / RHEL 6

Konfigurieren Sie die OpenLDAP Multi-Master-Replikation unter Linux

So konfigurieren Sie eine statische IP-Adresse in CentOS 7 / RHEL 7

So konfigurieren Sie eine statische IP-Adresse in CentOS 8 / RHEL 8

So konfigurieren Sie Nginx mit SSL

So konfigurieren Sie den LDAP-Client auf CentOS/RHEL 6 mit SSSD