M06: Administració de Sistemes operatius UF1: Administració avançada de sistemes operatius
ASIX-2 Pràctica 2e: Servei de directori LDAP 20-11-2018

PRÀCTICA 2e:  SERVEI DE DIRECTORI LDAP

CONDICIONS DEL TREBALL

1- Es comprovarà que funicona correctament el dia 4-12-18.
2- Comprovacions:
    a) Mostra amb slapcat el contingut de la base de dades LDAP
    b) Mostra que els usuaris jpons i allop no existeixen dins d'Ubuntu. Accedeix a Ubuntu amb el nom i contrasenya de l'usuari jpons i després de l'usuari allop.
    c) Mostra que els usuaris alop i dper no existeixen dins de Windows. Accedeix a Windows amb el nom i contrasenya de l'usuari alop. i després de l'usuari dper.
   
DOCUMENTACIÓ
a) http://www.openldap.org/doc/admin24/intro.html (Apartats 1.1 a 1.5)
b) http://ioc.xtec.cat/materials/FP/Materials/2251_ASIX/ASIX_2251_M06/web/html/WebContent/u3/resum.html
c) Breu introducció a LDAP
d) LListat de fitxers schema, objectClass i atributs

PRÀCTICA

PART 1: Instal·lant el servidor de directori OpenLDAP
sobre Debian. Afegint dades d'unitats organitzatives i usuaris.
 
1-
Instal·la el paquet slapd amb el programari del servidor LDAP openLDAP. Assigna fjeclot com a contrasenya per l'administrador del servidor LDAP. Instal·la també el paquet ldap-utils amb una sèrie de programes necessaris per comunicar-nos i treballar fàcilment des de l'interpret d'ordres amb el servidor LDAP.  Instal·la net-tool per poder utilizar l'ordre netstat.
2- Comprova que:
     a) Que s'ha instal·lat el programa de control /etc/init.d/slapd i el programa servidor /usr/sbin/slapd.
     b) pots controlar el servei LDAP amb systemctl.
     c) Comprova amb netstat el port utilitzat (número i tipus).

3- Comprova amb slapcat que la base de dades LDAP ha estat correctament inicialitzada. Hauria d'exisitir com a mínim el domini xxxyyy.net i l'usuari dn: cn=admin,dc=xxxyyy,dc=net. Si no està correctament inicialitzada, pots reconfigurar LDAP amb l'ordre dpkg-reconfigure slapd.

4-
Crea un fitxer de text de nom afegeix_ou.ldif i defineix una unitat organitzativa (ou) de nom UsuarisDomini dins de dc=xxxyyy,dc=net. Afegeix la nova unitat organitzativa a la base de dades LDAP executant:

ldapadd   -h   localhost   -x   -D   "cn=admin,dc=xxxyyy,dc=net"   -W   -f   afegeix_ou.ldif

i comprova amb slapcat que la nova entrada, amb els seu ObjectClass i atributs, ha estat introduïda.


5-
Crea un fitxer de text de nom afegeix_usuaris.ldif i defineix 4 nous usuaris amb els següents atributs:
    Primer usuari:
        a)
Nom distintiu (dn): uid (identifcador d'usurari)=jpons, ou=UsuarisDomini, dc=fjeclot,dc=net
        b) objectClass per aquest: top, person, organizationalPerson, inetOrgPerson, posixAccount, shadowAccount
        c) cn (common name): joan pons
        d) sn (surname): pons
        e) Número d'usuari (uidNumber): 1003
        f) Número de grup per defecte (gidNumber): 100
        h) homeDirectory: /home/jpons
        i) loginShell: /bin/bash 
    Segon usuari:
        a)
Nom distintiu (dn): uid (identifcador d'usurari)=alop, ou=UsuarisDomini, dc=fjeclot,dc=net
        b) objectClass per aquest: top, person, organizationalPerson, inetOrgPerson, posixAccount, shadowAccount
        c) cn (common name): anna lopez
        d) sn (surname): lopez
        e) Número d'usuari (uidNumber): 1004
        f) Número de grup per defecte (gidNumber): 100
        h) homeDirectory: /home/alop
        i) loginShell: /bin/bash
     Tercer usuari:
        a) Nom distintiu (dn): uid (identifcador d'usurari)=dper, ou=UsuarisDomini, dc=fjeclot,dc=net
        b) objectClass per aquest: top, person, organizationalPerson, inetOrgPerson, posixAccount, shadowAccount
        c) cn (common name): david perez
        d) sn (surname): perez
        e) Número d'usuari (uidNumber): 1005
        f) Número de grup per defecte (gidNumber): 100
        h) homeDirectory: /home/dper
        i) loginShell: /bin/bash 
    Quart usuari:
        a) Nom distintiu (dn): uid (identifcador d'usurari)=allop, ou=UsuarisDomini, dc=fjeclot,dc=net
        b) objectClass per aquest: top, person, organizationalPerson, inetOrgPerson, posixAccount, shadowAccount
        c) cn (common name): antoni llop
        d) sn (surname): llop
        e) Número d'usuari (uidNumber): 1006
        f) Número de grup per defecte (gidNumber): 100
        h) homeDirectory: /home/allop
        i) loginShell: /bin/bash

7-
Afegeix els usuaris a la base de dades LDAP
i comprova amb slapcat que les noves entrades, amb els seu ObjectClass i els seus atributs, han estat introduïdes.

8- Afegeix un password pels nous usuaris amb ldappasswd. Per exemple,  per l'usuari jpons s'hauria d'executar:
   

    ldappasswd   -h   localhost   -x   -D   "cn=admin,dc=xxxyyy,dc=net"   -W   -S   "uid=jpons,ou=UsuarisDomini,dc=xxxyyy,dc=net"

i s'hauria de fer el mateix per la resta d'usuaris. Després, comprova que s'ha afegit aquest atributs a tots els usuaris definits a la base de dades LDAP.


PART 2: Instal·lant i  configurant el programari d'Ubuntu necessari per autenticar usuaris sobre la base de dades del servidor LDAP

1-
Instal·la dins de l'Ubuntu els paquets  libnss-ldap, libpam-ldap, ldap-utils i nscd.

2- Troba l'adreça IP del teu servidor LDAP.

3- Al formulari de configuració que es mostra durant la instal·lació dels paquets, indica com a URI el protocol ldap i l'adreça IP del teu servidor:

 

4- A continuació indica el teu domini (a sota he escrit el meu com a exemple): 




5- per le següents 3 preguntes, l'opció per defecte és l'opció correcta:
    a) Versió de LDAP: 3.
    b) L'usuari root local pot fer d'administrador de la base de dades:
    c) Requereix la base de dades LDAP validació?: No

6- A la següent pregunta, escriu el nom distintiu complet de l'usuari administrador de ldap. En el meu cas:



7- A la següent pregunta, escriu la contrasenya de l'administrador de LDAP que vas utilitzar durant la instal·lació del servidor LDAP.


NOTA IMPORTANT: Si volem fer canvis en el client d'autenticació , només hem d'executar dpkg-reconfigure  ldap-auth-config i tornarà a fer-nos totes les preguntes una altra vegada.

PART 3: Configurant Ubuntu per autenticar usuaris sobre la base de dades del servidor LDAP

1- Configura el programari NSS per treballar amb LDAP. Això vol dir que s'ha d'afegir a /etc/nsswitch.conf  la configuració per treballar amb LDAP:




NSS (Name Service Switch) permet indicar al sistema local les diverses bases de dades que pot  consultar per tenir informació sobre usuaris i grups (i altres tipus de dades com noms d'ordinador, protocols, etc...). Una informació típica de busqueda és la seva contrasenya, però també pot ser el seu directori personal o el seu UID. NSS també permet indicar en quin ordre es fa la consulta. La configuració de NSS es pot trobar a /etc/nsswitch.conf. Amb aquesta configuració, el sistema primer busca informació sobre un usuari dins dels fitxers locals /etc/passwd i /etc/shadow, i si no troba a l'usuari, busca a continuació aquesta informaciño dins de la base de dades LDAP.  Per poder treballar cojuntament NSS i LDAP cal instal·lar el paquet libnss-ldap.

2- Molts programes i serveis utilitzen PAM per fer la feina d'autenticació d'usuaris. La idea és que el programa en el moment de fer l'autenticació en comptes d'encarregar-se ell mateix, delega aquesta feina en el software PAM, espera la resposta, i si l'usuari s'ha autenticat, el programa continua fent les seves tasques. Això allibera al programador i administrador de molta feina. PAM pot consultar arxius locals com /etc/passwd i /etc/shadow, bases de dades LDAP, Active Directory, Kerberos, bases de dade SQL, etc..per fer la feina d'autenticació. Perquè PAM pugui accedir a una base de dades LDAP cal tenir instal·lat libpam-ldap. Els arxius de  configuració de PAM per treballar amb LDAP es troben a /etc/pam.d. El sistema PAM  a més a més permet crear el directori home de l'usuari en el moment de la seva autenticació. Per fer-ho:
    a) Obre com a root el fitxer /etc/pam.d/common-session
    b) Afegeix al final del fitxer la següent línea:  session required    pam_mkhomedir.so  skel=/etc/skel  umask=077

3- El servei nscd controla la memòria cau de peticions realitzades a bases de dades tipus /etc/passwd, /etc/shadow,  a bases de dades LDAP, AD, DNS,etc. Cada cop que es consulta una d'aquestes bases de dades el servei nscd la desa en memòria cau per optimitzar el temps d'accés a aquesta informació. Molts programes fan servir aquestes consultes. Per exemple, l'ordre ls -ls consulta /etc/passwd per saber el nom d'usuari a partir de la seva UID i aixió poder mostrar el nom per pantalla. Si és torna a executar la mateixa ordre, no cal obrir una altra vegada el fitxer. També pot desar a la cau per exemple, consultes DNS o consultes LDAP. Després de configurar NSS i PAM per treballar amb LDAP s'hauria de reiniciar el servei nscd executant: systemctl   restart   nscd.

PART 4- Verificació d'autenticació d'Ubuntu amb LDAP

1- Anem a verificar que el programa login pot utilitzar la informació de la base de dades LDAP per realitzar autenticacions. El programa login segueix aquests passos:
    a) Mostra un prompt perquè l'usuari pugui posar el seu nom d'usuari i contrasenya.
    b) Crida al mòdul PAM per fer l'autenticació. PAM provarà d'autenticar primer amb /etc/passwd i /etc/shadow i després amb LDAP tal i com ho indica el fitxer nsswitch.conf.
    c) Si tot va bé, login carrega el shell de l'usuari (generalment /bin/bash) i a continuació es carrega l'entorn, l'entorn gràfic,....

2- Per verificar que login pot treballar amb LDAP per realitzar autenticacions. Comprova que pot trobar informació sobre l'usuari allop. Executa:   getent  passwd allop i comprova que et mostra tota la informació sobre l'usuari.

3- Verificació final:
    a) Comprova que l'usuari allop no existeix a l'equip Ubuntu. Verifica que no té una entrada a /etc/passwd i a  /etc/shadow. Verifica que el seu directori personal no existeix.
    b) Tanca la sessió de l'usuari d'Ubuntu actual.
    c) Reinicia l'equip.
    c) Accedeix com usuari allop amb la seva contrasenya.
    d) Comprova que es crea el directori personal de l'usuari allop i el seu entorn gràfic de treball.

PART 5: Instal·lant i  configurant el programari de Windows  necessari per autenticar usuaris sobre la base de dades del servidor LDAP

1- Instal·la la versió 3.1.8.0 de pGina. que permet autenticar Windows 7 contra una base de dades LDAP (i altres bases de dades).

2- A la secció Plugin Selection, selecciona totes les opcions del Plugin LDAP, i després fes clic a "Configure" per configurar el Plugin LDAP.

3- A la secció de configuració del Plugin LDAP:
    a) LDAP Host --> Escriu l'adreça IP del teu servidor LDAP
    b) LDAP Port --> 389
    c) Search DN --> El dn (distinguised name) de l'administrador. O sigui cn=admin,dc=xxxyyy,dc=net
    d)
Search Password --> Password de l'administrador --> fjeclot
    e)
Group DN Pattern --> Canvia dc=xxxyyy,dc=net
    f)
Authentication:
        * Valida Search for DN
        * Search Filter: uid=%u
       
* Search Context:
ou=UsuarisDomini, dc=xxxyyy,dc=net   

4- A la secció  Plugin Order (equivalent a nsswitch.conf) farem que primer es busqui l'usuari a la màquina local i després a LDAP

5- A la secció Simulation verificarem que podem autenticar l'usuari amb el servdor LDAP.  Utilitza com a Username allop i la seva contrasenya i verifica que s'autentica contra LDAP però no localment.

6- Reinicia el Windows,  i comprova que es posa en marxa despreś d'uns segon el sistema pGina.

7- Prova de Validar-te com l'usuari dper de LDAP.