M06: Administració de Sistemes operatius UF1: Administració avançada de sistemes operatius
ASIX-2 Pràctica 2c: Domini amb NFS i LDAP 3-12-2021

PRÀCTICA 2c: Domini amb NFS i LDPAP

CONDICIONS DEL TREBALL
1- Comprovacions:
2-
Data d'inici de les comprovacions: 17-12-2021
   
 
PART 1 - ABANS DE COMENÇAR

1- Esborra els usuaris alum00, alum01, alum02, alum03 del servei SAMBA executant:
     sudo smbpasswd -x
alum00

     sudo smbpasswd -x alum01
     sudo smbpasswd -x alum02
     sudo smbpasswd -x alum03

2-
  Elimina de la màquina servidora Debian els usuaris alum00, alum01, alum02, alum03, prof00 i prof01 que vas crear a les anteriors pràctiques. Assegura't d'esborrar també els seus directoris personals. Executa:
    sudo userdel -r alum00

    sudo userdel -r alum01
    sudo userdel -r alum02
    sudo userdel -r alum03
    sudo userdel -r prof00
    sudo userdel -r prof001

3-  Elimina de la màquina servidora  Debian els grups  alum, prof i dptinf que vas crear a les anteriors pràctiques. Utilitza sudo groupdel.
    sudo groupdel alum
    sudo groupdel prof
    sudo groupdel dptinf    

4- Si encara existeixen dins del sistema operatiu, elimina també els grups
alum00, alum01, alum02, alum03, prof00 i prof01.

5- Esborra
de la màquina servidor Debian les carpetes /srv/nfs i /srv/samba que vas crear a les anteriors pràctiques.
 
6- 
Deshabilita el servei NFS executant: sudo systemctl  disable nfs-kernel-server
   
7-
Deshabilita el servei SAMBA de l'arrancada del sistema executant:
   
    sudo systemctl disable smbd
    sudo systemctl disable nmbd
 

7-
  Elimina de la màquina client Debian els usuaris  alum00, alum01, prof00 i prof01 que vas crear a les anteriors pràctiques.
Assegura't d'esborrar també els seus directoris personals. Executa:
    sudo userdel -r alum00

    sudo userdel -r alum01
    sudo userdel -r prof00
    sudo userdel -r prof001

8-
  Elimina de la màquina
client Debian els grups alum, prof i dptinf que vas crear a les anteriors pràctiques. Executa:
    sudo groupdel alum
    sudo groupdel prof
    sudo groupdel dptinf    

9-
Si encara existeixen dins del sistema operatiu, elimina també els grups alum00, alum01, prof00 i prof01.

10- Elimina de la màquina client Debian el directoris /mnt/nfs i els seu subdirectoris.

PART 2: 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.
    NOTA 1:  Durant el procés d'instal·lació assigna fjeclot com a contrasenya per l'administrador del servidor LDAP.
    NOTA 2: Quan finalitzi el procés comprova el nom de domini s'ha agafat correctament del nom del servidor:
                    
a) Comprova el domini del teu equip. Executa: hostname -d
                     b) Executant amb permís de root l'ordre: slapcat
                     c) Comprova que el dn de primer node val -->  dn: dc=fjeclot, dc=net i que els valors obtinguts són iguals als obtinguts amb hostname -d.
   
NOTA 3: Quan finalitzi el procés comprova el nom complet distintiu de l'administrador de LDAP.
                    
a) Executa amb permís de root l'ordre: slapcat
                     b) Comprova que és  -->  cn=admin, dc=fjeclot, dc=net

   

2- Instal·la el programari openjdk-17-jdk que és necessari per fer funcionar el programa Apache Directory Studio que s'ha d'instal·lar en el següent pas. Executa:
    sudo aptitude update
    sudo aptitude install openjdk-17-jdk

3- Instal·la
Apache Directory Studio que és una eina gràfica per gestionar  una base de dades LDAP .

4- 
Abans de continuar, comprova:
    a) quin és l'estat del servidor LDAP amb systemctl. Executa: sudo systemctl status slapd
    b)
que pots aturar/iniciar/reiniciar el servidor LDAP amb systemctl.
    c) amb netstat el port utilitzat (número i tipus) pel servidor LDAP.

5- Des d'Apache Directory Studio, crea una connexió al servidor OpenLDAP de nom xxyyzz-m06 (a on xxyyzz-m06 és el nom del teu equip servidor Debian).
    NOTA 1: El valor de Hostname serà localhost o l'adreça IP de Debian. El valor del port és el 389.
    NOTA 2: Mètode d'encriptació -->  No encryptation (més endavant podem modificar-lo si configurem LDAPS o StartTLS)
    NOTA 3: Mètode d'autenticació -->  Autenticació Simple.
    NOTA 4: Bind DN or user --> Nom complet distingit de l'usuari admin --> cn=admin,dc=fjeclot,dc=net
    NOTA 5:
Bind password --> El password de l'administrador de LDAP que s'ha introduït durant la instal·lació.
    NOTA 6:  Per la resta de paràmetres es pot deixar la configuració per defecte.

6- Des d'Apache Directory Studio, crea una:
     a) Unitat Organitzativa (ou) de nom UsuarisGrups dins de dc=fjeclot,dc=net. Per poder crear-la cal:
            * Afegir una nova entrada dins de dc=fjeclot,dc=net. Fes clic amb el botó de la dreta sobre
dc=fjeclot,dc=net  i selecciona: New --> New Entry --> Create entry from scratch
            * Afegeix un ObjectClass de tipus organitzationalUnit
            * Afegeix un RDN de tipus ou (unitat organitzativa) i de valor UsuarisGrups, o sigui ou=UsuarisGrups. Per tant el nom distintiu (DN) final serà dn: ou=UsuarisGrups,dc=fjeclot,dc=net
     b
) De la mateixa manera, crea també una unitat organitzativa de nom Equips dins de dc=fjeclot,dc=net.
     c
) Finalment, crea una altra unitat rganitzativa de nom Recursos dins de dc=fjeclot,dc=net.

7-
Des d'Apache Directory Studio , crea els següents grups:
    a) Un grup de nom UsuarisDomini dins de la unitat organitzativa 
UsuarisGrups. Per poder crear-lo cal:
           * Afegir una nova entrada dins d'UsuarisGrups.
           * Afegeix el objectClass posixGroup
           *
Afegeix un RDN de tipus  cn (per posar nom al grup) de valor UsuarisDomini, o i sigui, cn=UsuarisDomini i per tant el nom
distintiu de l'entrada serà dn:  cn=UsuarisDomini,ou=UsuarisGrups,dc=fjeclot,dc=net
           * Quan et demanin el gidNumber (per posar un GID al grup) escriu el valor 101, o sigui, gidNumber=101
 
    b) Un grup de nom AdminDomini dins de la unitat organitzativa  UsuarisGrups i per tant, el nom distintiu serà dn: cn=AdminDomini,ou=UsuarisGrup,dc=fjeclot,dc=net. El
gidNumber del grup serà igual a 100
 
8
-
Des d'Apache Directory Studio,crea un usuari dins del grup UsuarisDomini utilitzant els següents ObjectClass i  afegint  els següents atributs:
    a) objectClass: top, posixAccount, shadowAccount, person
    b) Afegeix un RDN de tipus uid (user identifier) de valor jgim per posar nom a l'usuari, i per tant el nom  distintiu de l'usuari serà --> dn: uid =jgim, cn=UsuarisDomini,ou=UsuarisGrups,dc=fjeclot,dc=net
    c) Common name -->  cn: jaume gimenez
    d)
Surname --> gimenez
    d) Número d'usuari --> uidNumber: 1002
    e) Número de grup per defecte --> gidNumber: 101
    f) Directori de l'usuari --> homeDirectory: /home/jgim
    g) Afegeix els atributs (fent clic amb el botó de la dreta sobre la finstra central a on es veu la llista d'atributs):
        * Shell de l'usuari --> loginShell: /bin/bash
        * Contrasenya de l'usuari: userPassword:: fjeclot01


9- Des d'Apache Directory Studio, crea un usuari 
dins del grup UsuarisDomini utilitzant els següents ObjectClass i  afegint  els següents atributs:
     a) objectClass: top, posixAccount, shadowAccount, person
     b)
Afegeix un RDN de tipus uid (user identifier) de valor alop per posar nom d'usuari i per tant el nom distintiu de l'usuari serà-->  dn: uid =alop, cn=UsuarisDomini,ou=UsuarisGrups,dc=fjeclot,dc=net    
     c) Common name -> cn: anna lopez
     d) Surname --> sn: lopez
     d) Número d'usuari --> uidNumber: 1003
     e) Número de grup per defecte --> gidNumber: 101
     f) Directori de l'usuari --> homeDirectory: /home/alop
    g) Afegeix els següents atributs:
         * Shell de l'usuari --> loginShell: /bin/bash
         * Contrasennya de l'usuari -->  userPassword:: fjeclot02


10- Des d'Apache Directory Studio, crea un usuari
dins del grup utilitzant els següents i  afegint  els següents : AdminDominiObjectClass atributs
      a) objectClass: top, posixAccount, shadowAccount, person

      b)Afegeix un RDN de tipus (user identifier) de valor per posar nom d'usuari i per tant el nuid jponsom distintiu de l'usuari serà-->  dn: uid =jpons, cn=AdminDomini,ou=UsuarisGrups,dc=fjeclot,dc=net
      c) Common name --> cn: jordi pons
      d) Surname --> sn: pons
      d) Número d'usuari --> uidNumber: 1004
      e) Número de grup per defecte -->  gidNumber: 100
      f) Directori de l'usuari --> homeDirectory: /home/jpons
      g) Afegeix els següens atributs:    
         *
Shell de l'usuari --> loginShell: /bin/bash
         * Contrasenya de l'usuari --> userPassword: fjeclot03


PART 3: Instal·lant i  configurant el programari del client Debian per autenticar usuaris sobre la base de dades del servidor LDAP

1-
Instal·la dins del client Debian els següent paquets necessaris per poder autenticar un usuari sobre la base de dades LDAP instal·lada al servidor: libnss-ldap, libpam-ldap, ldap-utils i nscd.

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

3- Configuració de libnss-ldap:

  a) IP o nom del servidor:
 

    Recorda que en aquest cas, 192.168.1.2 és un exemple!!!!!!!!!!!!!!!!!

    b) Domini:

   

  c) Versió de LDAP: 3
             
  d) Si ho pregunta --> Make local root Database admin?: Yes

  e) Si ho pregunta --> Does the LDAP database require login?: No  

  f) Si ho pregunta --> Special LDAP privileges for root?: Yes
 

  f) Si ho pregunta --> Make the configuration file readable/writeable by its owner only?: No    
 
 g) A la següent pregunta, escriu el nom distintiu complet de l'usuari administrador de ldap. En el meu cas:

   

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

    i) A la següent pantalla selecciona OK.

   NOTA IMPORTANT: Si volem fer canvis a libnss-ldap  només hem d'executar sudo dpkg-reconfigure  libnss-ldap  i et tornarà a fer-nos totes les preguntes una altra vegada.

4
- Configuració libpam-ldap
  
   a)
Allow LDAP admin account to behave like local root?: Yes

   b)
Does the LDAP database require login: No

   c)
LDAP administrative account: cn=admin,dc=fjeclot,dc=net

   d)
LDAP administrative password -->
L'utilitzat durant la instal·lació del servidor LDAP.

  
NOTA IMPORTANT: Si volem fer canvis a libpam-ldap  només hem d'executar 
sudo dpkg-reconfigure  libpam-ldap i et tornarà a fer-nos totes les preguntes una altra vegada.

PART 4: Configurant el client Debian per autenticar usuaris sobre la base de dades del servidor LDAP

1- Configuració de NSS:
a) Debian
utilitza el programari NSS
(Name Service Switch) per saber a on es pot trobar un usuari que  vol validar-se en el sistema. Poden ser usuaris locals o del domini. Si són del domini, es troben definits al servidor LDAP.  Si són locals es troben dins /etc/passwd.   
b) Si NSS necessita buscar usuaris dins de LDAP cal instal·lar primer libnss-ldap.
c) NSS utilitza com a fitxer de configuració /etc/nsswitch.conf
d) Per indicar al sistema que els usuaris poden ser locals o trobar-se a LDAP, i que busqui primer localment i després a LDAP, s'ha de configurar nsswitch.conf de la següent manera:



2- Configuració PAM:

a) Debian i molts programes poden delegar la feina d'autenticació d'usuaris  en un mòdul PAM (Pluggable Authentication Modules).
b) Per poder autenticar usuaris per mitjà de LDAP cal instal·lar el mòdul PAM que es troba a libpam-ldap.
c) Els arxius de  configuració dels mòduls PAM  es troben a /etc/pam.d.
d) El sistema PAM  permeterà autenticar usuaris LDAP i a més a més permet crear el directori home de l'usuari en el moment de la seva autenticació. Per fer-ho:
    * Obre com a root el fitxer /etc/pam.d/common-session
    * Afegeix al final del fitxer la següent línea:  session required    pam_mkhomedir.so  skel=/etc/skel  umask=0022

3- El servei nscd controla la memòria cau de les autenticacions realitzades contra. Aquesta memòria cau
permet optimitzar el temps d'accés posteriorment, però també a vegades queden dades a la cau que no estan actualitzades. Després de configurar NSS i PAM per treballar amb LDAP s'hauria de reiniciar el servei nscd executant: systemctl   restart   nscd. Així estem segurs que la memòria cau està neta i no tindrem problemes amb dades antigues.

PART 5- Verificació del funcionament del sistem d'autenticació d'usuaris del domini definits a LDAP des del client Debian

1- Primera verificació:
     a) Executa:   getent  passwd alop i comprova que et mostra tota la informació sobre l'usuari.
     b) Prova-ho amb la resta d'usuaris.

2- Verificació final :
    a) Comprova que l'usuari alop no existeix a l'equip client Debian. 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 actual del client Debian.
    c) Reinicia l'equip.
    c) Accedeix com usuari alop amb la seva contrasenya.
    d) Comprova que es crea un directori personal de l'usuari alop dins del client Debian i el seu entorn gràfic de treball.
    e) Comprova-ho que pots autenticar els usuaris  jgim i jpons.

PART 6- Accés a la carpeta personal dels usuaris validats via LDAP utilitzant  NFS

1- Comenta qualsevol entrada existent del fitxer /etc/exports del servidor Debian. Després, crea la següent entrada dins del fitxer /etc/exports del servidor Debian:

/home *(rw,sync,no_subtree_check,no_root_squash)

Això permet exportar els directoris dels usuaris a qualsevol màquina client que ho demani amb els paràmetres de seguretat bàsics. Amb l'opció rw un usuari pot llegir/modificar les dades de la seva carpeta personal amb el servidor. Després executa sudo exportfs -a i a conitnuació reinicia el servidor NFS amb sudo systemctl restart nfs-kernel-server. Després, habilita novament el servidor NFS amb
sudo systemctl enable nfs-kernel-server.

2- Fes que el client Debian munti durant l'arrancada el directori /home del servidor Debian dins de la carpeta local de /home. Has
d'afegir la següent línia al final de /etc/fstab: 
 
192.168.1.x:/home    /home    nfs    defaults    0    0

Recorda que el valor d'x és el de l'adreça IP del teu servidor Debian i pots trobar-lo també 
aquí .

3- Assegura't que el servei nfs-kernel-server està enable (sudo systemctl enable nfs-kernel-server) i reinicia el sistema.

4- Accedeix com el teu usuari asix2 i comprova amb df  -Th  que la carpeta  /home del client Debian és el punt de muntatge de la carpeta /home exportada des del servidor Debian.

5-
Comprova amb getent que pots consultar la informació de qualsevol usuari definit a LDAP.

6-
Accedeix des del
client Debian via terminal  com usuari jgim, jpons i alop a la seva carpeta personal.

7- Crea una carpeta o fitxer via terminal des del
client Debian amb els usuaris que han accedit a l'apartat anterior i comprova que també s'han creat en el servidor.

8- Comprova que pots accedir gràficament als comptes dels usuaris 
jgim, jpons i alop.

9- Crea una carpeta o fitxer  gràficament  des del
client Debian amb amb els usuaris que han accedit a l'apartat anterior i comprova que també s'han creat en el servidor.