Slik installerer du OpenLDAP Server for sentralisert autentisering


Lightweight Directory Access Protocol (kort sagtLDAP) er en industristandard, lett, mye brukt sett med protokoller for tilgang til katalogtjenester. En katalogtjeneste er en delt informasjonsinfrastruktur for å få tilgang til, administrere, organisere og oppdatere hverdagslige elementer og nettverksressurser, for eksempel brukere, grupper, enheter, e-postadresser, telefonnumre, volumer og mange andre objekter.

Informasjonsmodellen LDAP er basert på oppføringer. En oppføring i en LDAP-katalog representerer en enkelt enhet eller informasjon og identifiseres unikt med det som kalles et Distinguished Name (DN). Hver av oppføringens attributter har en type og én eller flere verdier.

Et attributt er en del informasjon knyttet til en oppføring. Typene er vanligvis mnemoniske strenger, for eksempel «cn» for vanlig navn, eller «mail» for e-postadresse. Hvert attributt er tilordnet en eller flere verdier som består av en mellomromseparert liste.

Følgende er en illustrasjon av hvordan informasjon er ordnet i LDAP-katalogen.

I denne artikkelen vil vi vise hvordan du installerer og konfigurerer OpenLDAP-serveren for sentralisert autentisering i Ubuntu 16.04/18.04 og CentOS 7.

Trinn 1: Installere LDAP Server

1. Start først med å installere OpenLDAP, en åpen kildekodeimplementering av LDAP og noen tradisjonelle LDAP-administrasjonsverktøy ved å bruke følgende kommandoer.

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

Ubuntu, under pakkeinstallasjonen, vil du bli bedt om å skrive inn passordet for adminoppføringen i LDAP-katalogen, angi et sikkert passord og bekrefte det.

Når installasjonen er fullført, kan du starte tjenesten som forklart neste.

2.CentOS 7, kjør følgende kommandoer for å starte openldap-serverdaemonen, la den automatisk starte ved oppstart og sjekk om den er oppe og kjører (på Ubuntu skal tjenesten startes automatisk under systemd, du kan ganske enkelt sjekke statusen):

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

3. Deretter tillat forespørsler til LDAP-serverdemonen gjennom brannmuren som vist.

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

Trinn 2: Konfigurering av LDAP-server

Merk: Det anbefales ikke å redigere LDAP-konfigurasjonen manuelt, du må legge til konfigurasjonene i en fil og bruke ldapadd eller ldapmodify-kommandoen for å laste dem til LDAP-katalogen som vist nedenfor.

4. Opprett nå en OpenLDAP-administratorbruker og tilordne et passord for den brukeren. I kommandoen nedenfor opprettes en hash-verdi for det gitte passordet, legg merke til det, du vil bruke det i LDAP-konfigurasjonsfilen.

slappasswd

5. Deretter oppretter du en LDIF-fil (ldaprootpasswd.ldif) som brukes til å legge til en oppføring i LDAP-katalogen.

sudo vim ldaprootpasswd.ldif

Legg til følgende innhold i den:

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

som forklarer attributt-verdi-parene ovenfor:

  • olcDatabase: indikerer et spesifikt databaseforekomstnavn og kan vanligvis finnes i /etc/openldap/slapd.d/cn=config.
  • cn=config: indikerer globale konfigurasjonsalternativer.
  • PASSORD: er den hashed-strengen som ble hentet under opprettelsen av den administrative brukeren.

6. Deretter legger du til den tilsvarende LDAP-oppføringen ved å spesifisere URIen som refererer til ldap-serveren og filen ovenfor.

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

Trinn 3: Konfigurering av LDAP-database

7. Kopier nå eksempeldatabasekonfigurasjonsfilen for slapd inn i /var/lib/ldap-katalogen, og angi de riktige tillatelsene for filen .

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. Deretter importerer du noen grunnleggende LDAP-skjemaer fra /etc/openldap/schema-katalogen som følger.

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. Legg til domenet ditt i LDAP-databasen og lag en fil kalt ldapdomain.ldif for domenet ditt.

sudo vim ldapdomain.ldif 

Legg til følgende innhold i den (erstatt eksempelet med domenet ditt og PASSORD med den hash-verdien du har fått før):

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. Legg deretter til konfigurasjonen ovenfor i LDAP-databasen med følgende kommando.

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

11. I dette trinnet må vi legge til noen oppføringer i LDAP-katalogen vår. Opprett en annen fil kalt baseldapdomain.ldif med følgende innhold.

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 

Lagre filen og legg deretter oppføringene til LDAP-katalogen.

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

12. Det neste trinnet er å opprette en LDAP-bruker for eksempel, tecmint, og angi et passord for denne brukeren som følger.

sudo useradd tecmint
sudo passwd tecmint

13. Lag deretter definisjonene for en LDAP-gruppe i en fil kalt ldapgroup.ldif med følgende innhold.

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

I konfigurasjonen ovenfor er gidNumber GID i /etc/group for tecmint og legg den til i OpenLDAP katalog.

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

14. Deretter oppretter du en annen LDIF-fil kalt ldapuser.ldif og legger til definisjonene for brukeren 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

last deretter inn konfigurasjonen til LDAP-katalogen.

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

Når du har satt opp en sentral server for autentisering, er den siste delen å gjøre det mulig for klienten å autentisere ved hjelp av LDAP som forklart i denne veiledningen:

  1. Hvordan konfigurere LDAP-klient for å koble til ekstern autentisering

For mer informasjon, se den aktuelle dokumentasjonen fra OpenLDAP Software-dokumentkatalogen, og Ubuntu-brukere kan se OpenLDAP-serverveiledningen.

Sammendrag

OpenLDAP er en åpen kildekodeimplementering av LDAP i Linux. I denne artikkelen har vi vist hvordan du installerer og konfigurerer OpenLDAP-server for sentralisert autentisering, i Ubuntu 16.04/18.04 og CentOS 7. Hvis du har et spørsmål eller tanker å dele, ikke nøl med å kontakte oss via kommentarskjemaet nedenfor.