LDAP Studio di fattibilità. Le sezioni dello studio di fattibilità 1. Panoramica sulla situazione...
-
Upload
rosetta-chiari -
Category
Documents
-
view
215 -
download
3
Transcript of LDAP Studio di fattibilità. Le sezioni dello studio di fattibilità 1. Panoramica sulla situazione...
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.