4. Chapter 1
openLDAP
OpenLDAP ´s un servei de directori que implementa l’est`ndard Lightweight
e a
Directory Access Protocol (LDAP). LDAP ´s un conjunt de protocols oberts
e
que es fan servir per accedir a informaci´ guardada centralment a trav´s de la
o e
xarxa.
• Informaci´ global centralitzada: L’avantatge m´s gran d’LDAP ´s que
o e e
la informaci´ per tota la organitzaci´ es pot consolidar dins d’un repositori
o o
central. Per exemple, en comptes d’administrar llistes d’usuaris per cada
grup dins d’una organitzaci´, es pot fer servir LDAP com directori central
o
accessible des de qualsevol part de la xarxa.
• Seguretat de la informaci´: Donat que LDAP suporta Secure Socket
o
Layers (SSL) i Transport Layer Security (TLS), les dades delicades es
poden protegir dels curiosos. Tamb´ pot fer servir els TCP Wrappers
e
per evitar que s’accedeixi a la informaci´ basant-nos en el lloc on ens la
o
demanen. Per` tamb´ t´ utilitats de control d’acc´s molt potents poden
o e e e
controlar l’acc´s a la informaci´ en funci´ de informaci´ LDAP, IP, noms
e o o o
de domini, etc..
• Varietat de Bases de Dades: LDAP suporta un gran n´mero de bases
u
de dades per guardar-hi els directoris. Aix` permet que els administradors
o
tinguin la flexibilitat necess`ria per desplegar la base de dades m´s indi-
a e
cada per cada tipus d’informaci´ que el servidor ha de guardar.
o
• Programable: Tamb´ t´ una interf´ de programaci´ molt ben definida
e e ıcie o
que ha fet que el n´mero de programes que poden interactuar amb els sis-
u
temes LDAP sigui molt gran i que no pari de cr´ixer dia a dia en quantitat
e
i qualitat.
• Suporta internacionalitzaci´ fent servir Unicode i etiquetes de llen-
o
guatge
LDAP ´s un sistema client-servidor. El servidor pot fer servir diferents bases
e
de dades per guardar un directori, cada un optimitzat per operacions de lectura
r`pides i de gran volum. Quan una aplicaci´ de client LDAP es connecta a un
a o
servidor LDAP pot, o b´ consultar un directori, o intentar modificar-lo.
e
3
5. En una consulta, el servidor, o b´ la contesta, o, si no pot contestar localment,
e
pot dirigir la consulta a una altre servidor LDAP que tingui la resposta.
Si l’aplicaci´ client vol modificar la informaci´ del directori LDAP, el servidor
o o
verifica que tingui perm´ per efectuar el canvi i despr´s afegeix o actualitza la
ıs e
informaci´.o
Es pot configurar el dimoni perqu` vagi emmagatzemant r`pliques de la BDD
e e
a altres llocs seguint l’esquema un mestre/molts esclaus. Per` es segur que en
o
el futur suportar` molts/molts.
a
La part negativa de LDAP ´s que pot ser complicat de configurar si no es t´
e e
clar qu` es vol fer exactament.
e
1.1 Informaci´ LDAP
o
LDAP permet als usuaris accedir f`cilment a la informaci´ encara que el seu
a o
objectiu va m´s enll` ja que ´s capa¸ de propagar els seus directoris a altres
e a e c
serveis LDAP per tot el m´n, permetent acc´s global a la informaci´.
o e o
La informaci´ s’organitza de forma jer`rquica fent servir directoris. Aix` tradi-
o a o
cionalment servia per representar geogr`ficament les organitzacions agrupant-les
a
per pa¨ısos i sota les organitzacions s’hi inclo¨ la informaci´ necess`ria: trebal-
ıa o a
ladors, impressores, documents, etc.. Per` una forma m´s corrent actualment
o e
´s que aquesta s’organitzi aprofitant-se dels noms de domini d’Internet
e
4
6. En la figura es pot veure l’esquema t´ ıpic on hi ha una persona ’xavier ’ que
pertany a una organitzaci´ ’prova.com’
o
La forma de referir-s’hi ser` a trav´s del seu RDN (nom relatiu distingit) que
a e
en l’exemple anterior seria: ”uid=xavier,ou=People,dc=prova,dc=com”
El format complet dels DN est` descrit en el document RFC2253: LDAP v3:
a
UTF-8 String representation of Distingished Names”
1.1.1 Esquemes
OpenLDAP funciona a trav´s d’esquemes que serveixen per definir els grups de
e
tipus de dades en els que s’emmagatzemar` informaci´. D’aquesta forma LDAP
a o
es pot fer servir per m´ltiples usos diferents d’emmagatzematge centralitzat de
u
dades: llistats telef`nic, gesti´ d’usuaris, repositori central, etc..
o o
En els esquemes s’hi defineixen els objectclass que s´n els que determinen
o
quins atributs fan falta i quins no fan falta per cada una de les entrades. Les
definicions objectclass estan en diferents fitxers dins del directori /etc/openl-
dap/schema/.
1.1.2 Format de la informaci´
o
La informaci´ a LDAP est` basada en les entrades que tindran un unic nom
o a ´
distingit (DN) i una col·lecci´ d’atributs. Cada atribut tenen una entrada i un
o
valor:
Entrada: Una entrada ´s una unitat en un directori LDAP.
e
Cada entrada s’identifica a trav´s del seu nom unic dn (distinguished
e ´
name), cn (common name)
Valor: Els atributs s´n peces d’informaci´ directament associada
o o
amb la entrada.
Exemple: Una organitzaci´ pot ser representada com una en-
o
trada LDAP.
• Els atributs associats amb la organitzaci´ poden ser el n´mero
o u
de fax, l’adre¸a, etc..
c
• La entrada poden ser tamb´ persones i els atributs el tel`fon,
e e
el correu electr`nic, etc..
o
Alguns atributs poden ser obligatoris i altres opcionals.
1.1.3 Backend
Cal tenir en compte que LDAP nom´s ´s un protocol i que per tant necessita un
e e
backend per guardar les dades persistents. El protocol no diu res sobre de quina
forma s’han de guardar les dades en disc i per tant cal tenir algun mecanisme
per fer-ho. Els clients per`, no tindran mai informaci´ sobre la forma en que es
o o
guarda la informaci´, ni del backend que es far` servir.
o a
5
7. Per aix` openLDAP ens aporta uns backends de base de dades amb els quals
o
podem treballar. En principi qualsevol dels que t´ disponibles funcionar` b´
e a e
encara que per defecte els assistents en recomanen un.
1.2 Els fitxers LDIF
Els arxius LDIF es fan servir habitualment per importar i exportar dades als
servidors. Per tant ´s el format d’intercanvi de dades de LDAP (LDIF). Es
e
tracta d’una representaci´ en text ASCII de les entrades LDAP.
o
[ < id >]
dn : < distinguished name >
< nomatribut >: < valoratribut >
< nomatribut >: < valoratribut >
< nomatribut >: < valoratribut >
Per exemple en l’entrada seg¨ent es pot veure que es defineix un dn (ou=people,
u
dc=iescendrassos.net, dc=net) i dos atributs (objectClass i ou)
dn : ou = people , dc = iescendrassos , dc = net
objectClass : organizationalUnit
ou : people
Cada entrada pot tenir tants atributs com siguin necessaris i normalment es
marca el final de l’entrada deixant-hi una l´
ınia en blanc.
• No cal oblidar que els atributs no s´n arbitraris sin´ que han d’estar
o o
definits en l’esquema adequat
En principi no hauria de fer falta la modificaci´ de valors LDIF manualment ja
o
que hi ha molts programes i aplicacions que ho permetran fer sense rec´rrer a
o
l’edici´ d’arxius LDIF
o
Qualsevol valor compr`s dins de “¡” i “¿” ´s una variable i pot ser configurat
e e
quan es cre¨ una nova entrada LDAP, excepte per ¡id¿. El ¡id¿ ´s un n´mero
ı e u
determinat per l’aplicaci´ que es fa servir per modificar una entrada.
o
En principi no hi ha d’haver mai necessitat de modificar valors LDIF manual-
ment. Per aix` hi ha les aplicacions LDAP.
o
6
8. Chapter 2
Instal·laci´ del servidor
o
OpenLDAP
LDAP en Ubuntu ara agafa dades de la configuraci´ del servidor de manera que
o
´s important que hi hagi refer`ncia al domini en el fitxer /etc/hosts:
e e
127.0.0.1 localhost
127.0.0.1 servidor . iescendrassos . net servidor
La instal·laci´ en sistemes basats en Debian nom´s requereixen que s’instal·lin
o e
dos fitxers:
apt - get install slapd ldap - utils
Durant la instal·laci´ nom´s se’ns demanar` la contrasenya de l’administrador
o e a
del directori LDAP perqu` les altres dades ja les agafa autom`ticament (do-
e a
mini, base de dades, etc...). Es pot refer en qualsevol moment amb *dpkg-
reconfigure*
dpkg - reconfigure slapd
Si es fa servir dpkg-reconfigure l’assistent demana molta m´s informaci´ del que
e o
havia demanat en temps d’instal·laci´. En aquest cas es demanar` el domini, el
o a
sistema de backend, l’usuari administrador i la seva contrasenya, etc..
7
9. Quan s’hagi acabat la instal·laci´ i estigui ben configurada es pot comprovar
o
qu` ´s el que s’ha emmagatzemat en el directori LDAP inspeccionant-lo amb
e e
slapcat.
slapcat
Que donar` un resultat com aquest on es pot veure els diferents dominis que
a
s’han creat:
dn : dc = iescendrassos , dc = net
objectClass : top
objectClass : dcObject
objectClass : organization
o : iescendrassos . net
dc : iescendrassos
str uctu ralOb ject Class : organization
entryUUID : dbd0d5c6 - db9f -1031 -9 aa9 - d1fd552f8eae
creatorsName : cn = admin , dc = iescendrassos , dc = net
createTimestamp : 20121216074216 Z
entryCSN : 201 21216 0742 16.80 0141 Z # 000000#000#000000
modifiersName : cn = admin , dc = iescendrassos , dc = net
modifyTimestamp : 20121216074216 Z
dn : cn = admin , dc = iescendrassos , dc = net
objectClass : simpleSecurityObject
objectClass : organizationalRole
cn : admin
description : LDAP administrator
userPassword :: e 1 N T S E F 9 Z D Q w T k 9 9 1 F V V T V N N G V 2 L z R R e H o =
str uctu ralOb ject Class : organizationalRole
entryUUID : dbd513ca - db9f -1031 -9 aaa - d1fd552f8eae
creatorsName : cn = admin , dc = iescendrassos , dc = net
createTimestamp : 20121216074216 Z
entryCSN : 201 21216 0742 16.82 7952 Z # 000000#000#000000
modifiersName : cn = admin , dc = iescendrassos , dc = net
modifyTimestamp : 20121216074216 Z
En la versi´ 12.04 no cal fer passes extres ja que ha carregat els esquemes
o
necessaris i ha afegit l’estructura del directori dc=iescendrassos,dc=net au-
tom`ticament. En versions anteriors s’havia de carregar els fitxers d’esquema
a
i crear un arxiu LDIF amb les caracter´ ıstiques que es volien que tingu´s el
e
directori.
8
10. 2.1 Creaci´ de les branques
o
Ara nom´s cal que definim quines branques de dades t´ el nostre directori i ja
e e
podem poblar-ho amb dades.
Per crear les branques necess`ries si que s’ha de rec´rrer a l’´s de fitxers LDIF.
a o u
Per exemple en aquest cas creo una branca people pels usuaris i groups pels
grups:
dn : ou = people , dc = iescednrassos , dc = net
objectClass : organizationalUnit
ou : people
dn : ou = groups , dc = iescendrassos , dc = net
objectClass : organizationalUnit
ou : groups
I el fitxer s’afegeix de la mateixa forma que en les altres versions:
# ldapadd -x -D cn = admin , dc = iescendrassos , dc = net -W
-f base . ldif
Enter LDAP Password :
adding new entry " ou = people , dc = iescendrassos , dc = net "
adding new entry " ou = groups , dc = iescendrassos , dc = net "
Aix` crear` les branques ou=people i ou=groups dins del directori LDAP de
o a
manera que podran usar-se posteriorment com si es tractessin de fitxers d’usuaris
i de grups respectivament.
9
11. 2.2 Afegir usuaris i grups
Fins ara nomes s’ha creat el lloc en el que s’emmagatzemaran les dades per‘o
no s’han definit dades concretes per emmagatzemar-hi.
2.2.1 Afegir usuaris des d’un fitxer LDIF
Es poden afegir usuaris a trav´s d’un arxiu ldif d’una forma similar a com es
e
creen les branques del directori LDAP. Simplement cal crear el fitxer amb els
atributs que facin falta. Per exemple:
dn : uid = manolito , ou = people , dc = iescendrassos , dc = net
objectClass : inetOrgPerson
objectClass : posixAccount
objectClass : shadowAccount
uid : manolito
cn : Manolito Carro
sn : Carro
displayName : Manolo el del carro
uidNumber : 10008
gidNumber : 10004
userpassword : patata
loginShell : / bin / bash
homeDirectory : / home / manolito
En especial s’ha d’anar amb compte amb els uidNumber i gidNumber per evi-
´
tar que el valor ja estigui fent-se servir per algun usuari del sistema. Es per
aquest motiu que normalment es solen comen¸ar a partir de 10000 (el sis-
c
tema per defecte els afegeix a partir de 1000 i per tant ser` dif´ que hi hagi
a ıcil
col·lisions)
Els diferents esquemes disposen d’una gran quantitat d’atributs que es poden
fer servir per emmagatzemar molta varietat de dades en el directori:
dn : uid = xavier , ou = people , dc = iescendrassos , dc = net
objectClass : inetOrgPerson
objectClass : posixAccount
objectClass : shadowAccount
uid : xavier
sn : Sala
givenName : Xavier
cn : Xavier Sala
displayName : Xavier Sala
uidNumber : 1005
gidNumber : 10000
userPassword : contrasenya
gecos : Xavier Sala
loginShell : / bin / bash
homeDirectory : / home / xavier
shadowExpire : -1
shadowFlag : 0
shadowWarning : 7
10
12. shadowMin : 8
shadowMax : 999999
shadowLastChange : 10877
mail : xavier@cendrinf . local
postalCode : 17600
l : Figueres
o : Cendrassos
mobile : +33 (0)6 xx xx xx xx
homePhone : +33 (0)5 xx xx xx xx
title : System Administrator
postalAddress :
Un cop es t´ el fitxer LDIF (usuari.ldif) creat nom´s cal importar-lo de la
e e
mateixa forma que anteriorment
# ldapadd -x -D cn = admin , dc = iescendrassos , dc = net -W
-f usuari . ldif
Es pot comprovar que realment s’ha afegit l’usuari en el directori LDAP amb
la instrucci´ ldapsearch demanant pel seu uid :
o
$ ldapsearch - xLLL -b " dc = cendrinf , dc = local "
uid = xavier cn sn givenName
dn : uid = xavier , ou = people , dc = cendrinf , dc = local
cn : Xavier Sala
sn : Sala
givenName : Xavier
2.2.2 Afegir grups des d’un fitxer LDIF
Afegir grups ´s exactament igual que afegir usuaris per` amb altres atributs
e o
(normalment molts menys)
dn : cn = professors , ou = groups , dc = iescendrassos , dc = net
objectClass : posixGroup
cn : professors
gidNumber : 10000
En l’exemple nom´s s’ha afegit un sol grup per` de la mateixa forma que amb
e o
qualsevol dada LDIF no hi ha res que impedeixi que es facin tants grups com
calgui nom´s separant-los per una l´
e ınia en blanc
dn : cn = professors , ou = groups , dc = iescendrassos , dc = net
objectClass : posixGroup
cn : professors
gidNumber : 10000
dn : cn = alumnes , ou = groups , dc = iescendrassos , dc = net
objectClass : posixGroup
cn : alumnes
gidNumber : 10001
11
13. La importaci´ ´s exactament igual que amb els usuaris:
oe
# ldapadd -x -D cn = admin , dc = iescendrassos , dc = net -W
-f grups . ldif
2.3 Gesti´ des d’entorns gr`fics
o a
El protocol LDAP ´s obert de manera que hi ha molts programes que el fan
e
servir i per tant una de les evolucions l`giques ´s permetre gestionar el servidor
o e
LDAP a trav´s d’entorns gr`fics.
e a
Per tant existeixen programes tradicionals per gestionar LDAP com per exemple
Luma que ´s un programa desenvolupat en Java
e
12
14. O tamb´ programes que permeten gestionar el sistema des d’entorn Web fent
e
servir algun tipus de llenguatge din`mic. Un dels m´s usats ´s PHPLDAPAd-
a e e
min
13
15. 2.4 Resultat
El resultat ´s que el directori acaba sent una base de dades jer`rquica semblant
e a
a la de la figura seg¨ent:
u
Figure 2.1: Arbre LDAP
Un cop tot est` funcionant ´s important comprovar que tot est` anant b´ fent
a e a e
una simple consulta a la base de dades.
Una de les consultes possibles ´s inspeccionar la branca de configuraci´ que es
e o
troba en la branca de LDAP cn=config.
La branca de configuraci´ cn=config ´s un directori com´ que permet
o e u
configurar din`micament el servidor LDAP de manera que s’hi poden
a
fer consultes ’generals’ sobre el servei, l’estructura, etc...
ldapsearch - LLL -Y EXTERNAL -H ldapi :/// -b cn = config dn
Una consulta corrent ´s veure com est` formada la base de dades:
e a
ldapsearch -x -b dc = iescendrassos , dc = net
Un cop s’ha comprovat que tot funciona correctament tenim una base de dades
que podrem fer servir per recuperar dades des de qualsevol ordinador de la xarxa
o b´ per funcionar com un servidor central d’identificaci´ d’usuaris
e o
14
16. 2.5 TLS
Quan cal autentificar-se contra un servidor OpenLDAP el millor ´s fer-ho a
e
trav´s d’una sessi´ xifrada o qualsevol podr` obtenir les credencials de l’usuari
e o a
administrador de LDAP amb un simple sniffer.
En la figura es pot veure que per fer una consulta d’una contrasenya abans
el missatge s’identifica com l’usari cn=admin i per fer-ho tamb´ hi envia la
e
contrasenya que en aquest cas ´s ”qcmmer2saia”
e
La captura d’aquesta informaci´ es pot evitar fent servir el protocol SSL/TLS
o
(Transport Layer Security) que ens permetr` que la comunicaci´ entre els dos
a o
punts sigui xifrada
2.5.1 Crear l’Autoritat de Certificaci´
o
El m´s habitual si el nostre arbre LDAP no ´s p´blic ´s que fem servir la nostra
e e u e
pr`pia Autoritat de Certificaci´ (CA).Com que slapd fa servir gnutls es pot fer
o o
servir certtool per fer-ho.
apt - get install gnutls - bin ssl - cert
Es crea una clau privada per la CA:
sh -c " certool -- generate - privkey >
/ etc / ssl / private / cakey . pem
Es genera un fitxer amb les dades de la CA:
cn = INS Cendrassos
ca
cert_signing_key
I es crea un certificat autosignat:
certtool -- generate - self - signed
-- load - privkey / etc / ssl / private / cakey . pem
-- template / etc / ssl / ca . info
-- outfile / etc / ssl / certs / cacert . pem
15
17. 2.5.2 Crear les claus del servidor
Un cop es t´ l’autoritat de certificaci´ nom´s cal crear el certificat que far‘a
e o e
servir el servidor per autentificar-se.
Aix` normalment es fa en diferents fases. Primer es crea la clau privada del
o
servidor:
certtool -- generate - privkey
-- bits 1024
-- outfile / etc / ssl / private / server_key . pem
Es crea un fitxer de text a /etc/ssl/servidor.info que tingui la informaci´ b`sica
o a
del servidor:
organization = Cendrassos
cn = servidor . iescendrassos . net
tls_www_server
encryption_key
signing_key
expiration_days = 3650
I per acabar es crea f´
ısicament el certificat:
certtool -- generate - certificate
-- load - privkey / etc / ssl / private / server_key . pem
-- load - ca - certificate / etc / ssl / certs / cacert . pem
-- load - ca - privkey / etc / ssl / private / cakey . pem
-- template / etc / ssl / ldap01 . info
-- outfile / etc / ssl / certs / server_cert . pem
Per informar a LDAP que ha de fer servir el certificat s’ha de crear un fitxer
LDIF amb la informaci´ del lloc on el trobar`:
o a
dn : cn = config
add : o lc TL S CA C er ti f ic at e Fi l e
o lc TL S CA C er ti f ic a te Fi l e : / etc / ssl / certs / cacert . pem
-
add : olcTL SCer tific ateF ile
olc TLSC ertif icat eFile : / etc / ssl / certs / server_cert . pem
-
add : o l cT L S C er t i f ic a t e Ke y F i le
o l cT L S C er t i f ic a t e Ke y F i le : / etc / ssl / private / server_key . pem
I es modifica l’estructura de LDAP amb ldapmodify i el fitxer que acabem de
crear:
ldapmodify -Y EXTERNAL -H ldapi :/// -f cert . ldif
A pesar del que pot semblar no cal canviar el protocol de ldap:// a ldaps:// per
fer servir xifrat.
SLAPD_SERVICES = " ldap :/// ldapi :/// "
16
18. No cal oblidar que hem d’estar segurs de que el servidor t´ els permisos adequats
e
per accedir als fitxers dels certificats
adduser openldap ssl - cert
chgrp ssl - cert / etc / ssl / private / server_slapd_key . pem
chmod g + r / etc / ssl / private / server_slapd_key . pem
chmod o - r / etc / ssl / private / server_slapd_key . pem
Nom´s queda reiniciar el servidor
e
service slapd restart
17
19. Chapter 3
Instal·laci´ de clients
o
OpenLDAP
Els servidors LDAP es poden fer servir per qualsevol cosa que requereixi algun
tipus de repositori de dades centralitzat per` el m´s habitual sol ser:
o e
• Tenir un sistema de centralitzaci´ d’usuaris i grups per usar-lo com a
o
Single Sign On (SSO)
• Autenticar els usuaris en una aplicaci´ web
o
• Crear un sistema d’adreces compartit per agents de correu electr`nic
o
• Autenticaci´ centralitzada d’usuaris en una xarxa local
o
En xarxes en Linux l’´s mes habitual dels servidors LDAP sol ser per usar-los
u
com a servidor d’autenticaci´ d’una xarxa.
o
18
20. 3.1 Autenticaci´ en Ubuntu Linux
o
Anteriorment quan en un sistema Unix es volia tenir alguna forma d’usuaris
centralitzada es feia servir algun servidor NIS (YellowPages) per` actualment
o
´s OpenLDAP el sistema m´s habitual per proporcionar autenticaci´ d’usuaris
e e o
centralitzada (especialment en xarxes que funcionin en Linux).
19
21. 3.1.1 Instal·lar els paquets
En general l’autenticaci´ d’usuaris en un sistema Linux es fa a trav´s dels Plug-
o e
gable Authentification Modules (PAM). Per tant per poder configurar un sistema
perqu` permeti que els usuaris s’identifiquin a trav´s de LDAP requerir` afegir
e e a
a la configuraci´ del sistema el m`dul PAM.
o o
Segons la descripci´ del m`dul pam ldap:
o o
This package provides an interface between an LDAP server and the
PAM user authentication system. Using it along with libnss-ldapd
or libnss-ldap allows LDAP to entirely replace other lookup methods
(such as NIS or flat-file) for system account tables.
Els sistemes que s’identifiquin amb LDAP faran peticions al servidor cada veg-
ada que necessitin representar el nom de l’usuari. De manera que un simple ls
en un terminal far` que es facin peticions al servidor LDAP.
a
En xarxes petites el problema no ´s molt gran per` en xarxes que tinguin una
e o
gran quantitat de clients ens podem trobar amb caigudes de rendiment del
servidor, clients que no reben respostes, etc... Per aix` es recomana instal·lar el
o
servei nslcd (local LDAP name service daemon) que funciona com un servidor
local de peticions LDAP que funciona com un proxy
Per tant instal·lem el m`dul PAM requerit i el servei nslcd:
o
sudo apt - get install libnss - ldap ldap - utils /
libpam - ldap nslcd
El proc´s d’instal·laci´ far` sortir un assistent que anir` demanant informaci´
e o a a o
sobre el servidor LDAP.
El primer que demana ´s on est` el servidor LDAP. En la pantalla seg¨ent podem
e a u
veure que es configura el client per connectar amb el servidor de 192.168.4.1 fent
servir ldapi:///:
20
22. Els directoris LDAP al estar en sistemes jer`rquics la informaci´ es recupera
a o
descendint a trav´s del domini. Per aquest motiu l’assistent ens demana que
e
l’hi especifiquem el domini en format LDAP. Per exemple per definir iescendras-
sos.net especificar´
ıem cn=iescendrassos,cn=net:
I per acabar l’assistent acaba demanant quin ´s l’usuari que pot administrar el
e
servei LDAP i la seva contrasenya.
En la pantalla seg¨ent definim que l’usuari que administra el servei LDAP de
u
21
23. cendrinf.local ´s l’usuari admin
e
Si es comet un error en la configuraci´ es pot tornar a engegar l’assistent fent
o
servir la instrucci´:
o
sudo dpkg - reconfigure ldap - auth - config
El resultat de l’execuci´ ha de quedar reflectit en el fitxer /etc/ldap.conf de
o
manera que no est` de m´s comprovar si tots els par`metres s´n correctes.
a e a o
Alguna vegada m’he trobat que algun camp de dades no havia estat
canviat en aquest arxiu. Si no est` ben configurat es pot editar a
a
m` perqu` estigui b´
a e e
22
24. 3.1.2 Configuraci´ del m`dul PAM
o o
Un cop es tenen els paquets instal·lats cal configurar el sistema de seguretat
perqu` permeti l’acc´s al sistema via LDAP. Aix` es pot fer manualment editant
e e o
tots els arxius o b´ es pot fer servir el programa auth-client-config que ho far`
e a
autom`ticament
a
sudo auth - client - config -t nss -p lac_ldap
I per modificar els m`duls PAM perqu` facin servir l’autenticaci´ LDAP es pot
o e o
fer amb la instrucci´ pam-auth-update
o
sudo pam - auth - update
Sortir` una pantalla que permetr` definir quins m`todes d’autenticaci´ volem
a a e o
fer servir
Nom´s cal assegurar-se’n de que la opci´ LDAP est` marcada perqu` ja sigui
e o a e
possible identificar-se en aquest client fent servir LDAP
Normalment no es recomana deixar nom´s activa l’autentificaci´ LDAP ja que en
e o
cas de problemes amb el servidor no hi haur` formes d’accedir al sistema.
a
Per permetre que els usuaris puguin canviar la seva contrasenya cal fer una
modificaci´ extra en l’arxiu /etc/pam.d/common-password. S’ha de modificar
o
la definici´ del m`dul pam ldap que tindr` un aspecte semblant a aquest:
o o a
password [ success =1 user_unknown = ignore default = die ]
pam_ldap . so use_authtok try_first_pass
S’ha d’eliminar el par`metre use authok de manera que quedi com aquesta:
a
password [ success =1 user_unknown = ignore default = die ]
pam_ldap . so try_first_pass
23
25. 3.1.3 Proves de funcionament
Podem comprovar des del client si funciona perqu` la instrucci´ getent ens
e o
intenta mostrar
Podem comprovar que tot funciona si fem servir la comanda getent per veure si
atrapem els usuaris (passwd) i els grups (group) que estan definits en LDAP a
m´s dels locals de la m`quina.
e a
getent passwd
Que ens traur` la llista dels usuaris locals seguida dels usuaris LDAP
a
...
xavier : x :1005:10001: Xavier Sala :/ home / xavier :/ bin / bash
alumne2 :*:10010:10002: alumne2 :/ home / alumne2 :/ bin / bash
alumne1 :*:10011:10002: alumne1 :/ home / alumne1 :/ bin / bash
El mateix hauria de passar si inspeccionem els grups
$ getent group
Que en darrer terme sortiran els grups LDAP
...
professors :*:10001:
alumnes :*:10002:
Tamb´ podem fer servir les utilitats de LDAP per fer les proves. Per exemple
e
ldapsearch:
$ ldapsearch -x
24
26. 3.1.4 Creaci´ autom`tica de la carpeta HOME
o a
Sense fer res ja s’hauria de poder iniciar sessi´ en el sistema fent servir els usuaris
o
LDAP sense problemes (sempre que ho fem des del terminal). Si s’entra es pot
veure que l’usuari aconsegueix entrar per` no se li crea la carpeta home. Aix`
o o
´s un problema especialment en sistemes que es facin servir escriptori gr`fic ja
e a
que necessiten emmagatzemar la configuraci´ personal i no hi haur` cap lloc on
o a
pugui emmagatzemar-la.
Per tant cal fer que si un usuari no t´ carpeta al iniciar la sessi´ es crei la seva
e o
carpeta autom`ticament. Els m`duls PAM tamb´ se n’encarreguen de la gesti´
a o e o
de les sessions i tamb´ tenim un dels m`duls que ´s el responsable de crear les
e o e
carpetes de l’usuari: pam-mkhomedir.so
En els sistemes Ubuntu el m`dul no est` configurat i per tant caldr` modificar-
o a a
lo. La configuraci´ es fa en el fitxer de les sessions /etc/pam.d/common-session i
o
el modifiquem afegint-hi el m`dul mkhomedir.so. Per exemple podem definir-lo
o
en una l´ınia especificant-hi l’estructura (skel ) i opcionalment els permisos amb
els que es crear` (umask ):
a
session required pam_mkhomedir . so skel =/ etc / skel
umask =0022
El resultat ser` m´s o menys com aquest (he eliminat els comentaris):
a e
session [ default =1] pam_permit . so
session requisite pam_deny . so
session required pam_permit . so
session required pam_mkhomedir . so skel =/ etc / skel /
session required pam_unix . so
session optional pam_ldap . so
session optional pam_ck_connector . so nox11
25
27. 3.1.5 Heretar els grups
Perqu` els usuaris adquireixin els grups hem de posar-los en el fitxer /etc/secu-
e
rity/group.conf (de manera que els usuaris heretin els permisos de l’usuari per
defecte). Ho posem al final i els usuaris heretaran els grups:
*;*;*; Al0000 -2400; cdrom , plugdev , video , fuse , vboxusers ,
He vist una forma alternativa de fer-ho que sembla que funciona igual:
login ;*;*; Al0000 -2400; cdrom , plugdev , video , fuse , vboxusers ,
gdm ;*;*; Al0000 -2400; cdrom , plugdev , video , fuse , vboxusers ,
Ara des de la consola es pot veure que tot funciona perfectament, es pot fer
login sense problemes tant des des la consola com des de l’entorn gr`fic.
a
Amb aquest procediment podem afegir nous grups per defecte als usuaris que
aconsegueixin entrar. D’aquesta forma es pot solucionar el problema de l’´s dels
u
dispositius USB de Virtual Box.
El problema estava en que els grups es propagaven per les sessions de consola
per` no per les sessions iniciades des de gdm. Per tant cal modificar l’arxiu pam
o
que fa refer`ncia a gdm per dir-li que ens agafi els grups.
e
# % PAM -1.0
auth optional pam_group . so
auth requisitepam_nologin . so
auth required pam_env . so readenv =1
auth required pam_env . so readenv =1
envfile =/ etc / default / locale
@include common - auth
auth optional pam_gnome_keyring . so
@include common - account
session required pam_limits . so
@include common - session
session optional pam_gnome_keyring . so auto_start
@include common - password
Reiniciant gdm tot hauria de funcionar correctament i els usuaris haurien de
poder fer login en el sistema amb qualsevol usuari
26