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