Kaip įdiegti „OpenLDAP“ serverį centralizuotam autentifikavimui


„Lightweight Directory Access Protocol“ (trumpai tariant, LDAP) yra pramonės standartas, lengvas, plačiai naudojamas protokolų rinkinys, skirtas prisijungti prie katalogų paslaugų. Katalogų paslauga yra bendra informacijos infrastruktūra, skirta prieigai prie kasdienių elementų ir tinklo išteklių, tokių kaip vartotojai, grupės, įrenginiai, el. Pašto adresai, telefono numeriai, tomai ir daugybė kitų objektų, valdyti, tvarkyti ir atnaujinti.

LDAP informacinis modelis pagrįstas įrašais. Įrašas LDAP kataloge reiškia vieną vienetą ar informaciją ir yra unikaliai identifikuojamas vadinamuoju skiriamuoju vardu (DN). Kiekvienas įrašo atributas turi tipą ir vieną ar daugiau reikšmių.

Atributas yra su įrašu susijusi informacijos dalis. Tipai paprastai yra mnemoninės eilutės, pvz., „Cn“ bendram vardui arba „paštas“ el. Pašto adresui. Kiekvienam atributui priskiriama viena ar daugiau reikšmių, sudarytų iš tarpų atskirto sąrašo.

Toliau pateikiama informacijos išdėstymo LDAP kataloge iliustracija.

Šiame straipsnyje mes parodysime, kaip įdiegti ir konfigūruoti „OpenLDAP“ serverį centralizuotam autentifikavimui „Ubuntu 16.04/18.04“ ir „CentOS 7“.

1 veiksmas: įdiekite LDAP serverį

1. Pirmiausia pradėkite diegdami „OpenLDAP“, atvirojo šaltinio LDAP diegimą ir kai kurias tradicines LDAP tvarkymo priemones naudodami šias komandas.

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

„Ubuntu“ paketo diegimo metu būsite paraginti įvesti administratoriaus įrašo slaptažodį į savo LDAP katalogą, nustatyti saugų slaptažodį ir jį patvirtinti.

Baigę diegimą, galite pradėti paslaugą, kaip paaiškinta toliau.

2. „CentOS 7“ paleiskite šias komandas, kad paleistumėte „openldap“ serverio deemoną, leiskite jam automatiškai paleisti įkrovos metu ir patikrinkite, ar jis veikia ir veikia („Ubuntu“ paslauga turėtų būti automatiškai paleista sistemoje „systemd“, galite tiesiog patikrinti jo statusas):

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

3. Tada per užkardą leiskite užklausas LDAP serverio demonui, kaip parodyta.

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

2 žingsnis: LDAP serverio konfigūravimas

Pastaba: nerekomenduojama rankiniu būdu redaguoti LDAP konfigūracijos, turite pridėti konfigūracijas į failą ir naudoti komandą ldapadd arba ldapmodify, kad jas įkeltumėte į LDAP katalogą, kaip parodyta žemiau.

4. Dabar sukurkite „OpenLDAP“ administravimo vartotoją ir priskirkite tam vartotojui slaptažodį. Žemiau pateiktoje komandoje sukuriama maišo reikšmė nurodytam slaptažodžiui, atkreipkite dėmesį į tai, naudosite ją LDAP konfigūracijos faile.

$ slappasswd

5. Tada sukurkite LDIF failą (ldaprootpasswd.ldif), kuris naudojamas įrašui pridėti prie LDAP katalogo.

$ sudo vim ldaprootpasswd.ldif

Į jį įtraukite šį turinį:

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

paaiškinant aukščiau esančias atributų ir reikšmių poras:

  • „olcDatabase“: nurodo konkretų duomenų bazės egzemplioriaus pavadinimą ir paprastai jį galima rasti /etc/openldap/slapd.d/cn=config.
  • cn = config: nurodo visuotines konfigūracijos parinktis.
  • PASSWORD: yra maišos eilutė, gauta kuriant administravimo vartotoją.

6. Tada pridėkite atitinkamą LDAP įrašą, nurodydami URI, nukreipiantį į LDAP serverį ir aukščiau esantį failą.

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

3 veiksmas: konfigūruokite LDAP duomenų bazę

7. Dabar nukopijuokite slapd duomenų bazės konfigūracijos failo pavyzdį į/var/lib/ldap katalogą ir nustatykite teisingus failo leidimus.

$ 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. Toliau importuokite kai kurias pagrindines LDAP schemas iš katalogo/etc/openldap/schema taip.

$ 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. Dabar pridėkite savo domeną į LDAP duomenų bazę ir sukurkite savo domenui failą pavadinimu ldapdomain.ldif.

$ sudo vim ldapdomain.ldif 

Į jį pridėkite šį turinį (pavyzdį pakeiskite savo domenu ir PASSWORD prieš tai gauta maišos reikšme):

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. Tada pridėkite aukščiau nurodytą konfigūraciją į LDAP duomenų bazę naudodami šią komandą.

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

11. Šiame žingsnyje turime pridėti keletą įrašų į savo LDAP katalogą. Sukurkite kitą failą, pavadintą baseldapdomain.ldif su tokiu turiniu.

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 

Išsaugokite failą ir pridėkite įrašus į LDAP katalogą.

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

12. Kitas žingsnis yra sukurti LDAP vartotoją, pvz., „Tecmint“, ir nustatyti šio vartotojo slaptažodį taip.

$ sudo useradd tecmint
$ sudo passwd tecmint

13. Tada sukurkite LDAP grupės apibrėžimus faile, pavadintame ldapgroup.ldif su tokiu turiniu.

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

Pirmiau pateiktoje konfigūracijoje „gidNumber“ yra „tecmint“ grupės/etc/grupėje GID ir pridėkite jį prie „OpenLDAP“ katalogo.

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

14. Tada sukurkite kitą LDIF failą pavadinimu ldapuser.ldif ir pridėkite vartotojo tecmint apibrėžimus.

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

tada įkelkite konfigūraciją į LDAP katalogą.

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

Nustačius centrinį serverį autentifikavimui, paskutinė dalis yra leisti klientui autentifikuoti naudojant LDAP, kaip paaiškinta šiame vadove:

  1. Kaip sukonfigūruoti LDAP klientą prijungti išorinį autentifikavimą

Norėdami gauti daugiau informacijos, žiūrėkite atitinkamus dokumentus iš „OpenLDAP“ serverio vadovo.

„OpenLDAP“ yra atviro kodo „LDAP“ diegimas sistemoje „Linux“. Šiame straipsnyje mes parodėme, kaip įdiegti ir konfigūruoti „OpenLDAP“ serverį centralizuotam autentifikavimui, „Ubuntu 16.04/18.04“ ir „CentOS 7“. Jei turite klausimų ar minčių, kuriuos norite pasidalinti, nedvejodami susisiekite su mumis naudodami toliau pateiktą komentarų formą.