OpenLDAP   Xavier SalaDecember 10, 2012
ContentsI   LDAP                                                                                                          ...
Part ILDAP  2
Chapter 1openLDAPOpenLDAP ´s un servei de directori que implementa l’est`ndard Lightweight             e                  ...
En una consulta, el servidor, o b´ la contesta, o, si no pot contestar localment,                                  epot di...
En la figura es pot veure l’esquema t´ ıpic on hi ha una persona ’xavier ’ quepertany a una organitzaci´ ’prova.com’       ...
Per aix` openLDAP ens aporta uns backends de base de dades amb els quals       opodem treballar. En principi qualsevol del...
Chapter 2Instal·laci´ del servidor           oOpenLDAPLDAP en Ubuntu ara agafa dades de la configuraci´ del servidor de man...
Quan s’hagi acabat la instal·laci´ i estigui ben configurada es pot comprovar                                 oqu` ´s el qu...
2.1      Creaci´ de les branques               oAra nom´s cal que definim quines branques de dades t´ el nostre directori i...
2.2     Afegir usuaris i grupsFins ara nomes s’ha creat el lloc en el que s’emmagatzemaran les dades per‘ono s’han definit ...
shadowMin : 8    shadowMax : 999999    shadowLastChange : 10877    mail : xavier@cendrinf . local    postalCode : 17600   ...
La importaci´ ´s exactament igual que amb els usuaris:            oe    # ldapadd -x -D cn = admin , dc = iescendrassos , ...
O tamb´ programes que permeten gestionar el sistema des d’entorn Web fent        eservir algun tipus de llenguatge din`mic...
2.4      ResultatEl resultat ´s que el directori acaba sent una base de dades jer`rquica semblant            e            ...
2.5      TLSQuan cal autentificar-se contra un servidor OpenLDAP el millor ´s fer-ho a                                     ...
2.5.2    Crear les claus del servidorUn cop es t´ l’autoritat de certificaci´ nom´s cal crear el certificat que far‘a       ...
No cal oblidar que hem d’estar segurs de que el servidor t´ els permisos adequats                                         ...
Chapter 3Instal·laci´ de clients           oOpenLDAPEls servidors LDAP es poden fer servir per qualsevol cosa que requerei...
3.1     Autenticaci´ en Ubuntu Linux                   oAnteriorment quan en un sistema Unix es volia tenir alguna forma d...
3.1.1    Instal·lar els paquetsEn general l’autenticaci´ d’usuaris en un sistema Linux es fa a trav´s dels Plug-          ...
Els directoris LDAP al estar en sistemes jer`rquics la informaci´ es recupera                                            a...
cendrinf.local ´s l’usuari admin               eSi es comet un error en la configuraci´ es pot tornar a engegar l’assistent...
3.1.2    Configuraci´ del m`dul PAM                   o      oUn cop es tenen els paquets instal·lats cal configurar el sist...
3.1.3    Proves de funcionamentPodem comprovar des del client si funciona perqu` la instrucci´ getent ens                 ...
3.1.4     Creaci´ autom`tica de la carpeta HOME                o      aSense fer res ja s’hauria de poder iniciar sessi´ e...
3.1.5    Heretar els grupsPerqu` els usuaris adquireixin els grups hem de posar-los en el fitxer /etc/secu-      erity/grou...
Upcoming SlideShare
Loading in...5
×

Openldap

347

Published on

Instal·lació en Ubuntu d'un servidor OpenLDAP i configuració de l'autentificació dels clients

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
347
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Openldap"

  1. 1. OpenLDAP Xavier SalaDecember 10, 2012
  2. 2. ContentsI LDAP 21 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 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 . . . . . . . . . . . . . . . . . 163 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
  3. 3. Part ILDAP 2
  4. 4. Chapter 1openLDAPOpenLDAP ´s un servei de directori que implementa l’est`ndard Lightweight e aDirectory Access Protocol (LDAP). LDAP ´s un conjunt de protocols oberts eque es fan servir per accedir a informaci´ guardada centralment a trav´s de la o exarxa. • 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 guatgeLDAP ´s un sistema client-servidor. El servidor pot fer servir diferents bases ede dades per guardar un directori, cada un optimitzat per operacions de lecturar`pides i de gran volum. Quan una aplicaci´ de client LDAP es connecta a un a oservidor LDAP pot, o b´ consultar un directori, o intentar modificar-lo. e 3
  5. 5. En una consulta, el servidor, o b´ la contesta, o, si no pot contestar localment, epot 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 overifica que tingui perm´ per efectuar el canvi i despr´s afegeix o actualitza la ıs einformaci´.oEs pot configurar el dimoni perqu` vagi emmagatzemant r`pliques de la BDD e ea altres llocs seguint l’esquema un mestre/molts esclaus. Per` es segur que en oel futur suportar` molts/molts. aLa part negativa de LDAP ´s que pot ser complicat de configurar si no es t´ e eclar qu` es vol fer exactament. e1.1 Informaci´ LDAP oLDAP permet als usuaris accedir f`cilment a la informaci´ encara que el seu a oobjectiu va m´s enll` ja que ´s capa¸ de propagar els seus directoris a altres e a e cserveis LDAP per tot el m´n, permetent acc´s global a la informaci´. o e oLa informaci´ s’organitza de forma jer`rquica fent servir directoris. Aix` tradi- o a ocionalment servia per representar geogr`ficament les organitzacions agrupant-les aper pa¨ısos i sota les organitzacions s’hi inclo¨ la informaci´ necess`ria: trebal- ıa o aladors, impressores, documents, etc.. Per` una forma m´s corrent actualment o e´s que aquesta s’organitzi aprofitant-se dels noms de domini d’Internete 4
  6. 6. En la figura es pot veure l’esquema t´ ıpic on hi ha una persona ’xavier ’ quepertany a una organitzaci´ ’prova.com’ oLa forma de referir-s’hi ser` a trav´s del seu RDN (nom relatiu distingit) que a een 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: aUTF-8 String representation of Distingished Names”1.1.1 EsquemesOpenLDAP funciona a trav´s d’esquemes que serveixen per definir els grups de etipus de dades en els que s’emmagatzemar` informaci´. D’aquesta forma LDAP a oes pot fer servir per m´ltiples usos diferents d’emmagatzematge centralitzat de udades: llistats telef`nic, gesti´ d’usuaris, repositori central, etc.. o oEn els esquemes s’hi defineixen els objectclass que s´n els que determinen oquins 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 informaci´ oLa 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 ovalor: 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.. oAlguns atributs poden ser obligatoris i altres opcionals.1.1.3 BackendCal tenir en compte que LDAP nom´s ´s un protocol i que per tant necessita un e ebackend 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 per`, no tindran mai informaci´ sobre la forma en que es o oguarda la informaci´, ni del backend que es far` servir. o a 5
  7. 7. Per aix` openLDAP ens aporta uns backends de base de dades amb els quals opodem treballar. En principi qualsevol dels que t´ disponibles funcionar` b´ e a eencara que per defecte els assistents en recomanen un.1.2 Els fitxers LDIFEls arxius LDIF es fan servir habitualment per importar i exportar dades alsservidors. Per tant ´s el format d’intercanvi de dades de LDAP (LDIF). Es etracta 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, udc=iescendrassos.net, dc=net) i dos atributs (objectClass i ou) dn : ou = people , dc = iescendrassos , dc = net objectClass : organizationalUnit ou : peopleCada 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 s´n arbitraris sin´ que han d’estar o o definits en l’esquema adequatEn principi no hauria de fer falta la modificaci´ de valors LDIF manualment ja oque hi ha molts programes i aplicacions que ho permetran fer sense rec´rrer a ol’edici´ d’arxius LDIF oQualsevol valor compr`s dins de “¡” i “¿” ´s una variable i pot ser configurat e equan es cre¨ una nova entrada LDAP, excepte per ¡id¿. El ¡id¿ ´s un n´mero ı e udeterminat per l’aplicaci´ que es fa servir per modificar una entrada. oEn principi no hi ha d’haver mai necessitat de modificar valors LDIF manual-ment. Per aix` hi ha les aplicacions LDAP. o 6
  8. 8. Chapter 2Instal·laci´ del servidor oOpenLDAPLDAP 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 servidorLa instal·laci´ en sistemes basats en Debian nom´s requereixen que s’instal·lin o edos fitxers: apt - get install slapd ldap - utilsDurant la instal·laci´ nom´s se’ns demanar` la contrasenya de l’administrador o e adel directori LDAP perqu` les altres dades ja les agafa autom`ticament (do- e amini, base de dades, etc...). Es pot refer en qualsevol moment amb *dpkg-reconfigure* dpkg - reconfigure slapdSi es fa servir dpkg-reconfigure l’assistent demana molta m´s informaci´ del que e ohavia demanat en temps d’instal·laci´. En aquest cas es demanar` el domini, el o asistema de backend, l’usuari administrador i la seva contrasenya, etc.. 7
  9. 9. Quan s’hagi acabat la instal·laci´ i estigui ben configurada es pot comprovar oqu` ´s el que s’ha emmagatzemat en el directori LDAP inspeccionant-lo amb e eslapcat. slapcatQue donar` un resultat com aquest on es pot veure els diferents dominis que as’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 ZEn la versi´ 12.04 no cal fer passes extres ja que ha carregat els esquemes onecessaris 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 ai crear un arxiu LDIF amb les caracter´ ıstiques que es volien que tingu´s el edirectori. 8
  10. 10. 2.1 Creaci´ de les branques oAra nom´s cal que definim quines branques de dades t´ el nostre directori i ja e epodem 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 uPer 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 : groupsI 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 amanera que podran usar-se posteriorment com si es tractessin de fitxers d’usuarisi de grups respectivament. 9
  11. 11. 2.2 Afegir usuaris i grupsFins 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 LDIFEs poden afegir usuaris a trav´s d’un arxiu ldif d’una forma similar a com es ecreen 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 / manolitoEn 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 comen¸ar a partir de 10000 (el sis- ctema per defecte els afegeix a partir de 1000 i per tant ser` dif´ que hi hagi a ıcilcol·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
  12. 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 emateixa forma que anteriorment # ldapadd -x -D cn = admin , dc = iescendrassos , dc = net -W -f usuari . ldifEs pot comprovar que realment s’ha afegit l’usuari en el directori LDAP ambla 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 : Xavier2.2.2 Afegir grups des d’un fitxer LDIFAfegir 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 : 10000En l’exemple nom´s s’ha afegit un sol grup per` de la mateixa forma que amb e oqualsevol dada LDIF no hi ha res que impedeixi que es facin tants grups comcalgui 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. 13. La importaci´ ´s exactament igual que amb els usuaris: oe # ldapadd -x -D cn = admin , dc = iescendrassos , dc = net -W -f grups . ldif2.3 Gesti´ des d’entorns gr`fics o aEl protocol LDAP ´s obert de manera que hi ha molts programes que el fan eservir i per tant una de les evolucions l`giques ´s permetre gestionar el servidor o eLDAP a trav´s d’entorns gr`fics. e aPer tant existeixen programes tradicionals per gestionar LDAP com per exempleLuma que ´s un programa desenvolupat en Java e 12
  14. 14. O tamb´ programes que permeten gestionar el sistema des d’entorn Web fent eservir algun tipus de llenguatge din`mic. Un dels m´s usats ´s PHPLDAPAd- a e emin 13
  15. 15. 2.4 ResultatEl resultat ´s que el directori acaba sent una base de dades jer`rquica semblant e aa la de la figura seg¨ent: u Figure 2.1: Arbre LDAPUn cop tot est` funcionant ´s important comprovar que tot est` anant b´ fent a e a euna simple consulta a la base de dades.Una de les consultes possibles ´s inspeccionar la branca de configuraci´ que es e otroba 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 dnUna consulta corrent ´s veure com est` formada la base de dades: e a ldapsearch -x -b dc = iescendrassos , dc = netUn 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 b´ per funcionar com un servidor central d’identificaci´ d’usuaris e o 14
  16. 16. 2.5 TLSQuan cal autentificar-se contra un servidor OpenLDAP el millor ´s fer-ho a etrav´s d’una sessi´ xifrada o qualsevol podr` obtenir les credencials de l’usuari e o aadministrador 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 tamb´ hi envia la econtrasenya que en aquest cas ´s ”qcmmer2saia” eLa 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 opunts sigui xifrada2.5.1 Crear l’Autoritat de Certificaci´ oEl m´s habitual si el nostre arbre LDAP no ´s p´blic ´s que fem servir la nostra e e u epr`pia Autoritat de Certificaci´ (CA).Com que slapd fa servir gnutls es pot fer o oservir certtool per fer-ho. apt - get install gnutls - bin ssl - certEs crea una clau privada per la CA: sh -c " certool -- generate - privkey > / etc / ssl / private / cakey . pemEs genera un fitxer amb les dades de la CA: cn = INS Cendrassos ca cert_signing_keyI 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. 17. 2.5.2 Crear les claus del servidorUn cop es t´ l’autoritat de certificaci´ nom´s cal crear el certificat que far‘a e o eservir el servidor per autentificar-se.Aix` normalment es fa en diferents fases. Primer es crea la clau privada del oservidor: certtool -- generate - privkey -- bits 1024 -- outfile / etc / ssl / private / server_key . pemEs crea un fitxer de text a /etc/ssl/servidor.info que tingui la informaci´ b`sica o adel servidor: organization = Cendrassos cn = servidor . iescendrassos . net tls_www_server encryption_key signing_key expiration_days = 3650I 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 . pemPer informar a LDAP que ha de fer servir el certificat s’ha de crear un fitxerLDIF 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 . pemI es modifica l’estructura de LDAP amb ldapmodify i el fitxer que acabem decrear: ldapmodify -Y EXTERNAL -H ldapi :/// -f cert . ldifA pesar del que pot semblar no cal canviar el protocol de ldap:// a ldaps:// perfer servir xifrat. SLAPD_SERVICES = " ldap :/// ldapi :/// " 16
  18. 18. No cal oblidar que hem d’estar segurs de que el servidor t´ els permisos adequats eper 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 . pemNom´s queda reiniciar el servidor e service slapd restart 17
  19. 19. Chapter 3Instal·laci´ de clients oOpenLDAPEls servidors LDAP es poden fer servir per qualsevol cosa que requereixi alguntipus 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 oEn xarxes en Linux l’´s mes habitual dels servidors LDAP sol ser per usar-los ucom a servidor d’autenticaci´ d’una xarxa. o 18
  20. 20. 3.1 Autenticaci´ en Ubuntu Linux oAnteriorment quan en un sistema Unix es volia tenir alguna forma d’usuariscentralitzada es feia servir algun servidor NIS (YellowPages) per` actualment o´s OpenLDAP el sistema m´s habitual per proporcionar autenticaci´ d’usuarise e ocentralitzada (especialment en xarxes que funcionin en Linux). 19
  21. 21. 3.1.1 Instal·lar els paquetsEn general l’autenticaci´ d’usuaris en un sistema Linux es fa a trav´s dels Plug- o egable Authentification Modules (PAM). Per tant per poder configurar un sistemaperqu` permeti que els usuaris s’identifiquin a trav´s de LDAP requerir` afegir e e aa la configuraci´ del sistema el m`dul PAM. o oSegons 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 lsen un terminal far` que es facin peticions al servidor LDAP. aEn xarxes petites el problema no ´s molt gran per` en xarxes que tinguin una e ogran quantitat de clients ens podem trobar amb caigudes de rendiment delservidor, clients que no reben respostes, etc... Per aix` es recomana instal·lar el oservei nslcd (local LDAP name service daemon) que funciona com un servidorlocal de peticions LDAP que funciona com un proxyPer tant instal·lem el m`dul PAM requerit i el servei nslcd: o sudo apt - get install libnss - ldap ldap - utils / libpam - ldap nslcdEl proc´s d’instal·laci´ far` sortir un assistent que anir` demanant informaci´ e o a a osobre el servidor LDAP.El primer que demana ´s on est` el servidor LDAP. En la pantalla seg¨ent podem e a uveure que es configura el client per connectar amb el servidor de 192.168.4.1 fentservir ldapi:///: 20
  22. 22. Els directoris LDAP al estar en sistemes jer`rquics la informaci´ es recupera a odescendint a trav´s del domini. Per aquest motiu l’assistent ens demana que el’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 eservei LDAP i la seva contrasenya.En la pantalla seg¨ent definim que l’usuari que administra el servei LDAP de u 21
  23. 23. cendrinf.local ´s l’usuari admin eSi es comet un error en la configuraci´ es pot tornar a engegar l’assistent fent oservir la instrucci´: o sudo dpkg - reconfigure ldap - auth - configEl resultat de l’execuci´ ha de quedar reflectit en el fitxer /etc/ldap.conf de omanera 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. 24. 3.1.2 Configuraci´ del m`dul PAM o oUn cop es tenen els paquets instal·lats cal configurar el sistema de seguretatperqu` permeti l’acc´s al sistema via LDAP. Aix` es pot fer manualment editant e e otots els arxius o b´ es pot fer servir el programa auth-client-config que ho far` e aautom`ticament a sudo auth - client - config -t nss -p lac_ldapI per modificar els m`duls PAM perqu` facin servir l’autenticaci´ LDAP es pot o e ofer amb la instrucci´ pam-auth-update o sudo pam - auth - updateSortir` una pantalla que permetr` definir quins m`todes d’autenticaci´ volem a a e ofer servirNom´s cal assegurar-se’n de que la opci´ LDAP est` marcada perqu` ja sigui e o a epossible identificar-se en aquest client fent servir LDAPNormalment no es recomana deixar nom´s activa l’autentificaci´ LDAP ja que en e ocas de problemes amb el servidor no hi haur` formes d’accedir al sistema. aPer permetre que els usuaris puguin canviar la seva contrasenya cal fer unamodificaci´ extra en l’arxiu /etc/pam.d/common-password. S’ha de modificar ola 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_passS’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. 25. 3.1.3 Proves de funcionamentPodem comprovar des del client si funciona perqu` la instrucci´ getent ens e ointenta mostrarPodem 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 am´s dels locals de la m`quina. e a getent passwdQue 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 / bashEl mateix hauria de passar si inspeccionem els grups $ getent groupQue 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 eldapsearch: $ ldapsearch -x 24
  26. 26. 3.1.4 Creaci´ autom`tica de la carpeta HOME o aSense fer res ja s’hauria de poder iniciar sessi´ en el sistema fent servir els usuaris oLDAP sense problemes (sempre que ho fem des del terminal). Si s’entra es potveure 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 jae aque necessiten emmagatzemar la configuraci´ personal i no hi haur` cap lloc on o apugui emmagatzemar-la.Per tant cal fer que si un usuari no t´ carpeta al iniciar la sessi´ es crei la seva e ocarpeta autom`ticament. Els m`duls PAM tamb´ se n’encarreguen de la gesti´ a o e ode les sessions i tamb´ tenim un dels m`duls que ´s el responsable de crear les e o ecarpetes de l’usuari: pam-mkhomedir.soEn els sistemes Ubuntu el m`dul no est` configurat i per tant caldr` modificar- o a alo. La configuraci´ es fa en el fitxer de les sessions /etc/pam.d/common-session i oel modifiquem afegint-hi el m`dul mkhomedir.so. Per exemple podem definir-lo oen una l´ınia especificant-hi l’estructura (skel ) i opcionalment els permisos ambels que es crear` (umask ): a session required pam_mkhomedir . so skel =/ etc / skel umask =0022El 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. 27. 3.1.5 Heretar els grupsPerqu` els usuaris adquireixin els grups hem de posar-los en el fitxer /etc/secu- erity/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 gr`fic. aAmb aquest procediment podem afegir nous grups per defecte als usuaris queaconsegueixin entrar. D’aquesta forma es pot solucionar el problema de l’´s dels udispositius USB de Virtual Box.El problema estava en que els grups es propagaven per les sessions de consolaper` no per les sessions iniciades des de gdm. Per tant cal modificar l’arxiu pam oque 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 - passwordReiniciant gdm tot hauria de funcionar correctament i els usuaris haurien depoder fer login en el sistema amb qualsevol usuari 26

×