Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é...

27
Gestione centralizzata delle Gestione centralizzata delle utenze tramite LDAP utenze tramite LDAP Giuseppe Lo Biondo INFN-MI [email protected] Firenze, 19 Settembre 2000

Transcript of Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é...

Page 1: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Gestione centralizzata delleGestione centralizzata delleutenze tramite LDAPutenze tramite LDAP

Giuseppe Lo Biondo [email protected]

Firenze, 19 Settembre 2000

Page 2: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Perché centralizzare le utenze?Perché centralizzare le utenze?•• Avere a che fare con una utenza numerosa e conAvere a che fare con una utenza numerosa e con

servizi informatici eterogenei e distribuiti spessoservizi informatici eterogenei e distribuiti spessosi risolve nella creazione di innumerevoli account susi risolve nella creazione di innumerevoli account sumacchine diverse e per scopi diversi.macchine diverse e per scopi diversi.

•• Questo, rendendo difficile la manutenzione degliQuesto, rendendo difficile la manutenzione degliaccount, può essere un problema per la sicurezzaaccount, può essere un problema per la sicurezzagenerale del sistema informatico: account validigenerale del sistema informatico: account validinon usati, account dimenticati…, password danon usati, account dimenticati…, password dacambiare su più macchine.cambiare su più macchine.

Page 3: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Come fare?Come fare?•• Centralizzare la gestione delle utenze é un modoCentralizzare la gestione delle utenze é un modo

per risolvere il problemaper risolvere il problema

•• Ad oggi le tecnologie più in voga per la gestioneAd oggi le tecnologie più in voga per la gestionecentralizzata delle utenze sono NIS ed LDAPcentralizzata delle utenze sono NIS ed LDAP

•• In questo contesto ci si propone di dare unaIn questo contesto ci si propone di dare unadescrizione di come implementare un sistema perdescrizione di come implementare un sistema perla gestione centralizzata delle utenze facendola gestione centralizzata delle utenze facendouso di LDAPuso di LDAP

Page 4: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Schema generaleSchema generale

LDAP or NIS serverLDAP or NIS client 2

LDAP or NIS client 3

LDAP or NIS client 1

User INFOTo ClientsAutenticazione,

informazioni sull'utenza (passwd, group,shadow)

FailoverFailover

Page 5: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Cosa é il Network InformationCosa é il Network InformationSystemSystem•• NISNIS é una tecnologia che permette di distribuire é una tecnologia che permette di distribuire

su un network informazioni sugli utenti, hosts,su un network informazioni sugli utenti, hosts,servizi etc..servizi etc..

•• Un dominio NIS consiste di un Un dominio NIS consiste di un master servermaster server con conla versione originale delle informazioni, di la versione originale delle informazioni, di slaveslaveserversservers che contengono copie di backup di queste che contengono copie di backup di questeinformazioni e di informazioni e di clientsclients che le usano. che le usano.

•• Le informazioni sono tipicamente in files inLe informazioni sono tipicamente in files informato db chiamati formato db chiamati mappemappe..

Page 6: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Lightweight Directory AccessLightweight Directory AccessProtocol (1)Protocol (1)•• LDAPLDAP è un protocollo di accesso a è un protocollo di accesso a Directory ServersDirectory Servers

(RFC 1777))

•• Usa un modello gerarchico delle informazioni, che sonoUsa un modello gerarchico delle informazioni, che sonoorganizzate in un albero (DIT)organizzate in un albero (DIT)

•• Il modello informativo é basato sulle entry, le quali sonoIl modello informativo é basato sulle entry, le quali sonocomposte da attributi che possono avere uno o più valoricomposte da attributi che possono avere uno o più valori

•• E’ possibile determinare il tipo degli attributi (ASCII,E’ possibile determinare il tipo degli attributi (ASCII,binario) e il loro comportamento (eg se il case èbinario) e il loro comportamento (eg se il case èimportante durante i confronti)importante durante i confronti)

Page 7: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Lightweight Directory AccessLightweight Directory AccessProtocol (2)Protocol (2)•• Il significato delle entry (cosa rappresentano) è stabilitoIl significato delle entry (cosa rappresentano) è stabilito

mediante un attributo particolare, la mediante un attributo particolare, la objectclassobjectclass

•• Le Le entryentry sono unicamente individuate da un sono unicamente individuate da un DistinguishedDistinguishedNameName (DN) (DN)

•• LDAP fornisce metodi di LDAP fornisce metodi di protezione delle informazioniprotezione delle informazioni(ACLs), di(ACLs), di autenticazione autenticazione (Standard, Kerberos, SASL), di(Standard, Kerberos, SASL), direplicazionereplicazione e di e di distribuzionedistribuzione (referrals) dei dati. (referrals) dei dati.

Page 8: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Lightweight Directory AccessLightweight Directory AccessProtocolProtocol (3) (3)LDAP può essere usato come server centrale per la

gestione delle utenze allo stesso modo di NIS.

Come per il NIS:

• Avere una singola istanza dei dati degli utenti permette dimantenere coerente su più macchine lo stato degliaccount operando da una singola postazione.

• I server LDAP possono essere replicati per garantire lafunzionalità del servizio.

Page 9: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Lightweight Directory AccessLightweight Directory AccessProtocol Protocol (4)(4)Inoltre:

• Le informazioni sul server LDAP possono essere usate daapplicazioni di natura diversa (mail routing, addressbookecc) senza che sia necessario modificarne la struttura.

• Access Lists anche molto complesse possono essereapplicate a tali informazioni

• Un canale sicuro di trasmissione tra client e server puòessere implementato tramite SSL (importantesoprattutto se si ha a che fare con la distribuzioni diinformazioni riguardanti gli utenti)

Page 10: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Autenticazione e name servicesAutenticazione e name services•• Per comprendere come può essere usato LDAP alPer comprendere come può essere usato LDAP al

posto di NIS occorre conoscere le tecnologie:posto di NIS occorre conoscere le tecnologie:–– Pluggable Authentication ModulesPluggable Authentication Modules (PAM) (PAM)–– NameName Service Switch Service Switch (NSS) (NSS)

usate tipicamente da Linux e SunOs ma disponibiliusate tipicamente da Linux e SunOs ma disponibilianche su altri sistemi operativianche su altri sistemi operativi

•• Avendo a che fare con un servizio (LDAP) cheAvendo a che fare con un servizio (LDAP) chefornisce informazioni sull’utenza é necessariofornisce informazioni sull’utenza é necessariocomprendere il comprendere il Secure Socket Layer Secure Socket Layer (SSL)(SSL)

Page 11: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Pluggable Authentication ModulePluggable Authentication Module•• PAM é una tecnologia che rende trasparente il meccanismoPAM é una tecnologia che rende trasparente il meccanismo

di autenticazione alle applicazioni che necessitano didi autenticazione alle applicazioni che necessitano diautenticare gli utenti (login, ftp, imap etc..).autenticare gli utenti (login, ftp, imap etc..).

•• L'uso di questa tecnologia permette di usare LDAP (o altriL'uso di questa tecnologia permette di usare LDAP (o altriservizi) come meccanismo di autenticazione su qualsiasiservizi) come meccanismo di autenticazione su qualsiasisistema supporti PAM senza dovere per questo modificaresistema supporti PAM senza dovere per questo modificarele applicazioni.le applicazioni.

•• Tramite files di configurazione é possibile stabilire in cheTramite files di configurazione é possibile stabilire in chemodo una applicazione deve autenticare gli utenti. Lemodo una applicazione deve autenticare gli utenti. Le“azioni” per stabilire l'autenticazione sono implementate“azioni” per stabilire l'autenticazione sono implementatein dei moduli (librerie).in dei moduli (librerie).

Page 12: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Pam_ldap.soPam_ldap.so

•• Pam_ldap.so é il modulo necessario a PAM perPam_ldap.so é il modulo necessario a PAM perpotere autenticare gli utenti tramite un serviziopotere autenticare gli utenti tramite un servizioLDAPLDAP

•• Una volta installato il modulo, occorre istruireUna volta installato il modulo, occorre istruirePAM ad usarlo per fornire alle applicazioniPAM ad usarlo per fornire alle applicazionil’autenticazione tramite LDAPl’autenticazione tramite LDAP

•• I file di configurazione di PAM sono nellaI file di configurazione di PAM sono nelladirectorydirectory

/etc/pam.d/etc/pam.d

Page 13: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Esempio configurazione PAMEsempio configurazione PAM# cat /etc/pam.d/login#%PAM-1.0auth required /lib/security/pam_securetty.soauth required /lib/security/pam_nologin.soauth sufficient /lib/security/pam_ldap.soauth required /lib/security/pam_unix_auth.so try_first_passaccount sufficient /lib/security/pam_ldap.soaccount required /lib/security/pam_unix_acct.sopassword required /lib/security/pam_cracklib.sopassword sufficient /lib/security/pam_ldap.so use_authtokpassword required /lib/security/pam_unix_passwd.souse_first_pass md5 shadowsession required /lib/security/pam_unix_session.so

Page 14: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

PAM PAM LayoutLayout

stunnel

stunnel.pem

LDAP

slapd.confPAM Library

logi

n

FTP

SSH

pam.d

ldap.conf

pam_ldap.so

cert7.db

...Client

Server

SSL

Page 15: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Name Service SwitchName Service Switch

• Allo stesso modo di PAM, NSS rende indipendenti leapplicazioni dai name services in modo trasparente.

• Usando NSS é possibile reperire da LDAP quelleinformazioni che normalmente vengono fornite dai file disistema passwd, shadow, groups, hosts etc.

• Questo é possibile perché NSS mappa le chiamate dellalibreria C GNU (getpw*, getsh* etc...) in azioni(implementate in delle librerie) che dipendono dallatecnologia del name service sottostante (che può essereLDAP, NIS o altro).

Page 16: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Nss_ldap.soNss_ldap.so

•• Nss_ldap.so é la libreria che é necessaria alNss_ldap.so é la libreria che é necessaria alName Service Switch per ottenere tramite LDAPName Service Switch per ottenere tramite LDAPle informazioni relative agli utentile informazioni relative agli utenti

•• Nss può essere istruito ad usare questa libreriaNss può essere istruito ad usare questa libreriatramite il filetramite il file

/etc/nsswitch.conf/etc/nsswitch.conf

Page 17: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Esempio di configurazione NSSEsempio di configurazione NSS

In /etc/In /etc/nsswitchnsswitch..confconf, nelle prime linee si, nelle prime linee siavra avra qualcosa come:qualcosa come:

passwd: files ldapgroup: files ldapshadow: files ldap

Page 18: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

NSS librarystunnel

stunnel.pem

LDAP

slapd.conf

Schema NSSSchema NSS

Nsswitch.conf

ldap.conf

nss_ldap.so

cert7.db

Getp

w*

Gets

h*

Getg

r*...

GNU libC calls ClientServer

nscd

SSL

Page 19: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Secure Socket LayerSecure Socket Layer SSL é un protocollo al livello applicazione che fornisce un canaleSSL é un protocollo al livello applicazione che fornisce un canale

“sicuro” di comunicazione tra parti. SSL é basato su meccanismi“sicuro” di comunicazione tra parti. SSL é basato su meccanismicrittografici a chiave pubblica e su certificati X.509. E’ necessariocrittografici a chiave pubblica e su certificati X.509. E’ necessarioin questo contesto per fare in modo che il dialogo tra le libreriein questo contesto per fare in modo che il dialogo tra le libreriePAM ed NSS ed il server LDAP sia sicuro.PAM ed NSS ed il server LDAP sia sicuro.

SSL fornisceSSL fornisce

•• data encryptiondata encryption: la sessione Client/server é crittata.: la sessione Client/server é crittata.

•• server authenticationserver authentication: i client possono identificare l'identità del: i client possono identificare l'identità delserver.server.

•• message integritymessage integrity: Le informazioni non sono modificate durante la: Le informazioni non sono modificate durante latrasmissione.trasmissione.

•• client authenticationclient authentication: il server può: il server può identificare i client identificare i client

Page 20: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Secure Socket Layer e LDAPSecure Socket Layer e LDAP

•• SSL viene fornito in maniera nativa dalleSSL viene fornito in maniera nativa dalleimplementazioni di LDAP V3, i server LDAP V2implementazioni di LDAP V3, i server LDAP V2necessitano di un necessitano di un wrapperwrapper per poter usare SSL per poter usare SSL(per esempio(per esempio stunnel stunnel))

•• Le librerie pam_ldap.so e nss_ldap.so fornisconoLe librerie pam_ldap.so e nss_ldap.so fornisconoautonomamente SSL (occorre compilare usandoautonomamente SSL (occorre compilare usandola apposita libreria SSL)la apposita libreria SSL)

Page 21: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Server LDAPServer LDAP

•• Sul server LDAP saranno contenute leSul server LDAP saranno contenute leinformazioni sull'utenza.informazioni sull'utenza.

•• Queste informazioni dovranno essere accessibiliQueste informazioni dovranno essere accessibilisoltanto da client autorizzati: occorre quindisoltanto da client autorizzati: occorre quindiprestare attenzione nella configurazione delleprestare attenzione nella configurazione delleACLs ACLs sul server.sul server.

Page 22: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Formato delle entries su LDAPFormato delle entries su LDAP•• Le entries devono rispettare un formato (schema)Le entries devono rispettare un formato (schema)

particolare affinché venga loro attribuito ilparticolare affinché venga loro attribuito ilsignificato di significato di accountsaccounts..

•• Lo schema a cui si fa qui riferimento é quelloLo schema a cui si fa qui riferimento é quellodescritto nell’RFC 2307 le descritto nell’RFC 2307 le objectclass objectclass che ciche ciinteressano descritte in questo RFC sono:interessano descritte in questo RFC sono:–– posixAccoutposixAccout–– shadowAccountshadowAccount–– posixGroupposixGroup

Page 23: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Esempio di account Unix su LDAPEsempio di account Unix su LDAPdn: cn=Giuseppe LoBiondo, ou=people, ou=Sezione diMilano,o=Istituto Nazionale di Fisica Nucleare,C=itcn: Giuseppe Lo Biondosn: Lo Biondoobjectclass: topobjectclass: personobjectclass: accountobjectclass: posixAccountobjectclass: shadowAccountuid:giuseppeuserpassword:{crypt}$1$ss2ii(0$gbs*do&@=)eksduidnumber:104gidnumber:100gecos:Giuseppe Lo BiondologinShell:/bin/zshhomeDirectory: /home/giuseppeshadowLastChange:10877shadowMin: 0shadowMax: 999999shadowWarning: 7shadowInactive: -1shadowExpire: -1shadowFlag: 0

primary key

objectclasses

passwd info

shadow info

Page 24: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Gestione degli Gestione degli accountsaccounts•• Esistono diversi SW pubblici che permettono di gestire leEsistono diversi SW pubblici che permettono di gestire le

utenze su LDAP, vale la pena di citare utenze su LDAP, vale la pena di citare JavaJava LDAP LDAP BrowserBrowserEditor (Editor (httphttp://://wwwwww..iitiit..eduedu/~/~gawojargawojar/ldap//ldap/))

Page 25: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Limiti del sistemaLimiti del sistema•• Per rendere il servizio LDAP ridondante, occorrePer rendere il servizio LDAP ridondante, occorre

replicare il server, questo é possibile con moltireplicare il server, questo é possibile con moltiserver LDAP.server LDAP.

•• La gestione degli account non é immediata,La gestione degli account non é immediata,occorre avere una certa familiarità con LDAP.occorre avere una certa familiarità con LDAP.

Page 26: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

Cosa fare per…Cosa fare per…Le istruzioni dettagliate per implementare il sistema sin quiLe istruzioni dettagliate per implementare il sistema sin qui

descritto sono contenute nel documento:descritto sono contenute nel documento:

LDAP as a Network Information Service.LDAP as a Network Information Service.

reperibile all’URLreperibile all’URL

http://www.mi.infn.it/~lobiondo/ldapnis.http://www.mi.infn.it/~lobiondo/ldapnis.pdfpdf

Il documento completa con i dettagli di installazione eIl documento completa con i dettagli di installazione econfigurazione questo configurazione questo talktalk

Questo Questo talktalk é reperibile é reperibile all’URLall’URL::

httphttp://://wwwwww.mi..mi.infninfn..itit/~/~lobiondolobiondo/LDAPNIS/LDAPNIS

Page 27: Gestione centralizzata delle utenze tramite LDAP fare? • Centralizzare la gestione delle utenze é un modo per risolvere il problema • Ad oggi le tecnologie più in voga per la

BibliografiaBibliografia•• [1] W. Yeong - Performance Systems International, T. Howes - University[1] W. Yeong - Performance Systems International, T. Howes - University

of Michigan, S. Kille - ISODE Consortium, Network Working Group,of Michigan, S. Kille - ISODE Consortium, Network Working Group,Request for Comments: 1777, Request for Comments: 1777, Lightweight Directory AccessLightweight Directory AccessProtocoProtocol,March 1995.l,March 1995.

•• [2] L. Howard - Network Working Group, Request for Comments: 2307,[2] L. Howard - Network Working Group, Request for Comments: 2307,AnAnApproach for Using LDAP as a Network Information ServicApproach for Using LDAP as a Network Information Service, March 1998.e, March 1998.

•• [3] University of Michigan, [3] University of Michigan, The SLAPD and SLURPD Administrator’s GuidThe SLAPD and SLURPD Administrator’s Guide,e,30 April 1996.30 April 1996.

•• [4] Vipin Samara, Charlie Lai - SunSoft Inc. , [4] Vipin Samara, Charlie Lai - SunSoft Inc. , Making Login ServicesMaking Login ServicesIndependent of Authentication TechnologieIndependent of Authentication Technologies, March 1996s, March 1996

•• [5] Andrew G. Morgan, [5] Andrew G. Morgan, The Linux-PAM System Administrators’ GuidThe Linux-PAM System Administrators’ Guide, 11e, 11August 1999.August 1999.