Kuinka asentaa OpenLDAP-palvelin keskitettyä todennusta varten


Kevyt hakemistoprotokolla (lyhyesti LDAP) on alan standardi, kevyt, laajasti käytetty protokollaryhmä hakemistopalveluiden käyttämiseen. Hakemistopalvelu on jaettu tietoinfrastruktuuri päivittäisten kohteiden ja verkkoresurssien, kuten käyttäjien, ryhmien, laitteiden, sähköpostiosoitteiden, puhelinnumeroiden, taltioiden ja monien muiden kohteiden, käyttämiseen, hallintaan, järjestämiseen ja päivittämiseen.

LDAP-tietomalli perustuu merkintöihin. LDAP-hakemiston merkintä edustaa yhtä yksikköä tai tietoja, ja se tunnistaa yksilöllisesti nimellä DN (Distinguished Name). Jokaisella merkinnän attribuutilla on tyyppi ja yksi tai useampi arvo.

Attribuutti on tieto, joka liittyy merkintään. Tyypit ovat tyypillisesti muistijonoja, kuten ”cn” yleiselle nimelle tai “mail” sähköpostiosoitteelle. Jokaiselle määritteelle on annettu yksi tai useampi arvo, joka koostuu välilyönnillä erotetusta luettelosta.

Seuraava on esimerkki siitä, miten tiedot on järjestetty LDAP-hakemistoon.

Tässä artikkelissa näytetään, kuinka OpenLDAP-palvelin asennetaan ja määritetään keskitettyä todennusta varten Ubuntu 16.04/18.04 ja CentOS 7: ssä.

Vaihe 1: LDAP-palvelimen asentaminen

1. Aloita ensin asentamalla OpenLDAP, LDAP: n avoimen lähdekoodin toteutus ja jotkut perinteiset LDAP-hallintaohjelmat seuraavien komentojen avulla.

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

Ubuntussa paketin asennuksen aikana sinua pyydetään antamaan järjestelmänvalvojan merkinnän salasana LDAP-hakemistossa, asettamaan suojattu salasana ja vahvistamaan se.

Kun asennus on valmis, voit aloittaa palvelun seuraavalla tavalla.

2. Käynnistä CentOS 7: ssä seuraavat komennot käynnistääksesi openldap-palvelindemonin, anna sen käynnistyä automaattisesti käynnistyshetkellä ja tarkista onko se käynnissä (Ubuntussa palvelu pitäisi käynnistää automaattisesti systemd: ssä, voit yksinkertaisesti tarkistaa sen asema):

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

3. Salli seuraavaksi pyynnöt LDAP-palvelindemonille palomuurin kautta kuvan osoittamalla tavalla.

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

Vaihe 2: LDAP-palvelimen määritys

Huomautus: LDAP-määritysten muokkaamista ei suositella manuaalisesti, sinun on lisättävä kokoonpanot tiedostoon ja ladattava ne LDAP-hakemistoon ldapadd- tai ldapmodify-komennolla alla olevan kuvan mukaisesti.

4. Luo nyt OpenLDAP-järjestelmänvalvojan käyttäjä ja määritä salasana tälle käyttäjälle. Alla olevassa komennossa luodaan hajautettu arvo annetulle salasanalle, huomioi se, käytät sitä LDAP-määritystiedostossa.

$ slappasswd

5. Luo sitten LDIF-tiedosto (ldaprootpasswd.ldif), jota käytetään lisäämään merkintä LDAP-hakemistoon.

$ sudo vim ldaprootpasswd.ldif

Lisää siihen seuraava sisältö:

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

selittämällä yllä olevat attribuutti-arvo-parit:

  • olcDatabase: tarkoittaa tietyn tietokannan ilmentymän nimeä ja löytyy yleensä /etc/openldap/slapd.d/cn=config -osiosta.
  • cn = config: ilmaisee yleiset asetusvaihtoehdot.
  • PASSWORD: on hajautusmerkkijono, joka on saatu järjestelmänvalvojan käyttäjän luomisen yhteydessä.

6. Lisää seuraavaksi vastaava LDAP-merkintä määrittämällä UDD, joka viittaa ldap-palvelimeen ja yllä olevaan tiedostoon.

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

Vaihe 3: LDAP-tietokannan määrittäminen

7. Kopioi nyt slapd-esimerkkitietokannan määritystiedosto hakemistoon/var/lib/ldap ja määritä tiedostolle oikeat käyttöoikeudet.

$ 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. Tuo seuraavaksi joitain LDAP-perusmalleja hakemistosta/etc/openldap/schema seuraavasti.

$ 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. Lisää nyt toimialueesi LDAP-tietokantaan ja luo toimialueellesi tiedosto nimeltä ldapdomain.ldif.

$ sudo vim ldapdomain.ldif 

Lisää siihen seuraava sisältö (korvaa esimerkki verkkotunnuksellasi ja SALASANA aiemmin saadulla hash-arvolla):

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. Lisää sitten yllä oleva kokoonpano LDAP-tietokantaan seuraavalla komennolla.

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

11. Tässä vaiheessa meidän on lisättävä joitain merkintöjä LDAP-hakemistoon. Luo toinen tiedosto nimeltä baseldapdomain.ldif, jonka sisältö on seuraava.

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 

Tallenna tiedosto ja lisää merkinnät sitten LDAP-hakemistoon.

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

12. Seuraava vaihe on luoda LDAP-käyttäjä, esimerkiksi tecmint, ja asettaa salasana tälle käyttäjälle seuraavasti.

$ sudo useradd tecmint
$ sudo passwd tecmint

13. Luo sitten LDAP-ryhmän määritelmät tiedostoon ldapgroup.ldif, jonka sisältö on seuraava.

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

Edellä olevassa kokoonpanossa gidNumber on/etc/-ryhmän GID tecmintille ja lisää se OpenLDAP-hakemistoon.

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

14. Luo seuraavaksi toinen LDIF-tiedosto nimeltä ldapuser.ldif ja lisää määritelmät käyttäjän tecmintille.

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

lataa sitten kokoonpano LDAP-hakemistoon.

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

Kun olet määrittänyt keskuspalvelimen todennusta varten, viimeinen osa on antaa asiakkaalle mahdollisuus todentaa LDAP: lla tämän oppaan ohjeiden mukaisesti:

  1. Kuinka määritetään LDAP-asiakas yhdistämään ulkoinen todennus

Lisätietoja on OpenLDAP-palvelinoppaassa.

OpenLDAP on LDAP: n avoimen lähdekoodin toteutus Linuxissa. Tässä artikkelissa olemme osoittaneet, kuinka OpenLDAP-palvelin asennetaan ja määritetään keskitettyä todennusta varten, Ubuntu 16.04/18.04 ja CentOS 7: ssä. Jos sinulla on kysyttävää tai ajatuksia, älä epäröi ottaa meihin yhteyttä alla olevan kommenttilomakkeen kautta.