Kuidas installida OpenLDAP-server tsentraliseeritud autentimiseks


Kergekaaluline kataloogipääsuprotokoll (lühidalt - LDAP) on valdkonnastandard, kerge ja laialdaselt kasutatav protokollide komplekt kataloogiteenustele juurdepääsuks. Kataloogiteenus on jagatud infoinfrastruktuur igapäevastele üksustele ja võrguressurssidele, nagu kasutajad, rühmad, seadmed, e-posti aadressid, telefoninumbrid, köited ja paljud muud objektid, nende haldamiseks, korraldamiseks ja värskendamiseks.

LDAP-infomudel põhineb kirjetel. LDAP-kataloogi kirje tähistab ühte üksust või teavet ja on ainulaadselt identifitseeritud nn eristatava nimega (DN). Kõigil kirje atribuutidel on tüüp ja üks või mitu väärtust.

Atribuut on kirjega seotud teave. Tüübid on tavaliselt mnemoonilised stringid, näiteks “cn” üldnime või “mail” e-posti aadressi jaoks. Igale atribuudile on määratud üks või mitu väärtust, mis koosnevad tühikutega eraldatud loendist.

Järgnev on illustratsioon selle kohta, kuidas teave on LDAP-kataloogis korraldatud.

Selles artiklis näitame, kuidas installida ja konfigureerida OpenLDAP-server keskseks autentimiseks Ubuntu 16.04/18.04 ja CentOS 7-s.

1. samm: LDAP-serveri installimine

1. Kõigepealt alustage OpenAP-i installimine, LDAP-i avatud lähtekoodiga juurutamine ja mõned traditsioonilised LDAP-halduse utiliidid, kasutades järgmisi käske.

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

Ubuntu palutakse teil paketi installimise ajal sisestada oma LDAP-kataloogi administraatori sisestuse parool, määrata turvaline parool ja see kinnitada.

Kui installimine on lõpule jõudnud, võite teenuse käivitada järgmiselt.

2. Käivitage CentOS 7-s järgmised käsklused, et käivitada openldap-serveri deemon, lubage sellel käivitamisel automaatselt käivitada ja kontrollige, kas see töötab ja töötab (Ubuntu puhul peaks teenus olema süsteemi käivitamisel automaatselt käivitatav, saate lihtsalt kontrollida selle staatus):

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

3. Seejärel lubage tulemüüri kaudu taotlused LDAP-serveri deemonile, nagu näidatud.

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

2. samm: LDAP-serveri konfigureerimine

Märkus. LDAP-konfiguratsiooni pole soovitatav käsitsi muuta, peate lisama konfiguratsiooni faili ja kasutama käsku ldapadd või ldapmodify, et laadida need LDAP-kataloogi, nagu allpool näidatud.

4. Nüüd looge OpenLDAP administraatorikasutaja ja määrake sellele kasutajale parool. Allolevas käsus luuakse antud paroolile räsiväärtus, võtke see teadmiseks, kasutate seda LDAP-i konfiguratsioonifailis.

$ slappasswd

5. Seejärel looge LDIF-fail (ldaprootpasswd.ldif), mida kasutatakse kirje lisamiseks LDAP-kataloogi.

$ sudo vim ldaprootpasswd.ldif

Lisage sellesse järgmine sisu:

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

selgitades ülaltoodud atribuut-väärtuspaare:

  • olcDatabase: tähistab konkreetset andmebaasi eksemplari nime ja selle võib tavaliselt leida /etc/openldap/slapd.d/cn=config.
  • cn = config: näitab globaalseid seadistusvõimalusi.
  • PASSWORD: on räsitud string, mis saadakse administraatori kasutaja loomisel.

6. Seejärel lisage vastav LDAP-kirje, määrates ldap-serverile ja ülaltoodud failile viitava URI.

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

3. samm: LDAP-i andmebaasi konfigureerimine

7. Nüüd kopeerige slapdi andmebaasi konfiguratsioonifaili näidis kataloogi/var/lib/ldap ja määrake failile õiged õigused.

$ 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. Järgmisena importige mõned põhilised LDAP-skeemid kataloogist/etc/openldap/schema järgmiselt.

$ 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. Nüüd lisage oma domeen LDAP-i andmebaasi ja looge oma domeeni jaoks fail nimega ldapdomain.ldif.

$ sudo vim ldapdomain.ldif 

Lisage sinna järgmine sisu (asendage näide oma domeeni ja PASSWORDiga enne saadud räsiväärtusega):

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. Seejärel lisage ülaltoodud konfiguratsioon LDAP-i andmebaasi järgmise käsuga.

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

11. Selles etapis peame lisama mõned kirjed meie LDAP-kataloogi. Looge järgmine sisu nimega baseldapdomain.ldif.

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 

Salvestage fail ja lisage kirjed LDAP-kataloogi.

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

12. Järgmine samm on luua näiteks LDAP kasutaja tecmint ja määrata sellele kasutajale parool järgmiselt.

$ sudo useradd tecmint
$ sudo passwd tecmint

13. Seejärel looge LDAP-rühma definitsioonid järgmise sisuga failis nimega ldapgroup.ldif.

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

Ülaltoodud konfiguratsioonis on gidNumber tecminti grupis/etc/GID ja lisage see kataloogi OpenLDAP.

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

14. Järgmisena looge teine LDIF-fail nimega ldapuser.ldif ja lisage kasutaja tecmint definitsioonid.

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

siis laadige konfiguratsioon LDAP-kataloogi.

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

Kui olete keskse serveri autentimiseks seadistanud, on viimane osa lubada kliendil LDAP-i abil autentida, nagu selles juhendis selgitatud:

  1. Kuidas seadistada LDAP-klient välise autentimise ühendamiseks

Lisateabe saamiseks vaadake asjakohast dokumentatsiooni OpenLDAP-serveri juhendist.

OpenLDAP on Linuxis avatud lähtekoodiga LDAP-i juurutamine. Selles artiklis oleme näidanud, kuidas installida ja konfigureerida OpenLDAP-server keskseks autentimiseks Ubuntu 16.04/18.04 ja CentOS 7-s. Kui teil on küsimusi või mõtteid jagada, võtke meiega kindlasti ühendust alloleva kommentaarivormi kaudu.