Wéi Installéiere OpenLDAP Server fir zentraliséiert Authentifikatioun


Lightweight Directory Access Protocol (kuerz LDAP) ass en Industriestandard, liichtgewiicht, wäit benotzte Set vu Protokoller fir Zougang zu Verzeechnesservicer. En Verzeechnesservice ass eng gedeelt Informatiounsinfrastruktur fir Zougang, Verwalte, Organisatioun an Aktualiséierung vun alldeeglechen Elementer an Netzwierkressourcen, wéi Benotzer, Gruppen, Apparater, E-Mailadressen, Telefonsnummeren, Bänn a vill aner Objeten.

Den LDAP Informatiounsmodell baséiert op Entréen. Eng Entrée an engem LDAP Verzeichnis representéiert eng eenzeg Eenheet oder Informatioun an ass eenzegaarteg identifizéiert duerch wat e Distinguished Name (DN) genannt gëtt. Jiddereng vun den Attributer vun der Entrée huet en Typ an een oder méi Wäerter.

En Attribut ass e Stéck Informatioun verbonne mat enger Entrée. D'Typen sinn typesch mnemonic Saiten, wéi cn fir gemeinsame Numm, oder Mail fir E-Mail Adress. All Attribut gëtt een oder méi Wäerter zougewisen, déi aus enger Plaz getrennten Lëscht besteet.

Déi folgend ass eng Illustratioun wéi Informatioun am LDAP Verzeichnis arrangéiert ass.

An dësem Artikel wäerte mir weisen wéi Dir den OpenLDAP Server fir zentraliséiert Authentifikatioun an Ubuntu 16.04/18.04 an CentOS 7 installéiere wëllt.

Schrëtt 1: LDAP Server installéieren

1. Start fir d'éischt mat der Installatioun vun OpenLDAP, eng Open Source Implementatioun vun LDAP an e puer traditionell LDAP Management Utilities mat de folgende Kommandoen.

# yum install openldap openldap-servers	    #CentOS 7
$ sudo apt install slapd ldap-utils	    #Ubuntu 16.04/18.04

Op Ubuntu, wärend der Packageinstallatioun, gitt Dir opgefuerdert d'Passwuert fir den Admin-Entrée an Ärem LDAP-Verzeichnis anzeginn, e séchert Passwuert a bestätegen.

Wann d'Installatioun fäerdeg ass, kënnt Dir de Service starten wéi nächst erkläert.

2. Op CentOS 7, lafen déi folgend Befehle fir den openldap Server Daemon unzefänken, aktivéiert et automatesch bei der Bootzäit unzefänken a kuckt ob et op a leeft (op Ubuntu soll de Service automatesch ënner Systemd gestart ginn, Dir kënnt einfach kontrolléieren säi Status):

$ sudo systemctl start slapd
$ sudo systemctl enable slapd
$ sudo systemctl status slapd

3. Als nächst, erlaabt Ufroe fir den LDAP Server Daemon duerch d'Firewall wéi gewisen.

# firewall-cmd --add-service=ldap    #CentOS 7
$ sudo ufw allow ldap                #Ubuntu 16.04/18.04

Schrëtt 2: LDAP Server konfiguréieren

Bemierkung: Et ass net recommandéiert d'LDAP-Konfiguratioun manuell z'änneren, Dir musst d'Konfiguratiounen an enger Datei addéieren an de Kommando ldapadd oder ldapmodify benotzen fir se an den LDAP-Verzeichnis ze lueden wéi hei ënnendrënner.

4. Erstellt elo e OpenLDAP Administrativ Benotzer a gitt e Passwuert fir dee Benotzer. Am Kommando ënnen gëtt en hashed Wäert fir dat gegebene Passwuert erstallt, notéiert et, Dir wäert et an der LDAP Konfiguratiounsdatei benotzen.

$ slappasswd

5. Erstellt dann eng LDIF-Datei (ldaprootpasswd.ldif) déi benotzt gëtt fir en Entrée an den LDAP-Verzeichnis ze addéieren.

$ sudo vim ldaprootpasswd.ldif

Füügt déi folgend Inhalter dran:

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD_CREATED

Erklärung vun den Attribut-Wäertpaaren hei uewen:

  • olcDatabase: weist e spezifeschen Datebank Instanz Numm un a kann typesch bannent /etc/openldap/slapd.d/cn=config fonnt ginn.
  • cn=config: weist global Configuratiounsoptiounen un.
  • PASSWORD: ass den hashed String, deen beim Schafe vum administrativen Benotzer kritt gëtt.

6. Als nächst füügt déi entspriechend LDAP-Entrée un andeems Dir d'URI spezifizéiert, deen op den ldap-Server an d'Datei hei uewen steet.

$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f ldaprootpasswd.ldif  

Schrëtt 3: LDAP Datebank konfiguréieren

7. Elo kopéiert d'Probe-Datebankkonfiguratiounsdatei fir slapd an den /var/lib/ldap Verzeichnis, a setzt déi richteg Permissiounen op der Datei.

$ sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
$ sudo chown -R ldap:ldap /var/lib/ldap/DB_CONFIG
$ sudo systemctl restart slapd

8. Als nächst importéiert e puer grondleeënd LDAP Schemaen aus dem /etc/openldap/schema Verzeichnis wéi folgend.

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

9. Füügt elo Ären Domain an der LDAP-Datebank an erstellt e Fichier mam Numm ldapdomain.ldif fir Är Domain.

$ sudo vim ldapdomain.ldif 

Füügt de folgenden Inhalt derbäi (ersetzt d'Beispill mat Ärem Domain a PASSWORD mam hashed-Wäert virdru kritt):

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
  read by dn.base="cn=Manager,dc=example,dc=com" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
  dn="cn=Manager,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=example,dc=com" write by * read

10. Füügt dann déi uewe genannte Konfiguratioun an d'LDAP-Datebank mat dem folgenden Kommando.

$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f ldapdomain.ldif

11. An dësem Schrëtt musse mir e puer Entréen an eise LDAP Verzeichnis derbäisetzen. Erstellt eng aner Datei mam Numm baseldapdomain.ldif mat dem folgenden Inhalt.

dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: example com
dc: example

dn: cn=Manager,dc=example,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=example,dc=com
objectClass: organizationalUnit
ou: Group 

Späichert d'Datei a füügt dann d'Entréen an de LDAP Verzeichnis.

$ sudo ldapadd -Y EXTERNAL -x -D cn=Manager,dc=example,dc=com -W -f baseldapdomain.ldif

12. De nächste Schrëtt ass e LDAP Benotzer zB ze kreéieren, tecmint, an e Passwuert fir dëse Benotzer wéi follegt.

$ sudo useradd tecmint
$ sudo passwd tecmint

13. Dann erstellen d'Definitioune fir eng LDAP Grupp an engem Fichier genannt ldapgroup.ldif mat de folgenden Inhalt.

dn: cn=Manager,ou=Group,dc=example,dc=com
objectClass: top
objectClass: posixGroup
gidNumber: 1005

An der uewe genannter Konfiguratioun ass gidNumber d'GID an /etc/group fir tecmint a füügt et an den OpenLDAP Verzeichnis.

$ sudo ldapadd -Y EXTERNAL -x  -W -D "cn=Manager,dc=example,dc=com" -f ldapgroup.ldif

14. Duerno erstellt eng aner LDIF-Datei genannt ldapuser.ldif a füügt d'Definitioune fir de Benotzer tecmint.

dn: uid=tecmint,ou=People,dc=example,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: tecmint
uid: tecmint
uidNumber: 1005
gidNumber: 1005
homeDirectory: /home/tecmint
userPassword: {SSHA}PASSWORD_HERE
loginShell: /bin/bash
gecos: tecmint
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

lued dann d'Konfiguratioun an den LDAP Verzeichnis.

$ ldapadd -Y EXTERNAL  -x -D cn=Manager,dc=example,dc=com -W -f  ldapuser.ldif

Wann Dir en zentrale Server fir Authentifikatioun ageriicht hutt, ass de leschten Deel fir de Client z'erméiglechen fir mat LDAP ze authentifizéieren wéi an dësem Guide erkläert:

  1. Wéi konfiguréieren ech LDAP Client fir extern Authentifikatioun ze verbannen

Fir méi Informatioun, kuckt déi entspriechend Dokumentatioun vum OpenLDAP Server Guide.

OpenLDAP ass eng Open Source Implementatioun vu LDAP op Linux. An dësem Artikel hu mir gewisen, wéi Dir den OpenLDAP-Server fir zentraliséiert Authentifikatioun installéiere an konfiguréieren, an Ubuntu 16.04/18.04 an CentOS 7. Wann Dir eng Fro oder Gedanken hutt fir ze deelen, zéckt net eis iwwer de Kommentarformular hei ënnen z'erreechen.