Open LDAP installieren und konfigurieren

LDAP bekannt als Light Weight Directory Access Protocolist ein Protokoll für den Zugriff auf X.500-Dienstcontainer in einem Unternehmen, das aus einem Verzeichnis bekannt ist. Diejenigen, die mit der Windows Server-Verwaltung vertraut sind, können sich LDAP als sehr ähnlich zu Active Directory vorstellen. Es ist sogar ein weit verbreitetes Konzept, Windows-Workstations in ein OpenLDAP CentOS-Unternehmen zu integrieren. Auf der anderen Seite kann eine CentOS Linux-Workstation Ressourcen gemeinsam nutzen und an den grundlegenden Funktionen einer Windows-Domäne teilnehmen.

Die Bereitstellung von LDAP unter CentOS als Directory Server-Agent, Directory System Agent oder DSA (diese Akronyme sind alle ein und dasselbe) ähnelt älteren Novell Netware-Installationen, die die Directory Tree-Struktur mit NDS verwenden.

Kurze Geschichte von LDAP

LDAP wurde im Wesentlichen als effiziente Methode für den Zugriff auf X.500-Verzeichnisse mit Unternehmensressourcen erstellt. Sowohl X.500 als auch LDAP haben dieselben Eigenschaften und sind sich so ähnlich, dass LDAP-Clients mit einigen Helfern auf X.500-Verzeichnisse zugreifen können. Während LDAP auch einen eigenen Verzeichnisserver namens hatslapd. Der Hauptunterschied zwischen LDAP und DAP besteht darin, dass die Lightweight-Version für den Betrieb über TCP ausgelegt ist.

Während DAP das vollständige OSI-Modell verwendet. Mit dem Aufkommen von Internet, TCP / IP und Ethernet in Netzwerken von heute ist es selten, dass eine Directory Services-Implantation sowohl mit DAP- als auch mit nativen X.500-Unternehmensverzeichnissen außerhalb bestimmter älterer Computermodelle auftritt.

Die Hauptkomponenten von openldap für CentOS Linux sind:

openldap LDAP-Unterstützungsbibliotheken
openldap-server LDAP-Server
openldap-clients LDAP-Client-Dienstprogramme
openldap-devel Entwicklungsbibliotheken für OpenLDAP
compay-openldap Gemeinsame OpenLDAP-Bibliotheken
slapd Verzeichnisserver-Daemon von OpenLDAP
schlürfen Wird für die LDAP-Replikation in einer Unternehmensdomäne verwendet

Note - Wenn Sie Ihr Unternehmen benennen, empfiehlt es sich, die zu verwenden .localTLD. Die Verwendung von .net oder .com kann zu Schwierigkeiten bei der Trennung einer Online- und einer internen Domäneninfrastruktur führen. Stellen Sie sich die zusätzliche Arbeit für ein Unternehmen vor, das acme.com intern sowohl für externe als auch für interne Operationen verwendet. Daher kann es sinnvoll sein, über Internetressourcen namens acme.com oder acme.net zu verfügen . Anschließend werden die lokalen Netzwerkunternehmensressourcen als acme.local dargestellt . Dies erfordert die Konfiguration von DNS-Einträgen, zahlt sich jedoch in Einfachheit, Beredsamkeit und Sicherheit aus.

Installieren Sie Open LDAP unter CentOS

Installieren Sie openldap, openldap-Server, openldap-Clients und Migrationsstools von YUM .

[root@localhost]# yum -y install openldap openldap-servers openldap-clients
migration tools
 Loaded plugins: fastestmirror, langpacks
 updates
 | 3.4 kB  00:00:00
 updates/7/x86_64/primary_db
 | 2.2 MB  00:00:05
 Determining fastest mirrors
 (1/2): extras/7/x86_64/primary_db
 | 121 kB  00:00:01
 (2/2): base/7/x86_64/primary_db
 | 5.6 MB  00:00:16
 Package openldap-2.4.40-13.el7.x86_64 already installed and latest version
 Resolving Dependencies
 --> Running transaction check
 ---> Package openldap-clients.x86_64 0:2.4.40-13.el7 will be installed
 ---> Package openldap-servers.x86_64 0:2.4.40-13.el7 will be installed
 --> Finished Dependency Resolution
 base/7/x86_64/group_gz
 | 155 kB  00:00:00
 
 Dependencies Resolved
 
=============================================================================== 
=============================================================================== 
Package                                Arch
Version                             Repository                        Size 
=============================================================================== 
=============================================================================== 
Installing: 
openldap-clients                    x86_64
2.4.40-13.el7                    base                                 188 k 
openldap-servers                    x86_64
2.4.40-13.el7                    base                                 2.1 M  

Transaction Summary 
=============================================================================== 
===============================================================================
Install  2 Packages

Total download size: 2.3 M 
Installed size: 5.3 M 
Downloading packages:

Installed: 
openldap-clients.x86_64 0:2.4.40-13.el7                                       
openldap-servers.x86_64 0:2.4.40-13.el7                                       
Complete! 
[root@localhost]#

Jetzt starten und aktivieren wir den slapd- Dienst -

[root@centos]# systemctl start slapd 
[root@centos]# systemctl enable  slapd

Stellen wir an dieser Stelle sicher , dass wir unsere Openldap- Struktur in / etc / openldap haben .

root@localhost]# ls /etc/openldap/ 
certs  check_password.conf  ldap.conf  schema  slapd.d
[root@localhost]#

Stellen Sie dann sicher, dass unser slapd-Dienst ausgeführt wird.

root@centos]# netstat -antup | grep slapd
tcp        0      0 0.0.0.0:389            0.0.0.0:*              LISTEN      1641/slapd
tcp6       0      0 :::389                 :::*                   LISTEN      1641/slapd
 
[root@centos]#

Als nächstes konfigurieren wir unsere Open LDAP- Installation.

Stellen Sie sicher, dass unser System- LDAP- Benutzer erstellt wurde.

[root@localhost]# id ldap 
uid=55(ldap) gid=55(ldap) groups=55(ldap)
[root@localhost]#

Generieren Sie unsere LDAP-Anmeldeinformationen.

[root@localhost]# slappasswd  
New password:  
Re-enter new password:  
{SSHA}20RSyjVv6S6r43DFPeJgASDLlLoSU8g.a10

[root@localhost]#

Wir müssen die Ausgabe von slappasswd speichern.

Konfigurieren Sie Open LDAP

Step 1 - Konfigurieren Sie LDAP für die Domäne und fügen Sie einen Administrator hinzu.

Zunächst möchten wir unsere openLDAP-Umgebung einrichten. Im Folgenden finden Sie eine Vorlage, die mit dem Befehl ldapmodify verwendet werden kann .

dn: olcDatabase={2}hdb,cn=config 
changetype: modify 
replace: olcSuffix 
olcSuffix: dc=vmnet,dc=local 
dn: olcDatabase = {2}hdb,cn=config 
changetype: modify 
replace: olcRootDN 
olcRootDN: cn=ldapadm,dc=vmnet,dc=local 
dn: olcDatabase = {2}hdb,cn=config 
changetype: modify 
replace: olcRootPW 
olcRootPW: <output from slap

Nehmen Sie mit dem Befehl ldapmodify Änderungen an: /etc/openldap/slapd.d/cn=config/olcDatabase = {1} monitor.ldif vor.

[root@localhost]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /home/rdc/Documents/db.ldif  
SASL/EXTERNAL authentication started 
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth 
SASL SSF: 0 
modifying entry "olcDatabase = {2}hdb,cn=config" 
modifying entry "olcDatabase = {2}hdb,cn=config" 
modifying entry "olcDatabase = {2}hdb,cn=config" 

[root@localhost cn=config]#

Lassen Sie uns die geänderte LDAP-Konfiguration überprüfen.

root@linux1 ~]# vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

[root@centos]# cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
 # AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. 
 # CRC32 a163f14c
dn: olcDatabase = {2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
entryUUID: 1bd9aa2a-8516-1036-934b-f7eac1189139
creatorsName: cn=config
createTimestamp: 20170212022422Z
olcSuffix: dc=vmnet,dc=local
olcRootDN: cn=ldapadm,dc=vmnet,dc=local
olcRootPW:: e1NTSEF1bUVyb1VzZTRjc2dkYVdGaDY0T0k = 
entryCSN: 20170215204423.726622Z#000000#000#000000 
modifiersName: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20170215204423Z

[root@centos]#

Wie Sie sehen, waren unsere LDAP-Unternehmensänderungen erfolgreich.

Als Nächstes möchten wir ein selbstsigniertes SSL-Zertifikat für OpenLDAP erstellen. Dadurch wird die Kommunikation zwischen dem Unternehmensserver und den Clients gesichert.

Step 2 - Erstellen Sie ein selbstsigniertes Zertifikat für OpenLDAP.

Wir werden openssl verwenden , um ein selbstsigniertes SSL-Zertifikat zu erstellen. Fahren Sie mit dem nächsten Kapitel fort.Create LDAP SSL Certificate with opensslAnweisungen zum Sichern der Kommunikation mit OpenLDAP. Wenn dann SSL-Zertifikate konfiguriert sind, haben wir unsere OpenLDAP-Unternehmenskonfiguration abgeschlossen.

Step 3 - Konfigurieren Sie OpenLDAP für die sichere Kommunikation mit dem Zertifikat.

Erstellen Sie eine certs.ldif- Datei in vim mit den folgenden Informationen:

dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/yourGeneratedCertFile.pem

dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/youGeneratedKeyFile.pem

Verwenden Sie als Nächstes erneut den Befehl ldapmodify , um die Änderungen in der OpenLDAP-Konfiguration zusammenzuführen.

[root@centos rdc]# ldapmodify -Y EXTERNAL  -H ldapi:/// -f certs.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

[root@centos]#

Lassen Sie uns abschließend unsere OpenLADP-Konfiguration testen.

[root@centos]# slaptest -u 
config file testing succeeded 
[root@centos]#

Step 4 - Richten Sie die slapd-Datenbank ein.

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG && 
chown ldap:ldap /var/lib/ldap/*

Aktualisiert das OpenLDAP-Schema.

Fügen Sie die Kosinus- und nis-LDAP-Schemas hinzu.

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

Erstellen Sie abschließend das Unternehmensschema und fügen Sie es der aktuellen OpenLDAP-Konfiguration hinzu.

Das Folgende ist für eine Domain namens vmnet. lokal mit einem LDAP- Administrator namens ldapadm .

dn: dc=vmnet,dc=local
dc: vmnet
objectClass: top
objectClass: domain

dn: cn=ldapadm ,dc=vmnet,dc=local
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager

dn: ou = People,dc=vmnet,dc=local
objectClass: organizationalUnit
ou: People

dn: ou = Group,dc=vmnet,dc=local 
objectClass: organizationalUnit 
ou: Group

Importieren Sie dies schließlich in das aktuelle OpenLDAP-Schema.

[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f ./base.ldif
 Enter LDAP Password:
adding new entry "dc=vmnet,dc=local"

adding new entry "cn=ldapadm ,dc=vmnet,dc=local"

adding new entry "ou=People,dc=vmnet,dc=local"

adding new entry "ou=Group,dc=vmnet,dc=local"

[root@centos]#

Step 5 - Richten Sie OpenLDAP Enterprise-Benutzer ein.

Öffnen Sie vim oder Ihren bevorzugten Texteditor und kopieren Sie das folgende Format. Dies ist für einen Benutzer mit dem Namen "entacct" in der LDAP-Domäne "vmnet.local" eingerichtet.

dn: uid=entacct,ou=People,dc=vmnet,dc=local 
objectClass: top
objectClass: account 
objectClass: posixAccount 
objectClass: shadowAccount 
cn: entacct 
uid: entacct 
uidNumber: 9999 
gidNumber: 100 
homeDirectory: /home/enyacct 
loginShell: /bin/bash 
gecos: Enterprise User Account 001 
userPassword: {crypt}x 
shadowLastChange: 17058 
shadowMin: 0 
shadowMax: 99999 
shadowWarning: 7

Importieren Sie nun die oben genannten Dateien, wie gespeichert, in das OpenLdap-Schema.

[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f entuser.ldif 
 Enter LDAP Password:
adding new entry "uid=entacct,ou=People,dc=vmnet,dc=local" 

[root@centos]#

Bevor die Benutzer auf LDAP Enterprise zugreifen können, müssen wir ein Kennwort wie folgt zuweisen:

ldappasswd -s password123 -W -D "cn=ldapadm,dc=entacct,dc=local" -x "uid=entacct 
,ou=People,dc=vmnet,dc=local"

-s Gibt das Passwort für den Benutzer an

-x ist der Benutzername, auf den das aktualisierte Passwort angewendet wird

-D ist der * definierte Name "zur Authentifizierung gegenüber dem LDAP-Schema.

Bevor Sie sich beim Enterprise-Konto anmelden, überprüfen Sie abschließend unseren OpenLDAP- Eintrag.

[root@centos rdc]# ldapsearch -x cn=entacct -b dc=vmnet,dc=local
 # extended LDIF
 #
 # LDAPv3
 # base <dc=vmnet,dc=local> with scope subtree
 # filter: cn=entacct
 # requesting: ALL 
 # 
 # entacct, People, vmnet.local 
dn: uid=entacct,ou=People,dc=vmnet,dc=local 
objectClass: top 
objectClass: account 
objectClass: posixAccount 
objectClass: shadowAccount 
cn: entacct 
uid: entacct 
uidNumber: 9999 
gidNumber: 100 
homeDirectory: /home/enyacct 
loginShell: /bin/bash 
gecos: Enterprise User Account 001 
userPassword:: e2NyeXB0fXg= 
shadowLastChange: 17058 
shadowMin: 0 
shadowMax: 99999 
shadowWarning: 7

Das Konvertieren von Dingen wie / etc / passwd und / etc / groups in die OpenLDAP-Authentifizierung erfordert die Verwendung von Migrationstools. Diese sind im Migrationstools- Paket enthalten. Anschließend in / usr / share / migrationtools installiert .

[root@centos openldap-servers]# ls -l /usr/share/migrationtools/
total 128
-rwxr-xr-x. 1 root root  2652 Jun  9  2014 migrate_aliases.pl
-rwxr-xr-x. 1 root root  2950 Jun  9  2014 migrate_all_netinfo_offline.sh
-rwxr-xr-x. 1 root root  2946 Jun  9  2014 migrate_all_netinfo_online.sh
-rwxr-xr-x. 1 root root  3011 Jun  9  2014 migrate_all_nis_offline.sh
-rwxr-xr-x. 1 root root  3006 Jun  9  2014 migrate_all_nis_online.sh
-rwxr-xr-x. 1 root root  3164 Jun  9  2014 migrate_all_nisplus_offline.sh
-rwxr-xr-x. 1 root root  3146 Jun  9  2014 migrate_all_nisplus_online.sh
-rwxr-xr-x. 1 root root  5267 Jun  9  2014 migrate_all_offline.sh
-rwxr-xr-x. 1 root root  7468 Jun  9  2014 migrate_all_online.sh
-rwxr-xr-x. 1 root root  3278 Jun  9  2014 migrate_automount.pl
-rwxr-xr-x. 1 root root  2608 Jun  9  2014 migrate_base.pl

Step 6 - Schließlich müssen wir den Zugriff auf den slapd-Dienst zulassen, damit er Anfragen bearbeiten kann.

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

Konfigurieren Sie den LDAP-Clientzugriff

Für die Konfiguration des LDAP-Clientzugriffs sind die folgenden Pakete auf dem Client erforderlich: openldap, open-ldap-Clients und nss_ldap.

Das Konfigurieren der LDAP-Authentifizierung für Client-Systeme ist etwas einfacher.

Step 1 - Abhängige Packeges installieren -

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

Step 2- Konfigurieren Sie die LDAP-Authentifizierung mit authconfig .

authconfig --enableldap --enableldapauth --ldapserver=10.25.0.1 --
ldapbasedn="dc=vmnet,dc=local" --enablemkhomedir --update

Step 3 - Starten Sie den nslcd-Dienst neu.

systemctl restart  nslcd