Servei de directori (openLDAP)

Objectiu:

Aquest tutorial explica com instal·lar i configurar un servidor ldap. Utilitzarem OpenLDAP, versió 2.

Aquest servei s’encarregarà d’emmagatzemar tota la informació dels usuaris de l’organització. A més serà l’encarregat d’autenticar els usuaris en la majoria de serveis que configurarem més endavant, com el correu, l’accés remot, etc.

Què és un servei de directori?

Un servidor, o servei, de directori és en el fons una base de dades. Les dades que emmagatzema poden anar des de les dades personals dels usuaris fins a la informació relativa d’inicis de sessió, carpetes de correu, àlies… en fi, gairebé qualsevol dada dels usuaris.

A més, cada cop que s’accedeix a un servei que necessita d’autenticació aquest servei és el que validarà que el nom d’usuari i la contrasenya siguin correctes i per tant es doni accés. Un servei LDAP és molt senzill de configurar, però pot donar mals de cap a l’hora de mantenir-lo.

Obtenció del software necessari:

Partim de la base que disposem d’un servidor amb Ubuntu 7.04 Server. És molt probable que aquest tutorial funcioni sobre d’altres distribucions, però ha estat provat principalment sobre Ubuntu.

Utilitzarem l’eina apt per aconseguir el software necessari. S’ha entrat al sistema utilitzant l’usuari root. Per començar actualitzem les nostres fonts de apt.

$ apt-get update

Per instal·lar el paquet de l’OpenLDAP executarem la següent comanda:

$ apt-get install slapd

Amb aquest paquet en tenim prou.

Durant la primera instal·lació ens demanarà una certa informació, la canviarem tota després, en qualsevol cas entrarem el següent:

  • Admin password: secret
  • Confirm password: secret

Per defecte els arxius de configuració d’OpenLDAP s’instal·len a la carpeta /etc/ldap. Principalment ens en interessen dos:

  • slapd.conf
  • ldap.conf

Aquests dos arxius contindran tota la informació del nostre sistema. Anem doncs a la configuració inicial.

Configuració:

La configuració inicial que es realitza de slapd és molt bàsica i no inclou cap element a la base de dades. Ens interessa, doncs, crear dos elements inicials, la base (domini) i el primer usuari que serà l’administrador del servidor LDAP. Per fer això d’una manera senzilla entrem la següent comanda:

$ dkpg-reconfigure slapd

En certa manera tornem a configurar el servidor, però aquest cop tindrem força més opcions. Entrarem les següents dades:

  • Omit OpenLDAP server configuration?: No
  • DNS Domain name: domini.local
  • Name of your organization: Nom de l’organització
  • Admin password: secret
  • Confirm password: secret
  • Database backend to use: BDB
  • Do you want your database to be removed when slapd is purged?: No
  • Move old database?: Yes
  • Allow LDAPv2 protocol?: No

Fet! Amb aquesta configuració ja podem començar a treballar seriosament. El primer que farem és acabar d’adaptar la configuració i per això modificarem l’arxiu slapd.conf.

$ pico /etc/ldap/slapd.conf

Assegurem-nos que hi ha aquestes dues línies:

rootdn          "cn=admin,dc=domini,dc=local"
rootpw          secret

secret és la contrasenya de l’administrador (admin) de l’OpenLDAP. Aquesta contrasenya és pot emmagatzemar en l’arxiu slapd.conf com a hash també, d’aquesta manera no queda en clar. Per fer-ho fem:

$ slappasswd -s secret
{SSHA}ttVTgdQPoVtRNy9p/op/YKSo8uIHS5Ww

Aquesta última línia és la que podem posar a l’arxiu:

rootdn          "cn=admin,dc=domini,dc=local"
rootpw          {SSHA}ttVTgdQPoVtRNy9p/op/YKSo8uIHS5Ww

Amb això podem donar per configurat el servidor. A partir d’ara hauríem de començar a afegir usuaris i demés, ho veurem amb més detall en el tutorial de Samba.

Volcat de la base de dades d’OpenLDAP:

Sovint ens pot interessar veure que hi ha a la base de dades de l’OpenLDAP. Per això hi ha la comanda slapcat. També la podem utilitzar per fer còpies de seguretat. El resultat de la comanda en el nostre servidor actual és la següent:

dn: dc=domini,dc=local
objectClass: top
objectClass: dcObject
objectClass: organization
o:: T3JnYW5pdHphY2nDg8Kz
dc: domini
structuralObjectClass: organization
entryUUID: b20371f8-b1d0-102b-8038-673a769ca4c3
creatorsName:
modifiersName:
createTimestamp: 20070618101617Z
modifyTimestamp: 20070618101617Z
entryCSN: 20070618101617Z#000000#00#000000

dn: cn=admin,dc=domini,dc=local
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e2NyeXB0fTF0YWVRb0x0bEkxWS4=
structuralObjectClass: organizationalRole
entryUUID: b204b4c8-b1d0-102b-8039-673a769ca4c3
creatorsName:
modifiersName:
createTimestamp: 20070618101617Z
modifyTimestamp: 20070618101617Z
entryCSN: 20070618101617Z#000001#00#000000

Gestió del directori:

Sens dubte, la manera més senzilla i gràfica de gestionar els elements del servei LDAP és utilitzant el paquet phpldapadmin. Aquest paquet permet la gestió de l’LDAP per interfície Web. La instal·lació és molt senzilla:

$ apt-get install phpldapadmin

Si s’ha fet el tutorial d’Apache2 + MySql5 + Php5 serà més senzill fins i tot. Per connectar al servidor s’haurà d’anar a l’adreça:

http://adreça_ip_servidor/phpldapadmin

El login és: cn=admin,dc=domini,dc=local i la contrasenya: secret.