OpenLDAP-palvelimen asentaminen keskitettyä todennusta varten


Lightweight Directory Access Protocol (lyhyesti LDAP) on alan standardi, kevyt ja laajalti käytetty protokollajoukko hakemistopalvelujen käyttämiseen. Hakemistopalvelu on jaettu tietoinfrastruktuuri jokapäivä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 tietoa, ja se tunnistetaan yksilöllisesti niin kutsutulla Distinguished Name (DN) perusteella. Jokaisella merkinnän attribuutilla on tyyppi ja yksi tai useampi arvo.

Attribuutti on merkintään liittyvä tieto. Tyypit ovat tyypillisesti muistomerkkijonoja, kuten "cn" yleisnimelle tai "mail" sähköpostiosoitteelle. Jokaiselle attribuutille on määritetty yksi tai useampi arvo, joka koostuu välilyönnillä erotetusta luettelosta.

Seuraavassa on esimerkki siitä, kuinka tiedot järjestetään LDAP-hakemistossa.

Tässä artikkelissa näytämme, kuinka OpenLDAP-palvelin asennetaan ja määritetään keskitettyä todennusta varten Ubuntu 16.04/18.04- ja CentOS 7 -käyttöjärjestelmissä.

Vaihe 1: Asenna LDAP-palvelin

1. Aloita asentamalla OpenLDAP, avoimen lähdekoodin LDAP-toteutus ja joitain perinteisiä LDAP-hallintaapuohjelmia seuraavien komentojen avulla.

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

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

Kun asennus on valmis, voit käynnistää palvelun seuraavassa kuvatulla tavalla.

2. Suorita CentOS 7:ssä seuraavat komennot käynnistääksesi openldap-palvelindaemonin, ota se käyttöön automaattisesti käynnistyksen yhteydessä ja tarkista, se on käynnissä (Ubuntussa palvelun pitäisi käynnistyä automaattisesti systemd:ssä, voit tarkistaa sen tilan):

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

3. Salli seuraavaksi pyynnöt LDAP-palvelindaemonille palomuurin kautta kuvan mukaisesti.

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

Vaihe 2: LDAP-palvelimen määrittäminen

Huomaa: LDAP-määrityksen manuaalista muokkaamista ei suositella. Sinun on lisättävä määritykset tiedostoon ja käytettävä ldapadd tai ldapmodify-komento ladataksesi ne LDAP-hakemistoon alla kuvatulla tavalla.

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

slappasswd

5. Luo sitten LDIF-tiedosto (ldaprootpasswd.ldif), jota käytetään merkinnän lisäämiseen 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: osoittaa tietyn tietokannan ilmentymän nimen, ja se löytyy yleensä hakemistosta /etc/openldap/slapd.d/cn=config.
  • cn=config: ilmaisee yleiset määritysasetukset.
  • SALASANA: on hajautettu merkkijono, joka on saatu järjestelmänvalvojaa luotaessa.

6. Lisää seuraavaksi vastaava LDAP-merkintä määrittämällä ldap-palvelimeen ja yllä olevaan tiedostoon viittaava URI.

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

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

7. Kopioi nyt esimerkkitietokannan slapd-määritystiedosto /var/lib/ldap-hakemistoon ja aseta 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-perusskeemoja /etc/openldap/schema-hakemistosta 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 verkkotunnuksesi LDAP-tietokantaan ja luo verkkotunnuksellesi tiedosto nimeltä ldapdomain.ldif.

sudo vim ldapdomain.ldif 

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

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ä merkintöjä LDAP-hakemistoomme. Luo toinen tiedosto nimeltä baseldapdomain.ldif, jolla on seuraava sisältö.

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ää sitten merkinnät 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 tälle käyttäjälle salasana seuraavasti.

sudo useradd tecmint
sudo passwd tecmint

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

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

Yllä olevassa määrityksessä gidNumber on GID kohdassa /etc/group kohteelle tecmint ja lisää se OpenLDAP:hen. hakemistosta.

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ää käyttäjän tecmint määritelmät.

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 fthe-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 käyttämällä LDAP:ta tässä oppaassa kuvatulla tavalla:

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

Lisätietoja on OpenLDAP-ohjelmiston asiakirjaluettelon asianmukaisessa dokumentaatiossa, ja Ubuntu-käyttäjät voivat tutustua OpenLDAP-palvelinoppaaseen.

Yhteenveto

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