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 lintera 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 dellalbero. 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. Loperazione più usata è quella di ricerca di informazioni allinterno 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 lalbero 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 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
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 dellalbero 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 # Definizioni di backend backend # Definizione di direttive di database e tipo database # Seconda definizione di direttive di database database # 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" write by * none Specifica che lamministratore può modificare lattributo 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 lamministratore 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 start Anche 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 Specifica il percorso del file di configurazione -h Specifica configurazioni alternative per il listener. quella di defaul è ldap:// che implica LDAP su TCP su tutte le interfacce e porta 389 -n Specifica il nome del servizio.Default=slapd -l Specifica lutente abilitato al syslog
5. Analisi costi - benefici
Analisi costi – benefici - 1 Le politiche di sicurezza assumono unimpor- 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, lesistenza di protocolli intrinsecamente insicuri non può essere che relegata a casi del tutto eccezionali.
Analisi costi – benefici - 2 Lidentità 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 allutenza.
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 dellalbero LDAP in server diversi. Un semplice meccanismo di linking permette di mantenere leffettiva 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, anchesso 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.