Kako instalirati OpenLDAP poslužitelj za centraliziranu provjeru autentičnosti


Lightweight Directory Access Protocol (ukratko LDAP) industrijski je standardni, lagani, naširoko korišten skup protokola za pristup uslugama imenika. Imenička usluga je zajednička informacijska infrastruktura za pristup, upravljanje, organiziranje i ažuriranje svakodnevnih stavki i mrežnih resursa, kao što su korisnici, grupe, uređaji, adrese e-pošte, telefonski brojevi, volumeni i mnogi drugi objekti.

Informacijski model LDAP temelji se na unosima. Unos u LDAP direktoriju predstavlja jednu jedinicu ili informaciju i jedinstveno je identificiran onim što se naziva Razlikovani naziv (DN). Svaki od atributa unosa ima vrstu i jednu ili više vrijednosti.

Atribut je podatak povezan s unosom. Tipovi su obično mnemonički nizovi, kao što je “cn” za uobičajeno ime ili “mail” za adresu e-pošte. Svakom atributu dodijeljena je jedna ili više vrijednosti koje se sastoje u popisu odvojenom razmakom.

Slijedi ilustracija kako su informacije raspoređene u LDAP direktoriju.

U ovom ćemo članku pokazati kako instalirati i konfigurirati OpenLDAP poslužitelj za centraliziranu provjeru autentičnosti u Ubuntu 16.04/18.04 i CentOS 7.

Korak 1: Instaliranje LDAP poslužitelja

1. Prvo započnite instaliranjem OpenLDAP, implementacije otvorenog koda LDAP i nekih tradicionalnih uslužnih programa za upravljanje LDAP-om pomoću sljedećih naredbi.

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

Na Ubuntu, tijekom instalacije paketa, od vas će se tražiti da unesete lozinku za administratorski unos u vašem LDAP direktoriju, postavite sigurnu lozinku i potvrdite je.

Kada instalacija završi, možete pokrenuti uslugu kao što je objašnjeno u nastavku.

2. Na CentOS 7, pokrenite sljedeće naredbe za pokretanje openldap demona poslužitelja, omogućite mu automatsko pokretanje tijekom pokretanja i provjerite je li pokrenut je i radi (na Ubuntu servis bi se trebao automatski pokrenuti pod systemd, možete jednostavno provjeriti njegov status):

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

3. Zatim dopustite zahtjeve demonu LDAP poslužitelja kroz vatrozid kao što je prikazano.

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

Korak 2: Konfiguriranje LDAP poslužitelja

Napomena: Ne preporučuje se ručno uređivanje LDAP konfiguracije, trebate dodati konfiguracije u datoteku i koristiti ldapadd ili ldapmodify naredba za njihovo učitavanje u LDAP direktorij kao što je prikazano u nastavku.

4. Sada stvorite OpenLDAP administrativnog korisnika i dodijelite lozinku tom korisniku. U donjoj naredbi stvara se raspršena vrijednost za danu lozinku, zabilježite je, koristit ćete je u LDAP konfiguracijskoj datoteci.

slappasswd

5. Zatim izradite LDIF datoteku (ldaprootpasswd.ldif) koja se koristi za dodavanje unosa u LDAP direktorij.

sudo vim ldaprootpasswd.ldif

U njega dodajte sljedeće sadržaje:

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

objašnjavajući gornje parove atribut-vrijednost:

  • olcDatabase: označava određeni naziv instance baze podataka i obično se može pronaći unutar /etc/openldap/slapd.d/cn=config.
  • cn=config: označava opcije globalne konfiguracije.
  • PASSWORD: raspršeni je niz dobiven tijekom stvaranja administrativnog korisnika.

6. Zatim dodajte odgovarajući LDAP unos navodeći URI koji se odnosi na ldap poslužitelj i gornju datoteku.

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

Korak 3: Konfiguriranje LDAP baze podataka

7. Sada kopirajte konfiguracijsku datoteku uzorka baze podataka za slapd u direktorij /var/lib/ldap i postavite ispravna dopuštenja za datoteku .

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. Zatim uvezite neke osnovne LDAP sheme iz direktorija /etc/openldap/schema kako slijedi.

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. Sada dodajte svoju domenu u LDAP bazu podataka i kreirajte datoteku pod nazivom ldapdomain.ldif za svoju domenu.

sudo vim ldapdomain.ldif 

U njega dodajte sljedeći sadržaj (primjer zamijenite svojom domenom i LOZINKOM prethodno dobivenom raspršenom vrijednošću):

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. Zatim dodajte gornju konfiguraciju u LDAP bazu podataka pomoću sljedeće naredbe.

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

11. U ovom koraku moramo dodati neke unose u naš LDAP direktorij. Napravite drugu datoteku pod nazivom baseldapdomain.ldif sa sljedećim sadržajem.

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 

Spremite datoteku i zatim dodajte unose u LDAP direktorij.

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

12. Sljedeći korak je kreiranje LDAP korisnika za primjer, tecmint, i postavljanje lozinke za ovog korisnika kako slijedi.

sudo useradd tecmint
sudo passwd tecmint

13. Zatim kreirajte definicije za LDAP grupu u datoteci pod nazivom ldapgroup.ldif sa sljedećim sadržajem.

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

U gornjoj konfiguraciji, gidNumber je GID u /etc/group za tecmint i dodajte ga u OpenLDAP imenik.

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

14. Zatim stvorite drugu LDIF datoteku pod nazivom ldapuser.ldif i dodajte definicije za korisnika 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

zatim učitajte konfiguraciju u LDAP direktorij.

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

Nakon što ste postavili središnji poslužitelj za autentifikaciju, posljednji dio je omogućiti klijentu autentifikaciju pomoću LDAP-a kao što je objašnjeno u ovom vodiču:

  1. Kako konfigurirati LDAP klijent za povezivanje vanjske provjere autentičnosti

Za više informacija pogledajte odgovarajuću dokumentaciju iz kataloga dokumenata softvera OpenLDAP, a korisnici Ubuntua mogu pogledati vodič za poslužitelj OpenLDAP.

Sažetak

OpenLDAP je implementacija LDAP-a otvorenog koda u Linuxu. U ovom smo članku pokazali kako instalirati i konfigurirati OpenLDAP poslužitelj za centraliziranu provjeru autentičnosti, u Ubuntu 16.04/18.04 i CentOS 7. Ako imate pitanje ili razmišljanja za podijeliti, ne ustručavajte se kontaktirati nas putem obrasca za komentare u nastavku.