SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
OpenLDAP

   Xavier Sala

December 10, 2012
Contents

I   LDAP                                                                                                               2
1 openLDAP                                                                                                             3
  1.1 Informaci´ LDAP . . . . . . . .
               o                           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   4
      1.1.1 Esquemes . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   5
      1.1.2 Format de la informaci´o       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   5
      1.1.3 Backend . . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   5
  1.2 Els fitxers LDIF . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   6

2 Instal·laci´ del servidor OpenLDAP
             o                                                                                                          7
  2.1 Creaci´ de les branques . . . . . . . . . .
             o                                                     .   .   .   .   .   .   .   .   .   .   .   .   .    9
  2.2 Afegir usuaris i grups . . . . . . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   .   .   10
       2.2.1 Afegir usuaris des d’un fitxer LDIF                    .   .   .   .   .   .   .   .   .   .   .   .   .   10
       2.2.2 Afegir grups des d’un fitxer LDIF                      .   .   .   .   .   .   .   .   .   .   .   .   .   11
  2.3 Gesti´ des d’entorns gr`fics . . . . . . . .
            o                 a                                    .   .   .   .   .   .   .   .   .   .   .   .   .   12
  2.4 Resultat . . . . . . . . . . . . . . . . . . .               .   .   .   .   .   .   .   .   .   .   .   .   .   14
  2.5 TLS . . . . . . . . . . . . . . . . . . . . .                .   .   .   .   .   .   .   .   .   .   .   .   .   15
       2.5.1 Crear l’Autoritat de Certificaci´ .o                   .   .   .   .   .   .   .   .   .   .   .   .   .   15
       2.5.2 Crear les claus del servidor . . . .                  .   .   .   .   .   .   .   .   .   .   .   .   .   16

3 Instal·laci´ de clients OpenLDAP
             o                                                                                                         18
  3.1 Autenticaci´ en Ubuntu Linux . . . . .
                  o                                            . . . . .           .   .   .   .   .   .   .   .   .   19
       3.1.1 Instal·lar els paquets . . . . . . .              . . . . .           .   .   .   .   .   .   .   .   .   20
       3.1.2 Configuraci´ del m`dul PAM . .
                          o      o                             . . . . .           .   .   .   .   .   .   .   .   .   23
       3.1.3 Proves de funcionament . . . . .                  . . . . .           .   .   .   .   .   .   .   .   .   24
       3.1.4 Creaci´ autom`tica de la carpeta
                    o        a                                 HOME                .   .   .   .   .   .   .   .   .   25
       3.1.5 Heretar els grups . . . . . . . . .               . . . . .           .   .   .   .   .   .   .   .   .   26




                                       1
Part I

LDAP




  2
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Más contenido relacionado

Destacado

1º Actividad ABP - Yaz Metafolin (Bayer)
1º Actividad ABP - Yaz Metafolin (Bayer)1º Actividad ABP - Yaz Metafolin (Bayer)
1º Actividad ABP - Yaz Metafolin (Bayer)Ari Gómez
 
Debéis configurar una máquina virtual con debían con los siguientes servicios
Debéis configurar una máquina virtual con debían con los siguientes serviciosDebéis configurar una máquina virtual con debían con los siguientes servicios
Debéis configurar una máquina virtual con debían con los siguientes serviciosAntonio Del Río
 
Grupo exito (1) jeni
Grupo exito (1) jeniGrupo exito (1) jeni
Grupo exito (1) jeniagilcrhistian
 
Tres teclados al pedo
Tres teclados al pedoTres teclados al pedo
Tres teclados al pedoMatute Moyano
 
Prog mercadotecnia electronica
Prog mercadotecnia electronicaProg mercadotecnia electronica
Prog mercadotecnia electronica182day
 
[Webinar] Cómo crear campañas efectivas de Email Marketing
[Webinar] Cómo crear campañas efectivas de Email Marketing[Webinar] Cómo crear campañas efectivas de Email Marketing
[Webinar] Cómo crear campañas efectivas de Email MarketingLaia Morales Soto
 
77 guarda o contacto
77   guarda o contacto77   guarda o contacto
77 guarda o contactoLukas Silva
 
Giugno - 2012 Inews Art - italiannews.ch
Giugno - 2012 Inews Art - italiannews.chGiugno - 2012 Inews Art - italiannews.ch
Giugno - 2012 Inews Art - italiannews.chRaffaello Talò
 
Revolution Ferrotech
Revolution FerrotechRevolution Ferrotech
Revolution FerrotechHemang Mehta
 
Total FM Solutions
Total FM SolutionsTotal FM Solutions
Total FM SolutionsJWVANES
 
Dr. Saili Chandavarkar
Dr. Saili ChandavarkarDr. Saili Chandavarkar
Dr. Saili ChandavarkarSmile Care
 
Dipldiplomaomas de informatica}
Dipldiplomaomas de informatica}Dipldiplomaomas de informatica}
Dipldiplomaomas de informatica}diesinueve
 
Curriculum Grupo Expomex
Curriculum Grupo ExpomexCurriculum Grupo Expomex
Curriculum Grupo ExpomexGrupo Expomex
 
ADTELLIGENCE Portfolio (deutsch)
ADTELLIGENCE Portfolio (deutsch)ADTELLIGENCE Portfolio (deutsch)
ADTELLIGENCE Portfolio (deutsch)ADTELLIGENCE GmbH
 
Práctica 3v
Práctica 3v Práctica 3v
Práctica 3v SaanDpz
 

Destacado (19)

1º Actividad ABP - Yaz Metafolin (Bayer)
1º Actividad ABP - Yaz Metafolin (Bayer)1º Actividad ABP - Yaz Metafolin (Bayer)
1º Actividad ABP - Yaz Metafolin (Bayer)
 
Debéis configurar una máquina virtual con debían con los siguientes servicios
Debéis configurar una máquina virtual con debían con los siguientes serviciosDebéis configurar una máquina virtual con debían con los siguientes servicios
Debéis configurar una máquina virtual con debían con los siguientes servicios
 
Air vision
Air vision Air vision
Air vision
 
Grupo exito (1) jeni
Grupo exito (1) jeniGrupo exito (1) jeni
Grupo exito (1) jeni
 
Mag reporter50 es
Mag reporter50 esMag reporter50 es
Mag reporter50 es
 
Tres teclados al pedo
Tres teclados al pedoTres teclados al pedo
Tres teclados al pedo
 
Prog mercadotecnia electronica
Prog mercadotecnia electronicaProg mercadotecnia electronica
Prog mercadotecnia electronica
 
[Webinar] Cómo crear campañas efectivas de Email Marketing
[Webinar] Cómo crear campañas efectivas de Email Marketing[Webinar] Cómo crear campañas efectivas de Email Marketing
[Webinar] Cómo crear campañas efectivas de Email Marketing
 
77 guarda o contacto
77   guarda o contacto77   guarda o contacto
77 guarda o contacto
 
Giugno - 2012 Inews Art - italiannews.ch
Giugno - 2012 Inews Art - italiannews.chGiugno - 2012 Inews Art - italiannews.ch
Giugno - 2012 Inews Art - italiannews.ch
 
Revolution Ferrotech
Revolution FerrotechRevolution Ferrotech
Revolution Ferrotech
 
gcs HbbTV
gcs HbbTVgcs HbbTV
gcs HbbTV
 
Total FM Solutions
Total FM SolutionsTotal FM Solutions
Total FM Solutions
 
Dr. Saili Chandavarkar
Dr. Saili ChandavarkarDr. Saili Chandavarkar
Dr. Saili Chandavarkar
 
Dipldiplomaomas de informatica}
Dipldiplomaomas de informatica}Dipldiplomaomas de informatica}
Dipldiplomaomas de informatica}
 
Curriculum Grupo Expomex
Curriculum Grupo ExpomexCurriculum Grupo Expomex
Curriculum Grupo Expomex
 
ADTELLIGENCE Portfolio (deutsch)
ADTELLIGENCE Portfolio (deutsch)ADTELLIGENCE Portfolio (deutsch)
ADTELLIGENCE Portfolio (deutsch)
 
Pre Reporte Codos Y Accesorios
Pre Reporte Codos Y AccesoriosPre Reporte Codos Y Accesorios
Pre Reporte Codos Y Accesorios
 
Práctica 3v
Práctica 3v Práctica 3v
Práctica 3v
 

Similar a Openldap

Creació de base de dades utilitzant llenguatge SQL.
Creació de base de dades utilitzant llenguatge SQL.Creació de base de dades utilitzant llenguatge SQL.
Creació de base de dades utilitzant llenguatge SQL.Miquel Boada Artigas
 
Tecnologia comunicacionsdigitals
Tecnologia comunicacionsdigitalsTecnologia comunicacionsdigitals
Tecnologia comunicacionsdigitalsDGS
 
Treball_Final_de_Grau_a_l_EPS_de_la_UIB - 14.09.22.pdf
Treball_Final_de_Grau_a_l_EPS_de_la_UIB - 14.09.22.pdfTreball_Final_de_Grau_a_l_EPS_de_la_UIB - 14.09.22.pdf
Treball_Final_de_Grau_a_l_EPS_de_la_UIB - 14.09.22.pdfaNDREUETgARCIA
 
Orientació a objectes amb Moose
Orientació a objectes amb MooseOrientació a objectes amb Moose
Orientació a objectes amb MooseAlex Muntada Duran
 
Sistemes gestors de bases de dades
Sistemes gestors de bases de dadesSistemes gestors de bases de dades
Sistemes gestors de bases de dadesMiquel Boada Artigas
 
LSMaker API documentation v0.0
LSMaker API documentation v0.0LSMaker API documentation v0.0
LSMaker API documentation v0.0La Salle
 
Dayán-Chamón-Manual-Dusuari.pdf
Dayán-Chamón-Manual-Dusuari.pdfDayán-Chamón-Manual-Dusuari.pdf
Dayán-Chamón-Manual-Dusuari.pdfdayanchamon6
 
Dayán-Chamón-Manual-Dusuari-2.pdf
Dayán-Chamón-Manual-Dusuari-2.pdfDayán-Chamón-Manual-Dusuari-2.pdf
Dayán-Chamón-Manual-Dusuari-2.pdfdayanchamon6
 
Presentacio Ubuntu
Presentacio UbuntuPresentacio Ubuntu
Presentacio Ubuntuavg.aux
 
Openkm tutorial al sistema operatiu Debian
Openkm tutorial al sistema operatiu DebianOpenkm tutorial al sistema operatiu Debian
Openkm tutorial al sistema operatiu DebianPAUNIKITAPERERAROCAS
 
Permisos, directives de grup i perfils.
Permisos, directives de grup i perfils.Permisos, directives de grup i perfils.
Permisos, directives de grup i perfils.Óscar Ramón
 

Similar a Openldap (20)

Creació de base de dades utilitzant llenguatge SQL.
Creació de base de dades utilitzant llenguatge SQL.Creació de base de dades utilitzant llenguatge SQL.
Creació de base de dades utilitzant llenguatge SQL.
 
Xarxes
XarxesXarxes
Xarxes
 
Tecnologia comunicacionsdigitals
Tecnologia comunicacionsdigitalsTecnologia comunicacionsdigitals
Tecnologia comunicacionsdigitals
 
Treball_Final_de_Grau_a_l_EPS_de_la_UIB - 14.09.22.pdf
Treball_Final_de_Grau_a_l_EPS_de_la_UIB - 14.09.22.pdfTreball_Final_de_Grau_a_l_EPS_de_la_UIB - 14.09.22.pdf
Treball_Final_de_Grau_a_l_EPS_de_la_UIB - 14.09.22.pdf
 
Orientació a objectes amb Moose
Orientació a objectes amb MooseOrientació a objectes amb Moose
Orientació a objectes amb Moose
 
Sistemes gestors de bases de dades
Sistemes gestors de bases de dadesSistemes gestors de bases de dades
Sistemes gestors de bases de dades
 
Asix act3v4
Asix act3v4Asix act3v4
Asix act3v4
 
Presentació de Red hat Linux
Presentació de Red hat LinuxPresentació de Red hat Linux
Presentació de Red hat Linux
 
Manual usuari SNOB CAT
Manual usuari SNOB CATManual usuari SNOB CAT
Manual usuari SNOB CAT
 
Ldap a debian lenny pas a pas
Ldap a debian lenny pas a pasLdap a debian lenny pas a pas
Ldap a debian lenny pas a pas
 
Instalacion de Active Directory
Instalacion de Active DirectoryInstalacion de Active Directory
Instalacion de Active Directory
 
LSMaker API documentation v0.0
LSMaker API documentation v0.0LSMaker API documentation v0.0
LSMaker API documentation v0.0
 
CliniClue Xplore, manual d'usuari
CliniClue Xplore, manual d'usuariCliniClue Xplore, manual d'usuari
CliniClue Xplore, manual d'usuari
 
Dayán-Chamón-Manual-Dusuari.pdf
Dayán-Chamón-Manual-Dusuari.pdfDayán-Chamón-Manual-Dusuari.pdf
Dayán-Chamón-Manual-Dusuari.pdf
 
Dayán-Chamón-Manual-Dusuari-2.pdf
Dayán-Chamón-Manual-Dusuari-2.pdfDayán-Chamón-Manual-Dusuari-2.pdf
Dayán-Chamón-Manual-Dusuari-2.pdf
 
Xarxes
XarxesXarxes
Xarxes
 
Presentacio Ubuntu
Presentacio UbuntuPresentacio Ubuntu
Presentacio Ubuntu
 
Openkm tutorial al sistema operatiu Debian
Openkm tutorial al sistema operatiu DebianOpenkm tutorial al sistema operatiu Debian
Openkm tutorial al sistema operatiu Debian
 
Permisos, directives de grup i perfils.
Permisos, directives de grup i perfils.Permisos, directives de grup i perfils.
Permisos, directives de grup i perfils.
 
Linux
LinuxLinux
Linux
 

Más de Xavier Sala Pujolar (20)

Fer App mòbils amb tecnologia web
Fer App mòbils amb tecnologia webFer App mòbils amb tecnologia web
Fer App mòbils amb tecnologia web
 
Expressions regulars en Java
Expressions regulars en JavaExpressions regulars en Java
Expressions regulars en Java
 
Selenium web driver in Java
Selenium web driver in JavaSelenium web driver in Java
Selenium web driver in Java
 
Introducció a Docker
Introducció a DockerIntroducció a Docker
Introducció a Docker
 
Introducció a Java Collections
Introducció a Java CollectionsIntroducció a Java Collections
Introducció a Java Collections
 
Git
GitGit
Git
 
Validació de Documents XML amb XSD
Validació de Documents XML amb XSDValidació de Documents XML amb XSD
Validació de Documents XML amb XSD
 
Subversion
SubversionSubversion
Subversion
 
Criptografia
CriptografiaCriptografia
Criptografia
 
RIP
RIPRIP
RIP
 
OSPF
OSPFOSPF
OSPF
 
Llei de Serveis de la Societat de la Informació (LSSI)
Llei de Serveis de la Societat de la Informació (LSSI)Llei de Serveis de la Societat de la Informació (LSSI)
Llei de Serveis de la Societat de la Informació (LSSI)
 
Llei de Protecció de dades de caràcter personal (LOPD)
Llei de Protecció de dades de caràcter personal (LOPD)Llei de Protecció de dades de caràcter personal (LOPD)
Llei de Protecció de dades de caràcter personal (LOPD)
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Virtualització (2 part)
Virtualització (2 part)Virtualització (2 part)
Virtualització (2 part)
 
Virtualització
VirtualitzacióVirtualització
Virtualització
 
Enginyeria social
Enginyeria socialEnginyeria social
Enginyeria social
 
Css en XML
Css en XMLCss en XML
Css en XML
 
Creació de documents xml
Creació de documents xmlCreació de documents xml
Creació de documents xml
 
Introducció a xml
Introducció a xmlIntroducció a xml
Introducció a xml
 

Openldap

  • 1. OpenLDAP Xavier Sala December 10, 2012
  • 2. Contents I LDAP 2 1 openLDAP 3 1.1 Informaci´ LDAP . . . . . . . . o . . . . . . . . . . . . . . . . . . . 4 1.1.1 Esquemes . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1.2 Format de la informaci´o . . . . . . . . . . . . . . . . . . . 5 1.1.3 Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Els fitxers LDIF . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2 Instal·laci´ del servidor OpenLDAP o 7 2.1 Creaci´ de les branques . . . . . . . . . . o . . . . . . . . . . . . . 9 2.2 Afegir usuaris i grups . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.1 Afegir usuaris des d’un fitxer LDIF . . . . . . . . . . . . . 10 2.2.2 Afegir grups des d’un fitxer LDIF . . . . . . . . . . . . . 11 2.3 Gesti´ des d’entorns gr`fics . . . . . . . . o a . . . . . . . . . . . . . 12 2.4 Resultat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5 TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.5.1 Crear l’Autoritat de Certificaci´ .o . . . . . . . . . . . . . 15 2.5.2 Crear les claus del servidor . . . . . . . . . . . . . . . . . 16 3 Instal·laci´ de clients OpenLDAP o 18 3.1 Autenticaci´ en Ubuntu Linux . . . . . o . . . . . . . . . . . . . . 19 3.1.1 Instal·lar els paquets . . . . . . . . . . . . . . . . . . . . . 20 3.1.2 Configuraci´ del m`dul PAM . . o o . . . . . . . . . . . . . . 23 3.1.3 Proves de funcionament . . . . . . . . . . . . . . . . . . . 24 3.1.4 Creaci´ autom`tica de la carpeta o a HOME . . . . . . . . . 25 3.1.5 Heretar els grups . . . . . . . . . . . . . . . . . . . . . . . 26 1
  • 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