openldap

27
OpenLDAP Xavier Sala December 10, 2012

Upload: xavier-sala-pujolar

Post on 20-Aug-2015

365 views

Category:

Technology


8 download

TRANSCRIPT

Page 1: Openldap

OpenLDAP

Xavier Sala

December 10, 2012

Page 2: Openldap

Contents

I LDAP 2

1 openLDAP 31.1 Informacio LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.1.1 Esquemes . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.1.2 Format de la informacio . . . . . . . . . . . . . . . . . . . 51.1.3 Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Els fitxers LDIF . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Instal·lacio del servidor OpenLDAP 72.1 Creacio de les branques . . . . . . . . . . . . . . . . . . . . . . . 92.2 Afegir usuaris i grups . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.1 Afegir usuaris des d’un fitxer LDIF . . . . . . . . . . . . . 102.2.2 Afegir grups des d’un fitxer LDIF . . . . . . . . . . . . . 11

2.3 Gestio des d’entorns grafics . . . . . . . . . . . . . . . . . . . . . 122.4 Resultat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.5 TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.5.1 Crear l’Autoritat de Certificacio . . . . . . . . . . . . . . 152.5.2 Crear les claus del servidor . . . . . . . . . . . . . . . . . 16

3 Instal·lacio de clients OpenLDAP 183.1 Autenticacio en Ubuntu Linux . . . . . . . . . . . . . . . . . . . 19

3.1.1 Instal·lar els paquets . . . . . . . . . . . . . . . . . . . . . 203.1.2 Configuracio del modul PAM . . . . . . . . . . . . . . . . 233.1.3 Proves de funcionament . . . . . . . . . . . . . . . . . . . 243.1.4 Creacio automatica de la carpeta HOME . . . . . . . . . 253.1.5 Heretar els grups . . . . . . . . . . . . . . . . . . . . . . . 26

1

Page 3: Openldap

Part I

LDAP

2

Page 4: Openldap

Chapter 1

openLDAP

OpenLDAP es un servei de directori que implementa l’estandard LightweightDirectory Access Protocol (LDAP). LDAP es un conjunt de protocols obertsque es fan servir per accedir a informacio guardada centralment a traves de laxarxa.

• Informacio global centralitzada: L’avantatge mes gran d’LDAP es quela informacio per tota la organitzacio es pot consolidar dins d’un repositoricentral. Per exemple, en comptes d’administrar llistes d’usuaris per cadagrup dins d’una organitzacio, es pot fer servir LDAP com directori centralaccessible des de qualsevol part de la xarxa.

• Seguretat de la informacio: Donat que LDAP suporta Secure SocketLayers (SSL) i Transport Layer Security (TLS), les dades delicades espoden protegir dels curiosos. Tambe pot fer servir els TCP Wrappersper evitar que s’accedeixi a la informacio basant-nos en el lloc on ens lademanen. Pero tambe te utilitats de control d’acces molt potents podencontrolar l’acces a la informacio en funcio de informacio LDAP, IP, nomsde domini, etc..

• Varietat de Bases de Dades: LDAP suporta un gran numero de basesde dades per guardar-hi els directoris. Aixo permet que els administradorstinguin la flexibilitat necessaria per desplegar la base de dades mes indi-cada per cada tipus d’informacio que el servidor ha de guardar.

• Programable: Tambe te una interfıcie de programacio molt ben definidaque ha fet que el numero de programes que poden interactuar amb els sis-temes LDAP sigui molt gran i que no pari de creixer dia a dia en quantitati qualitat.

• Suporta internacionalitzacio fent servir Unicode i etiquetes de llen-guatge

LDAP es un sistema client-servidor. El servidor pot fer servir diferents basesde dades per guardar un directori, cada un optimitzat per operacions de lecturarapides i de gran volum. Quan una aplicacio de client LDAP es connecta a unservidor LDAP pot, o be consultar un directori, o intentar modificar-lo.

3

Page 5: Openldap

En una consulta, el servidor, o be la contesta, o, si no pot contestar localment,pot dirigir la consulta a una altre servidor LDAP que tingui la resposta.

Si l’aplicacio client vol modificar la informacio del directori LDAP, el servidorverifica que tingui permıs per efectuar el canvi i despres afegeix o actualitza lainformacio.

Es pot configurar el dimoni perque vagi emmagatzemant repliques de la BDDa altres llocs seguint l’esquema un mestre/molts esclaus. Pero es segur que enel futur suportara molts/molts.

La part negativa de LDAP es que pot ser complicat de configurar si no es teclar que es vol fer exactament.

1.1 Informacio LDAP

LDAP permet als usuaris accedir facilment a la informacio encara que el seuobjectiu va mes enlla ja que es capac de propagar els seus directoris a altresserveis LDAP per tot el mon, permetent acces global a la informacio.

La informacio s’organitza de forma jerarquica fent servir directoris. Aixo tradi-cionalment servia per representar geograficament les organitzacions agrupant-lesper paısos i sota les organitzacions s’hi incloıa la informacio necessaria: trebal-ladors, impressores, documents, etc.. Pero una forma mes corrent actualmentes que aquesta s’organitzi aprofitant-se dels noms de domini d’Internet

4

Page 6: Openldap

En la figura es pot veure l’esquema tıpic on hi ha una persona ’xavier ’ quepertany a una organitzacio ’prova.com’

La forma de referir-s’hi sera a traves del seu RDN (nom relatiu distingit) queen l’exemple anterior seria: ”uid=xavier,ou=People,dc=prova,dc=com”

El format complet dels DN esta descrit en el document RFC2253: LDAP v3:UTF-8 String representation of Distingished Names”

1.1.1 Esquemes

OpenLDAP funciona a traves d’esquemes que serveixen per definir els grups detipus de dades en els que s’emmagatzemara informacio. D’aquesta forma LDAPes pot fer servir per multiples usos diferents d’emmagatzematge centralitzat dedades: llistats telefonic, gestio d’usuaris, repositori central, etc..

En els esquemes s’hi defineixen els objectclass que son els que determinenquins atributs fan falta i quins no fan falta per cada una de les entrades. Lesdefinicions objectclass estan en diferents fitxers dins del directori /etc/openl-dap/schema/.

1.1.2 Format de la informacio

La informacio a LDAP esta basada en les entrades que tindran un unic nomdistingit (DN) i una col·leccio d’atributs. Cada atribut tenen una entrada i unvalor:

Entrada: Una entrada es una unitat en un directori LDAP.Cada entrada s’identifica a traves del seu nom unic dn (distinguishedname), cn (common name)

Valor: Els atributs son peces d’informacio directament associadaamb la entrada.

Exemple: Una organitzacio pot ser representada com una en-trada LDAP.

• Els atributs associats amb la organitzacio poden ser el numerode fax, l’adreca, etc..

• La entrada poden ser tambe persones i els atributs el telefon,el correu electronic, etc..

Alguns atributs poden ser obligatoris i altres opcionals.

1.1.3 Backend

Cal tenir en compte que LDAP nomes es un protocol i que per tant necessita unbackend per guardar les dades persistents. El protocol no diu res sobre de quinaforma s’han de guardar les dades en disc i per tant cal tenir algun mecanismeper fer-ho. Els clients pero, no tindran mai informacio sobre la forma en que esguarda la informacio, ni del backend que es fara servir.

5

Page 7: Openldap

Per aixo openLDAP ens aporta uns backends de base de dades amb els qualspodem treballar. En principi qualsevol dels que te disponibles funcionara beencara 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 alsservidors. Per tant es el format d’intercanvi de dades de LDAP (LDIF). Estracta d’una representacio en text ASCII de les entrades LDAP.

[<id >]

dn: <distinguished name >

<nomatribut >: <valoratribut >

<nomatribut >: <valoratribut >

<nomatribut >: <valoratribut >

Per exemple en l’entrada seguent es pot veure que es defineix un dn (ou=people,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 esmarca el final de l’entrada deixant-hi una lınia en blanc.

• No cal oblidar que els atributs no son arbitraris sino que han d’estardefinits en l’esquema adequat

En principi no hauria de fer falta la modificacio de valors LDIF manualment jaque hi ha molts programes i aplicacions que ho permetran fer sense recorrer al’edicio d’arxius LDIF

Qualsevol valor compres dins de “¡” i “¿” es una variable i pot ser configuratquan es creı una nova entrada LDAP, excepte per ¡id¿. El ¡id¿ es un numerodeterminat per l’aplicacio que es fa servir per modificar una entrada.

En principi no hi ha d’haver mai necessitat de modificar valors LDIF manual-ment. Per aixo hi ha les aplicacions LDAP.

6

Page 8: Openldap

Chapter 2

Instal·lacio del servidorOpenLDAP

LDAP en Ubuntu ara agafa dades de la configuracio del servidor de manera quees important que hi hagi referencia al domini en el fitxer /etc/hosts:

127.0.0.1 localhost

127.0.0.1 servidor.iescendrassos.net servidor

La instal·lacio en sistemes basats en Debian nomes requereixen que s’instal·lindos fitxers:

apt -get install slapd ldap -utils

Durant la instal·lacio nomes se’ns demanara la contrasenya de l’administradordel directori LDAP perque les altres dades ja les agafa automaticament (do-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 mes informacio del quehavia demanat en temps d’instal·lacio. En aquest cas es demanara el domini, elsistema de backend, l’usuari administrador i la seva contrasenya, etc..

7

Page 9: Openldap

Quan s’hagi acabat la instal·lacio i estigui ben configurada es pot comprovarque es el que s’ha emmagatzemat en el directori LDAP inspeccionant-lo ambslapcat.

slapcat

Que donara un resultat com aquest on es pot veure els diferents dominis ques’han creat:

dn: dc=iescendrassos ,dc=net

objectClass: top

objectClass: dcObject

objectClass: organization

o: iescendrassos.net

dc: iescendrassos

structuralObjectClass: organization

entryUUID: dbd0d5c6 -db9f -1031 -9aa9 -d1fd552f8eae

creatorsName: cn=admin ,dc=iescendrassos ,dc=net

createTimestamp: 20121216074216Z

entryCSN: 20121216074216.800141Z#000000#000#000000

modifiersName: cn=admin ,dc=iescendrassos ,dc=net

modifyTimestamp: 20121216074216Z

dn: cn=admin ,dc=iescendrassos ,dc=net

objectClass: simpleSecurityObject

objectClass: organizationalRole

cn: admin

description: LDAP administrator

userPassword :: e1NTSEF9ZDQwTk991FVVTVNNGV2LzRReHo=

structuralObjectClass: organizationalRole

entryUUID: dbd513ca -db9f -1031 -9aaa -d1fd552f8eae

creatorsName: cn=admin ,dc=iescendrassos ,dc=net

createTimestamp: 20121216074216Z

entryCSN: 20121216074216.827952Z#000000#000#000000

modifiersName: cn=admin ,dc=iescendrassos ,dc=net

modifyTimestamp: 20121216074216Z

En la versio 12.04 no cal fer passes extres ja que ha carregat els esquemesnecessaris i ha afegit l’estructura del directori dc=iescendrassos,dc=net au-tomaticament. En versions anteriors s’havia de carregar els fitxers d’esquemai crear un arxiu LDIF amb les caracterıstiques que es volien que tingues eldirectori.

8

Page 10: Openldap

2.1 Creacio de les branques

Ara nomes cal que definim quines branques de dades te el nostre directori i japodem poblar-ho amb dades.

Per crear les branques necessaries si que s’ha de recorrer a l’us de fitxers LDIF.Per exemple en aquest cas creo una branca people pels usuaris i groups pelsgrups:

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"

Aixo creara les branques ou=people i ou=groups dins del directori LDAP demanera que podran usar-se posteriorment com si es tractessin de fitxers d’usuarisi de grups respectivament.

9

Page 11: Openldap

2.2 Afegir usuaris i grups

Fins ara nomes s’ha creat el lloc en el que s’emmagatzemaran les dades per‘ono s’han definit dades concretes per emmagatzemar-hi.

2.2.1 Afegir usuaris des d’un fitxer LDIF

Es poden afegir usuaris a traves d’un arxiu ldif d’una forma similar a com escreen les branques del directori LDAP. Simplement cal crear el fitxer amb elsatributs 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 peraquest motiu que normalment es solen comencar a partir de 10000 (el sis-tema per defecte els afegeix a partir de 1000 i per tant sera difıcil que hi hagicol·lisions)

Els diferents esquemes disposen d’una gran quantitat d’atributs que es podenfer 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

Page 12: Openldap

shadowMin: 8

shadowMax: 999999

shadowLastChange: 10877

mail: [email protected]

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 te el fitxer LDIF (usuari.ldif) creat nomes cal importar-lo de lamateixa 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 ambla instruccio ldapsearch demanant pel seu uid :

$ 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 es exactament igual que afegir usuaris pero amb altres atributs(normalment molts menys)

dn: cn=professors ,ou=groups ,dc=iescendrassos ,dc=net

objectClass: posixGroup

cn: professors

gidNumber: 10000

En l’exemple nomes s’ha afegit un sol grup pero de la mateixa forma que ambqualsevol dada LDIF no hi ha res que impedeixi que es facin tants grups comcalgui nomes separant-los per una lı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

Page 13: Openldap

La importacio es exactament igual que amb els usuaris:

# ldapadd -x -D cn=admin ,dc=iescendrassos ,dc=net -W \

-f grups.ldif

2.3 Gestio des d’entorns grafics

El protocol LDAP es obert de manera que hi ha molts programes que el fanservir i per tant una de les evolucions logiques es permetre gestionar el servidorLDAP a traves d’entorns grafics.

Per tant existeixen programes tradicionals per gestionar LDAP com per exempleLuma que es un programa desenvolupat en Java

12

Page 14: Openldap

O tambe programes que permeten gestionar el sistema des d’entorn Web fentservir algun tipus de llenguatge dinamic. Un dels mes usats es PHPLDAPAd-min

13

Page 15: Openldap

2.4 Resultat

El resultat es que el directori acaba sent una base de dades jerarquica semblanta la de la figura seguent:

Figure 2.1: Arbre LDAP

Un cop tot esta funcionant es important comprovar que tot esta anant be fentuna simple consulta a la base de dades.

Una de les consultes possibles es inspeccionar la branca de configuracio que estroba en la branca de LDAP cn=config.

La branca de configuracio cn=config es un directori comu que permetconfigurar dinamicament el servidor LDAP de manera que s’hi podenfer consultes ’generals’ sobre el servei, l’estructura, etc...

ldapsearch -LLL -Y EXTERNAL -H ldapi :/// -b cn=config dn

Una consulta corrent es veure com esta formada la base de dades:

ldapsearch -x -b dc=iescendrassos ,dc=net

Un cop s’ha comprovat que tot funciona correctament tenim una base de dadesque podrem fer servir per recuperar dades des de qualsevol ordinador de la xarxao be per funcionar com un servidor central d’identificacio d’usuaris

14

Page 16: Openldap

2.5 TLS

Quan cal autentificar-se contra un servidor OpenLDAP el millor es fer-ho atraves d’una sessio xifrada o qualsevol podra obtenir les credencials de l’usuariadministrador de LDAP amb un simple sniffer.

En la figura es pot veure que per fer una consulta d’una contrasenya abansel missatge s’identifica com l’usari cn=admin i per fer-ho tambe hi envia lacontrasenya que en aquest cas es ”qcmmer2saia”

La captura d’aquesta informacio es pot evitar fent servir el protocol SSL/TLS(Transport Layer Security) que ens permetra que la comunicacio entre els dospunts sigui xifrada

2.5.1 Crear l’Autoritat de Certificacio

El mes habitual si el nostre arbre LDAP no es public es que fem servir la nostrapropia Autoritat de Certificacio (CA).Com que slapd fa servir gnutls es pot ferservir 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

Page 17: Openldap

2.5.2 Crear les claus del servidor

Un cop es te l’autoritat de certificacio nomes cal crear el certificat que far‘aservir el servidor per autentificar-se.

Aixo normalment es fa en diferents fases. Primer es crea la clau privada delservidor:

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 informacio basicadel 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 fitxerLDIF amb la informacio del lloc on el trobara:

dn: cn=config

add: olcTLSCACertificateFile

olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem

-

add: olcTLSCertificateFile

olcTLSCertificateFile: /etc/ssl/certs/server_cert.pem

-

add: olcTLSCertificateKeyFile

olcTLSCertificateKeyFile: /etc/ssl/private/server_key.pem

I es modifica l’estructura de LDAP amb ldapmodify i el fitxer que acabem decrear:

ldapmodify -Y EXTERNAL -H ldapi :/// -f cert.ldif

A pesar del que pot semblar no cal canviar el protocol de ldap:// a ldaps:// perfer servir xifrat.

SLAPD_SERVICES="ldap :/// ldapi :///"

16

Page 18: Openldap

No cal oblidar que hem d’estar segurs de que el servidor te els permisos adequatsper 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

Nomes queda reiniciar el servidor

service slapd restart

17

Page 19: Openldap

Chapter 3

Instal·lacio de clientsOpenLDAP

Els servidors LDAP es poden fer servir per qualsevol cosa que requereixi alguntipus de repositori de dades centralitzat pero el mes habitual sol ser:

• Tenir un sistema de centralitzacio d’usuaris i grups per usar-lo com aSingle Sign On (SSO)

• Autenticar els usuaris en una aplicacio web

• Crear un sistema d’adreces compartit per agents de correu electronic

• Autenticacio centralitzada d’usuaris en una xarxa local

En xarxes en Linux l’us mes habitual dels servidors LDAP sol ser per usar-loscom a servidor d’autenticacio d’una xarxa.

18

Page 20: Openldap

3.1 Autenticacio en Ubuntu Linux

Anteriorment quan en un sistema Unix es volia tenir alguna forma d’usuariscentralitzada es feia servir algun servidor NIS (YellowPages) pero actualmentes OpenLDAP el sistema mes habitual per proporcionar autenticacio d’usuariscentralitzada (especialment en xarxes que funcionin en Linux).

19

Page 21: Openldap

3.1.1 Instal·lar els paquets

En general l’autenticacio d’usuaris en un sistema Linux es fa a traves dels Plug-gable Authentification Modules (PAM). Per tant per poder configurar un sistemaperque permeti que els usuaris s’identifiquin a traves de LDAP requerira afegira la configuracio del sistema el modul PAM.

Segons la descripcio del modul pam ldap:

This package provides an interface between an LDAP server and thePAM user authentication system. Using it along with libnss-ldapdor 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 lsen un terminal fara que es facin peticions al servidor LDAP.

En xarxes petites el problema no es molt gran pero en xarxes que tinguin unagran quantitat de clients ens podem trobar amb caigudes de rendiment delservidor, clients que no reben respostes, etc... Per aixo es recomana instal·lar elservei nslcd (local LDAP name service daemon) que funciona com un servidorlocal de peticions LDAP que funciona com un proxy

Per tant instal·lem el modul PAM requerit i el servei nslcd:

sudo apt -get install libnss -ldap ldap -utils /

libpam -ldap nslcd

El proces d’instal·lacio fara sortir un assistent que anira demanant informaciosobre el servidor LDAP.

El primer que demana es on esta el servidor LDAP. En la pantalla seguent podemveure que es configura el client per connectar amb el servidor de 192.168.4.1 fentservir ldapi:///:

20

Page 22: Openldap

Els directoris LDAP al estar en sistemes jerarquics la informacio es recuperadescendint a traves del domini. Per aquest motiu l’assistent ens demana quel’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 es l’usuari que pot administrar elservei LDAP i la seva contrasenya.

En la pantalla seguent definim que l’usuari que administra el servei LDAP de

21

Page 23: Openldap

cendrinf.local es l’usuari admin

Si es comet un error en la configuracio es pot tornar a engegar l’assistent fentservir la instruccio:

sudo dpkg -reconfigure ldap -auth -config

El resultat de l’execucio ha de quedar reflectit en el fitxer /etc/ldap.conf demanera que no esta de mes comprovar si tots els parametres son correctes.

Alguna vegada m’he trobat que algun camp de dades no havia estatcanviat en aquest arxiu. Si no esta ben configurat es pot editar ama perque estigui be

22

Page 24: Openldap

3.1.2 Configuracio del modul PAM

Un cop es tenen els paquets instal·lats cal configurar el sistema de seguretatperque permeti l’acces al sistema via LDAP. Aixo es pot fer manualment editanttots els arxius o be es pot fer servir el programa auth-client-config que ho faraautomaticament

sudo auth -client -config -t nss -p lac_ldap

I per modificar els moduls PAM perque facin servir l’autenticacio LDAP es potfer amb la instruccio pam-auth-update

sudo pam -auth -update

Sortira una pantalla que permetra definir quins metodes d’autenticacio volemfer servir

Nomes cal assegurar-se’n de que la opcio LDAP esta marcada perque ja siguipossible identificar-se en aquest client fent servir LDAP

Normalment no es recomana deixar nomes activa l’autentificacio LDAP ja que encas de problemes amb el servidor no hi haura formes d’accedir al sistema.

Per permetre que els usuaris puguin canviar la seva contrasenya cal fer unamodificacio extra en l’arxiu /etc/pam.d/common-password. S’ha de modificarla definicio del modul pam ldap que tindra un aspecte semblant a aquest:

password [success =1 user_unknown=ignore default=die]

pam_ldap.so use_authtok try_first_pass

S’ha d’eliminar el parametre use authok de manera que quedi com aquesta:

password [success =1 user_unknown=ignore default=die]

pam_ldap.so try_first_pass

23

Page 25: Openldap

3.1.3 Proves de funcionament

Podem comprovar des del client si funciona perque la instruccio getent ensintenta mostrar

Podem comprovar que tot funciona si fem servir la comanda getent per veure siatrapem els usuaris (passwd) i els grups (group) que estan definits en LDAP ames dels locals de la maquina.

getent passwd

Que ens traura la llista dels usuaris locals seguida dels usuaris LDAP

...

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:

Tambe podem fer servir les utilitats de LDAP per fer les proves. Per exempleldapsearch:

$ ldapsearch -x

24

Page 26: Openldap

3.1.4 Creacio automatica de la carpeta HOME

Sense fer res ja s’hauria de poder iniciar sessio en el sistema fent servir els usuarisLDAP sense problemes (sempre que ho fem des del terminal). Si s’entra es potveure que l’usuari aconsegueix entrar pero no se li crea la carpeta home. Aixoes un problema especialment en sistemes que es facin servir escriptori grafic jaque necessiten emmagatzemar la configuracio personal i no hi haura cap lloc onpugui emmagatzemar-la.

Per tant cal fer que si un usuari no te carpeta al iniciar la sessio es crei la sevacarpeta automaticament. Els moduls PAM tambe se n’encarreguen de la gestiode les sessions i tambe tenim un dels moduls que es el responsable de crear lescarpetes de l’usuari: pam-mkhomedir.so

En els sistemes Ubuntu el modul no esta configurat i per tant caldra modificar-lo. La configuracio es fa en el fitxer de les sessions /etc/pam.d/common-session iel modifiquem afegint-hi el modul mkhomedir.so. Per exemple podem definir-loen una lınia especificant-hi l’estructura (skel) i opcionalment els permisos ambels que es creara (umask):

session required pam_mkhomedir.so skel=/etc/skel

umask =0022

El resultat sera mes o menys com aquest (he eliminat els comentaris):

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

Page 27: Openldap

3.1.5 Heretar els grups

Perque els usuaris adquireixin els grups hem de posar-los en el fitxer /etc/secu-rity/group.conf (de manera que els usuaris heretin els permisos de l’usuari perdefecte). 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 ferlogin sense problemes tant des des la consola com des de l’entorn grafic.

Amb aquest procediment podem afegir nous grups per defecte als usuaris queaconsegueixin entrar. D’aquesta forma es pot solucionar el problema de l’us delsdispositius USB de Virtual Box.

El problema estava en que els grups es propagaven per les sessions de consolapero no per les sessions iniciades des de gdm. Per tant cal modificar l’arxiu pamque fa referencia a gdm per dir-li que ens agafi els grups.

#%PAM -1.0

auth optional pam_group.so

auth requisite pam_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 depoder fer login en el sistema amb qualsevol usuari

26