Kako namestiti strežnik OpenLDAP za centralizirano preverjanje pristnosti


Lahek protokol dostopa do imenika (na kratko LDAP) je industrijski standard, lahek, široko uporabljan niz protokolov za dostop do imeniških storitev. Imeniška storitev je skupna informacijska infrastruktura za dostop, upravljanje, organiziranje in posodabljanje vsakodnevnih predmetov in omrežnih virov, kot so uporabniki, skupine, naprave, e -poštni naslovi, telefonske številke, zvezki in številni drugi predmeti.

Informacijski model LDAP temelji na vnosih. Vnos v imenik LDAP predstavlja eno samo enoto ali informacijo in je enolično identificiran s tem, kar se imenuje razlikovalno ime (DN). Vsak atribut vnosa ima vrsto in eno ali več vrednosti.

Atribut je podatek, povezan z vnosom. Tipi so običajno mnemonični nizi, na primer »cn« za splošno ime ali »pošta« za e -poštni naslov. Vsakemu atributu je dodeljena ena ali več vrednosti, sestavljenih iz seznama, ločenega s presledkom.

Spodaj je ponazoritev, kako so informacije razporejene v imeniku LDAP.

V tem članku bomo pokazali, kako namestiti in konfigurirati strežnik OpenLDAP za centralizirano preverjanje pristnosti v Ubuntu 16.04/18.04 in CentOS 7.

1. korak: Namestitev strežnika LDAP

1. Najprej začnite z namestitvijo OpenLDAP, odprtokodne implementacije LDAP in nekaterih tradicionalnih pripomočkov za upravljanje LDAP z naslednjimi ukazi.

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

V Ubuntuju boste med namestitvijo paketa morali vnesti geslo za skrbniški vnos v imenik LDAP, nastaviti varno geslo in ga potrditi.

Ko je namestitev končana, lahko storitev zaženete, kot je opisano v nadaljevanju.

2. Na CentOS 7 zaženite naslednje ukaze, da zaženete strežniški demon openldap, mu omogočite samodejni zagon ob zagonu in preverite, ali je zagnan (v sistemu Ubuntu je treba storitev samodejno zagnati pod systemd, lahko preprosto preverite njen status):

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

3. Nato dovolite zahteve demonu strežnika LDAP skozi požarni zid, kot je prikazano.

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

2. korak: Konfiguriranje strežnika LDAP

Opomba: Konfiguracije LDAP ni priporočljivo ročno urejati. Konfiguracije morate dodati v datoteko in uporabiti ukaz ldapadd ali ldapmodify, da jih naložite v imenik LDAP, kot je prikazano spodaj.

4. Zdaj ustvarite skrbniškega uporabnika OpenLDAP in mu dodelite geslo. V spodnjem ukazu se za podano geslo ustvari zgoščena vrednost, upoštevajte jo, uporabili jo boste v konfiguracijski datoteki LDAP.

$ slappasswd

5. Nato ustvarite datoteko LDIF (ldaprootpasswd.ldif), ki se uporablja za dodajanje vnosa v imenik LDAP.

$ sudo vim ldaprootpasswd.ldif

Vanj dodajte naslednjo vsebino:

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

razlaga zgornjih parov atribut-vrednost:

  • olcDatabase: označuje določeno ime primerka baze podatkov in ga običajno najdemo v /etc/openldap/slapd.d/cn=config.
  • cn = config: označuje globalne možnosti konfiguracije.
  • GESLO: je zgoščeni niz, pridobljen med ustvarjanjem skrbniškega uporabnika.

6. Nato dodajte ustrezen vnos LDAP tako, da podate URI, ki se nanaša na strežnik ldap, in zgornjo datoteko.

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

3. korak: Konfiguriranje baze podatkov LDAP

7. Zdaj kopirajte vzorčno konfiguracijsko datoteko zbirke podatkov za slapd v imenik/var/lib/ldap in nastavite pravilna dovoljenja za datoteko.

$ 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. Nato uvozite nekaj osnovnih shem LDAP iz imenika/etc/openldap/schema, kot sledi.

$ 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. Zdaj dodajte svojo domeno v bazo LDAP in ustvarite datoteko z imenom ldapdomain.ldif za svojo domeno.

$ sudo vim ldapdomain.ldif 

Vanj dodajte naslednjo vsebino (primer zamenjajte z vašo domeno in GESLO z zgoščeno vrednostjo, ki ste jo dobili prej):

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. Nato dodajte zgornjo konfiguracijo v bazo podatkov LDAP z naslednjim ukazom.

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

11. V tem koraku moramo v imenik LDAP dodati nekaj vnosov. Ustvarite drugo datoteko baseldapdomain.ldif z naslednjo vsebino.

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 

Shranite datoteko in nato vnose dodajte v imenik LDAP.

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

12. Naslednji korak je ustvarjanje uporabnika LDAP, na primer tecmint, in nastavitev gesla za tega uporabnika na naslednji način.

$ sudo useradd tecmint
$ sudo passwd tecmint

13. Nato ustvarite definicije za skupino LDAP v datoteki z imenom ldapgroup.ldif z naslednjo vsebino.

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

V zgornji konfiguraciji je gidNumber GID v /etc /group za tecmint in ga doda v imenik OpenLDAP.

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

14. Nato ustvarite drugo datoteko LDIF z imenom ldapuser.ldif in dodajte definicije za uporabnika 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

nato naložite konfiguracijo v imenik LDAP.

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

Ko nastavite osrednji strežnik za preverjanje pristnosti, je zadnji del, da odjemalcu omogočite preverjanje pristnosti z uporabo protokola LDAP, kot je razloženo v tem priročniku:

  1. Kako konfigurirati odjemalca LDAP za povezavo z zunanjo avtentikacijo

Za več informacij glejte ustrezno dokumentacijo iz vodnika za strežnike OpenLDAP.

OpenLDAP je odprtokodna implementacija LDAP v Linuxu. V tem članku smo pokazali, kako namestiti in konfigurirati strežnik OpenLDAP za centralizirano preverjanje pristnosti, v Ubuntu 16.04/18.04 in CentOS 7. Če imate vprašanja ali misli, ki jih želite deliti, nas prosimo kontaktirajte preko spodnjega obrazca za komentarje.