LDAP Studio di fattibilità. Le sezioni dello studio di fattibilità 1. Panoramica sulla situazione...

Post on 01-May-2015

215 views 3 download

transcript

LDAP

Studio di fattibilità

Le sezioni dello studio di fattibilità

1. Panoramica sulla situazione attuale

2. Progetto della soluzione

3. Specifiche generali del sistema

4. Modalità di realizzazione

5. Analisi costi-benefici

1. Panoramica sulla situazione attuale

Introduzione

Con la nascita ed evoluzione di Internet e con il notevole incremento dei suoi utenti, sono sorti problemi di sicurezza.– La suite di protocolli TCP/IP non prevede nessun

meccanismo che garantisce confidenzialità e privacy tra gli utenti.

Gli scenari e le applicazioni in cui è richiesta confidenzialità e privacy delle connessioni sull'inter-rete sono molteplici.– Accedere in maniera privata ad una directory remota

dislocata su di un server è uno di questi possibili scenari.

Cos’è una directory

Database specializzato per la lettura e la ricerca. Possibilità di contenere informazioni basate su

attributi o descrizioni. Supporto di sofisticate capacità di ricerca attraverso

dei filtri. Risposte veloci ad operazioni di consultazione o di

ricerca su volumi di dati enormi.

Servizi locali e servizi globali

Alcuni servizi di directory sono locali.– Forniscono servizi ad un ristretto contesto, ad esempio una singola

macchina.

Altri servizi sono globali.– Forniscono servizi ad un contesto più ampio, quale ad esempio

l’intera Internet.

I servizi globali sono distribuiti.– I dati contenuti sono memorizzati in diverse macchine, ognuna delle

quali provvede al servizio di directory.

2. Progetto della soluzione

Cos’è LDAP

LDAP è un acronimo che sta per LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL.

È un protocollo leggero per accedere ai servizi di directory, basati sul protocollo X.500.

Opera su TCP/IP o su altre connessioni orientate ai servizi di trasferimento.

Tipologie delle informazioni

Il modello di informazioni di LDAP è basato sulle entry.– Collezioni di attributi che hanno un unico nome

globale: il Distinguished Name (DN). Ogni attributo della entry ha un tipo ed uno o

più valori.– I tipi sono stringhe mnemoniche, come cn per i

common name, oppure mail per gli indirizzi di posta elettronica.

Struttura delle informazioni

Le entry di una directory sono strutturate come in una struttura gerarchica di un albero.

La entry che rappresenta il paese si trova alla radice dell’albero.

Al di sotto di essa ci sono quelle che rappresentano stati e organizzazioni nazionali.– Seguono poi altri tipi di entry che possono rappresentare

organizzazioni, persone, stampanti, documenti, ecc.

LDAP directory tree con nomi usati in Internet

Come si accede alle informazioni

Il protocollo LDAP definisce servizi per accedere e aggiornare una directory.

L’operazione più usata è quella di ricerca di informazioni all’interno della directory.

LDAP fornisce un efficiente algoritmo di ricerca.

Protezione delle informazioni

Molti servizi di directory non prevedono protezione per i dati e le informazioni.

LDAP include un meccanismo nel quale un client si può autenticare, o provare la sua identità ad un directory server.

LDAP consente servizi di privacy e di integrità delle informazioni.

Funzionamento di LDAP -1

Il servizio di directory LDAP è basato su un modello client – server.

Uno o più server LDAP contengono i dati che servono a costruire l’albero delle informazioni di una directory, il DIT (Directory Information Tree).

Funzionamento di LDAP -2

Il client si connette al server e gli chiede informazioni.

Il server replica con risposte precise e/o con un puntatore ad eventuali informazioni addizionali.

Il client LDAP può comunicare sia con un server X.500 sia con un server LDAP.

3. Specifiche generali del sistema

Configurazioni di directory LDAP - 1

Servizi di directory locali – In questa configurazione, esiste un unico server

che offre  servizi di directory solo in un unico dominio.  

Configurazioni di directory LDAP - 2

Servizi di directory locali con riferimento– In questa configurazione, si imposta un server

che offre servizi di directory per il  dominio locale e lo si configura per ritornare riferimenti ad un servizio superiore capace di occuparsi di richieste esterne al dominio locale.

– è usata se si vogliono fornire servizi di directory locali e partecipare alla "Directory Globale" tramite Internet.

Configurazioni di directory LDAP - 3

Configurazioni di directory LDAP - 4

Servizi di directory replicati– In questo situazione è usato un demone per

propagare cambiamenti da un server master del servizio  ad uno o più server slave.

– può essere usata assieme ad altre in situazioni dove un solo server  non offre l'affidabilità richiesta.

Configurazioni di directory LDAP - 5

Configurazioni di directory LDAP - 6

Servizio di directory locale distribuito– In questa configurazione, il servizio globale è

partizionato in servizi più piccoli  ognuno dei quali può essere replicato e  unito a riferimenti superiori e subordinati.

4. Modalità di realizzazione

Installazione di OpenLDAP

é possibile scaricare OpenLDAP dal sito http://www.openldap.org/ Una volta ottenuto il pacchetto in formato compresso lo si deve decomprimere con il comando:

gunzip -c openldap-VERSION.tgz | tar xf –

sostituendo VERSION con la versione  corrente del pacchetto.Lo stesso pacchetto è disponibile anche in versione RPM per le versioni di Linux che supportano tale standard(RedHat, Suse, Mandrake).

Prerequisiti per l'installazione

Per il corretto funzionamento di OpenLDAP occorre installare software di terze parti:– Kerberos per la gestione della sicurezza nel

processo di autenticazione– librerie  SASL di Cyrus per  offrire servizi di  autenticazione

sicuri e ulteriori servizi  di sicurezza

 TCP Wrappers

slapd è il demone che gestisce le richieste dei client del servizio

slapd supporta  i TCP Wrappers per la gestione degli accessi a livello IP e per funzionalità di firewalling – La parte di backend del demone slapd richiede la

presenza della libreria per la gestione di database SleepyCat Software Berkeley DB.Berkeley DB è disponibile dal mirror Sleepycat alla  pagina http://www.sleepycat.com/download.html.

Opzioni di configurazione - 1

Lo script di configurazione configure supporta diverse opzioni e la gestione di flags e variabili d'ambiente.Per avere accesso a ulteriori informazioni sulla configurazione digitare il comando:

./configure --help Inoltre lo script configure comprende la

gestione di variabili d'ambiente per l'impostazione di particolari opzioni.

Opzioni di configurazione - 2

Fare il build del pacchetto – Se la fase di configurazione è andata a buon fine sarà

possibile generare le dipendenze per la compilazione, ciò avviene tramite il comando:

make depend– Il buiding dell'applicazione deve essere eseguito con il

comando:

make facendo attenzione all'output prodotto per vedere se sono

stati generati errori durante tale fase.

Opzioni di configurazione - 3

Testare il software  – Una volta che l'applicazione è stata configurata e compilata è possibile fare

il testing dei file generati con il comando: make test

Installare il software – Dopo aver testato i file generati in fase di building è ora possibile

procedere all'installazione vera e propria.Innanzitutto è necessario verificare di essere in possesso dei privilegi di scrittura nelle directory specificate in fase di configurazione.Per default OpenLDAP è installato nella directory /usr/local/.Tipicamente la fase di installazione richiede i privilegi del superuser.Ottenuti i privilegi di root, dalla directory d'installazione di OpenLDAP si esegue il comando:

make install– prestando sempre attenzione all'output generato, nel caso siano presenti

errori.

Avvio di slapd - 1

slapd gestisce le richieste dei client del servizio.

Spesso è in esecuzione su più macchine della rete per aumentare la disponibilità del servizio con una copia di parte o tutta la struttura dell’albero di directory

Avvio di slapd - 2

Avvio di slapd - 3

Possono esistere più istanze di slapd (slave) che fanno riferimento ad un'instanza master. L'istanza master mantiene un file di log con le informazioni che il demone slurpd passerà alle istanze slave  

Avvio di slapd - 4

Configurazione di slapd

La configurazione del demone slapd avviene mediante il file slapd.conf solitamente posto nella directory  /etc/openldap

Il file slapd.conf  consiste di tre sezioni per la configurazione: global, backend specific e database specific.

Le informazioni della sezione global ; sono le prime ad essere specificate all'interno del file, successivamente sono definite le direttive della sezione di backend ed infine quelle di database.

Le direttive globali possono essere sovrascritte da quelle di backend e/o di database , e le direttive di backend possono essere annullate dalle direttive di database.

Struttura di slapd.conf : Esempio

Le righe di commento iniziano con il simbolo #.La struttura di slapd.conf è simile alla seguente: # Direttive di configurazione globali <global config directives>

# Definizioni di backend backend <typeA> <backend-specific directives>

# Definizione di direttive di database e tipo database <typeA> <database-specific directives>

# Seconda definizione di direttive di database database <typeB> <database-specific directives>

# Successive direttive di backend, database e di configurazione ...

Esempi

Esempio (1)

access to attr=userPassword by self write by anonymous auth by dn.base="cn=Admin, dc=example, dc=com" writeby * none 

Specifica che l’amministratore può modificare l’attributo userPassword di qualsiasi entry, che ogni entry può modificare il suo attributo userPassword e che tutti gli altri non hanno permesso di lettura e di scrittura.

Esempio (2)access to * by dn.base="cn=Admin, dc=example, dc=com" write by * read 

Specifica che l’amministratore ha permesso di scrittura su qualsiasi oggetto e tutti hanno permesso di lettura su tutti gli oggetti.

Avvio e terminazione di slapd-1

slapd è stato progettato per essere eseguito come server stand-alone.I comandi per avviare slapd variano a seconda del tipo di installazione che è stata fatta, se da file RPM oppure da sorgenti.

Per installazioni da RPM digitare da riga di comando:    #/etc/init.d/slapd start

Per installazioni da sorgenti:    #/usr/local/etc/libexec/slapd startAnche la terminazione varia a seconda del tipo di installazione che è stata fatta. 

Avvio e terminazione di slapd-2 Per installazioni da RPM:

    #/etc/init.d/slapd stop

Per installazioni da sorgenti:    #kill –INT ‘cat /usr/local/var/slapd.log’

Per quanto riguarda la procedura di avvio è possibile specificare opzioni della riga di comando.Le più utili sono:

-f <nome_file>Specifica il percorso del file di configurazione

-h <URL>Specifica configurazioni alternative per il listener.quella di defaul è ldap:// che implica LDAP su TCP su tutte le interfacce e porta 389

-n <nome_servizio>Specifica il nome del servizio.Default=slapd

-l <syslog-utente-locale>Specifica l’utente abilitato al syslog

5. Analisi costi - benefici

Analisi costi – benefici - 1

Le politiche di sicurezza assumono un’impor- tanza quanto mai vitale in un contesto di autenticazione/autorizzazione.

In realtà aziendali dove concetti quali sicurezza dei dati, certificazione e privacy sono ormai di primaria importanza, l’esistenza di protocolli intrinsecamente insicuri non può essere che relegata a casi del tutto eccezionali.

Analisi costi – benefici - 2

L’identità del server LDAP è garantita dal suo certificato, che deve essere distribuito a tutti i client.

Oltre alla sicurezza delle transazioni, è stata dedicata particolare attenzione alla sicurezza dei dati residenti nel server LDAP, che rappresenta a tutti gli effetti il repository vero e proprio delle informazioni.

A questo scopo, esiste un unico amministratore che a sua volta definisce le politiche di accesso ai dati in base all’utenza.

Analisi costi – benefici - 3

Tipicamente un utente deve essere in grado di poter leggere i suoi dati personali, modificare la propria password, e leggere dati pubblici.

Ogni accesso ad altri dati viene negato.

Analisi costi – benefici - 4

In generale, le performance di un sistema di autenticazione possono essere valutate basandosi sui tempi medi di risposta ad un tentativo di login.

In un architettura basata su LDAP, i tempi di risposta sono mediamente superiori, specialmente con server LDAP particolarmente popolati.

Analisi costi – benefici - 5

Sono inoltre disponibili funzionalità di load balancing, con la possibilità di mantenere sottorami dell’albero LDAP in server diversi.

Un semplice meccanismo di linking permette di mantenere l’effettiva univocità logica della struttura.

Analisi costi – benefici - 6

Il beneficio che se ne trae anche in termini di scalabilità è notevole, soprattutto consideran do il fatto che diversi server LDAP possono essere strutturati gerarchicamente su più livelli.

In scenari particolarmente complessi,LDAP può scalare per aree geografiche.

Analisi costi – benefici - 7

Infine può essere implementato un meccanismo di replicazione, anch’esso estremamente semplice dal punto di vista concettuale, con lo scopo di mantenere altre copie del server LDAP, sincronizzate col principale, in grado di sostituirlo in caso di malfunzionamento dello stesso.

La modalità di sincronizzazione può essere personalizzata, in modo da non sovraccaricare la rete. Questo garantisce continuità del servizio sia nel caso di modifica dei dati che per manutenzione del server.