dimarts, 25 d’agost del 2015

Connectar client Ubuntu a LDAP server NAS Synology

Hem adquirit un equipet a l'IES, que a més d'un sistema NAS (Network Area Storage), és tot un servidor Linux de fàcil configuració amb un munt de serveis que poden ser instal·lats:
  • Servidor Web
  • Servidor de correu
  • Portals Moodle, Drupal, Joomla
  • I el que ens interessa: sevidor LDAP
En aquest post vaig a descriure els passos seguits per configurar aquest NAS (un Synology DiskStation 214+) com a servidor LDAP i la configuració dels ordinadors de l'IES, amb Ubuntu 14.04 com a clients d'aquest LDAP, per a que en aquests ordinadors puguen validar-se els usuaris continguts al servidor LDAP.
El procés seguit ha estat:
Primer instal·lem i configurem el servei LDAP al dispositiu NAS seguint aquest tutorial. Hem de configurar també que el NAS siga client d'ell mateix, del servidor LDAP i cerar alguns usuaris LDAP de prova.
Per configurar el client, he seguit  aquest tutorial (amb aquest altre tutorial no funcionava bé), les coses importants són:
  • Cal instal·lar els paquets libnss-ldap, libpam-ldap, ldap-utils, com diu l'anterior tutorial, i a més el paquet nslcd, per a que PAM busque a LDAP.
  • Recordar eliminar el paquet nis, per a que no hi haja conflictes entrte els serveis NIS i LDAP, que fan el mateix de diferent forma.
  • La configuració de /etc/ldap.conf:
    • posar la línia base com reporta la configuració del servidor LDAP:
      base dc=ldap,dc=iesgregorimaians,dc=org
    • Afegir la URI del servidor LDAP:
      uri ldap://IP-INTERNA-DEL-NAS
    • Fer servir rootbinddn i NO binddn, amb el contingut reportat també a la configuració del servidor LDAP:
      rootbinddn uid=root,cn=users,dc=ldap,dc=iesgregorimaians,dc=org
    • Posar el password pel servidor LDAP al fitxer /etc/ldap.secret (només el pot llegir root)
  • Al fitxer /etc/nsswitch.conf:
    • Canviar les tres primeres línies a:
      passwd:       compat ldap 
      group:         compat ldap 
      shadow:      
      compat ldap 

Muntatge dels HOME

1ª versió

El primer que he pogut aconseguir, és que em cree el directori HOME de cada usuari dins el directori LOCAL /home la primera vegada que un usuari LDAP es valide. Així, com /home és local aquest usuari tindrà un perfil diferent en cada màquina que es valide, amb els seus documents i demés.
Per fer-ho he seguit les instruccions del tutorial anterior:
root@www:~#
vi /etc/pam.d/common-password
# line 26: change ( remove 'use_authtok' )

password     [success=1 user_unknown=ignore default=die]     pam_ldap.so try_first_pass
root@www:~#
vi /etc/pam.d/common-session
# add at the last if needed ( create home directory automatically at first login )

session optional        pam_mkhomedir.so skel=/etc/skel umask=077

2ª versió

Si faig que el directori /home siga muntat per xarxa amb NFS, aconseguiré una configuració similar a la que tenia abans amb el servidor Ubuntu.
Després de perdre moltes hores fent proves, no he pogut aclarir-me amb els permisos NFS, ja que s'apliquen sempre altres permisos, deu ser aquella cosa dels permisos ACL, Access Control List.

3ª versió

És tracta de fer servir el nou procediment amb l'automounter autofs.
Farem servir el recurs compartit homes, que és creat automàticament quan activem el servei user home service, activant-lo segons aquest tutorial. Aquest servei ens crea una compartició homes i fa que cada usuari tinga una carpeta HOME. Un problema que vorem després és que aquestes carpetes tenen un nom estrany: nomusuari-IDusuari, on IDusuari és l'uid de l'usuari, un número que comença amb 1000000. També aquestes carpetes estan a /var/services/homes/@LH-LDAP.IESGREGORIMAIANS.ORG/61/nomusuari-idusuari , aquest número 61 és el resultat de desplaçar cap a la dreta el uid 14 bits, per tant el 61 no canviarà almenys pels primers 10000 usuaris.

Per configurar l'autofs cal seguir aquest tutorial, però un problema molt, molt gros que vaig tindre, amb el que vaig perdre unes tres setmanes de temps fent provatures i innumerables correus amb el servei tècnic que no resolien res, va ser que el fitxer de mostra auto.syno havia estat editat des d'una màquina Windows i per tant contenia els dos caràcters propis de Windows per cada línia, LF i CR, quan vaig trobar el problema vaig fer servir la utilitat dos2unix per convertir el fitxer a format de text Unix. Al tutorial també diu que cal cridar el mapa auto.syno des de l'auto.master amb la línia /home program:/etc/auto.syno , això no és així, la línia ha de ser simplement  /home /etc/auto.syno , però el fitxer auto.syno ha de ser executable. El fitxer de mapa auto.syno és un script executable i per solucionar problemes es pot executar des d'un terminal per vore com funciona.

Una vegada resolt el tema dels caràcters Windows al fitxer auto.syno, aquest servei autofs i el mapa executable funciona perfectament, però encara es presenta un altre problema: als usuaris LDAP no se'ls crea la seu carpeta HOME (aquesta del nom amb l'uid) al crear l'usuari, cal que l'usuari es valide a DSM o per Samba per a que es cree la carpeta. Però quan aquest usuari es valide a un client Linux, com s'ha de muntar la carpeta per autofs, tampoc pot ser creada pel pam_mkhomedir, ja ha d'existir. Per tant, després de donar d'alta els usuaris, caldrà crear les carpetes d'aquests manualment mitjançant un shell script.
Resoldre error de bloquejos al muntar els HOME
Un malfuncionament va comença a aparèixer quan es van connectar varis clients al servidor LDAP, que començaven a bloquejar-se i quedava tot enganxat fins que es resetejava el NAS.
Vaig recordar que també em passava una cosa semblant amb l'antic servidor i se solucionava afegint la opció nolock a la línia del muntatge del HOME als clients. Com ara aquesta línia la genera el autofs des del mapa executable auto.syno, ha sigut necessari canviar aquest per afegir l'opció a l'última ordre de l'script, que ha de quedar:
echo "-fstype=nfs,nolock,nfsvers=3 $NFS_SERVER:/var/services/homes/@LH-$domain/$num/${key// /\\ }-$uid"

Muntatge dels recursos programari i treball

Aquest recursos abans estaven dins el /home de l'antic servidor, al ser exportat per NFS i muntat pels clients, des d'aquests clients teniem accés a aquestes carpetes, per exemple a programes compartits desats a programari.
Ara com els HOME de cada usuari es exportat per separat amb l'automounter, caldrà muntar-los a banda en cada client. El muntatge via SMB des del navegador de fitxers té molts problemes: absència dels permissos UNIX i per tant de la possibilitat d'execució i que de fet els recursos no estan autènticament muntats sobre l'arbre de fitxers del client.
La solució trobada funciona fins i tot millor que la de l'antic servidor i és altra vegada fer servir l'autofs:

  • Afegim a /etc/auto.master una nova clau externa:
/net /etc/auto.nfs
  • Creem el fitxer /etc/auto.nfs que conté les línies de muntatge dels dos recursos:
    programari -fstype=nfs,soft,tcp,nolock  192.168.0.253:/volume1/programari
    treball -fstype=nfs,rw,soft,tcp,nolock 192.168.0.253:/volume1/treball
I així, tindrem els dos recursos muntats a /net/programari i a /net/treball, però atenció: només quan els necessitem, tal i com fa l'automounter, per tant si no ens apareixem al Nautilus, utilitzem el menú Vés->Introdueix la ubicació...

Cap comentari:

Publica un comentari a l'entrada