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:
- 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.