Sistemi per l’elaborazione dell’informazione:
Sicurezza su reti
Problemi
♦ Reti molto vaste con numerose risorse da gestire…
♦ Account validi non usati, account dimenticati,password da
cambiare su più macchine...
♦ Localizzare oggetti quali: computer , stampanti, utenti…
♦ Gestire il processo di autenticazione…
Antonio Radesca
Anno Accademico 2002-2003
Il protocollo LDAP
♦ Il protocollo LDAP (Lightweight Directory Access
Protocol) è uno standard aperto per l’erogazione di servizi
di directory tramite una rete Intranet o Internet
♦ Basato sullo standard X.500 e su TCP
♦ Discendente del protocollo DAP
♦ Proposto nel 1993 ed adottato dalla IETF
Servizio di Directory
???
Vantaggi di LDAP
♦ Cataloga tutte le informazioni riguardanti gli oggetti
presenti in una rete , quali utenti , stampanti e workstation
e le distribuisce in tutta la rete
♦ Le informazioni sono contenute in un database
centralizzato
♦ Garantisce il controllo sugli accessi e permette la gestione
del processo di autenticazione
♦ Fornisce una visione semplificata ed omogenea della rete
Differenze tra LDAP e DAP
♦ Un servizio di directory è un database contenente
♦ DAP(Directory Acces Protocol) è un protocollo che
informazioni riguardanti gli oggetti presenti all’interno di
una rete basate su attributi
♦ Permette una gestione gerarchica e centralizzata degli
oggetti presenti in una rete
♦ Generalmente si tratta di un servizio distribuito
♦ Permette brevi tempi di risposta a query permettendo la
replica delle informazioni
richiede molte risorse e opera su tutti i livelli dello
standard OSI
♦ LDAP è progettato per funzionare su TCP/IP (solo 4
livelli) ed offre la maggior parte della funzionalità di DAP
ad un costo molto più basso
1
Struttura del protocollo LDAP
Entry
♦ Basato sul paradigma Client -Server
♦ Struttura gerarchica(simile al DNS)
♦ Un'entry è una raccolta di attributi che fanno riferimento
♦ Esiste uno o più server che forniscono accesso a un
♦ Il DN è usato per riferirsi inequivocabilmente all’entry
ad un Distinguished Name (DN) unico
DIT(Directory Information Tree)
♦ L’albero è formato da entry
ESEMPIO
Entry per l’utente Antonio Radesca:
uid=antrad,ou=People,dc=example,dc=com.
Albero di Directory LDAP
Sessione LDAP
Il server LDAP gli ritorna la risposta oppure
un puntatore alla posizione in cui il client
potrà avere maggiori informazion(tipicamente
restituisce l’indirizzo IP di un altro server LDAP)
Client LDAP si connette
ad un server LDAP e gli
pone una domanda
Server LDAP
Client LDAP
Richiesta
Risposta
IBM Compatible
Autenticazione con LDAP
Server LDAP
Server Kerberos
OpenLDAP
Autenticazione e generazione del TGT
IBMCompatible
IBMCompatible
Invio ticket per servizio LDAP
www.openldap.org
Invio query e
risposta
tramite SSL
Richiesta e rilascio ticket per servizio LDAP
Workstation
2
OpenLDAP
1.
2.
3.
4.
5.
6.
7.
8.
Panoramica e prerequisiti di OpenLDAP
Installazione
Caratteristiche e struttura
Configurazione di slapd
Schemi e Access List
Configurazione per la replica
PAM_LDAP
OpenLDAP e Microsoft @ Active Directory
Prerequisiti software per
l’installazione
♦ Librerie OpenSSL-TLS(www.openssl.org)
♦ Servizi di autenticazione Kerberos e/o PAM (Per
l’autenticazione sicura)
♦ Librerie Cyrus SASL (Simple Authentication and Security
Layer)
♦ Berkeley DB 4
♦ POSIX Thread
♦ Librerie libpam-ldap(Opzionali)
♦ nss-ldap(Opzionale)
Demoni di OpenLDAP
slapd
♦ Server che 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
♦ Implementazione “Open Source” di strumenti a supporto
del protocollo LDAP
♦ Versione di riferimento 2.1.19 (Maggio 2003)
♦ Adottato dalle maggiori distribuzioni Linuxe usato
soprattutto per l’autenticazione in ambienti di calcolo
distribuiti.
♦ Supporta la distribuzione dei carichi di lavoro
♦ Fornisce brevi tempi di risposta
♦ Permette la replica delle informazioni
Installazione di OpenLDAP
♦ Formati disponibili:Sorgente(tar.gz) e RPM
♦ Release di riferimento:2.1.19(Maggio 2003)
♦ Configurazione e complazione sorgenti(Utente root)
#tar –xf openldp-2.1.19.tgz
#cd openldap-2.1.19
#./configure
#make depend
#make
#make install
♦ Installazione basata su RPM(Suse,RedHat,Mandrake..)
#rpm –i openldap-2.1.19.rpm
Demoni di OpenLDAP
slurpd
♦ Garantisce la consistenza delle informazioni tra le istanze
di slapd che partecipano al servizio(la consistenza è gestita
mediante la replica e lo scambio di messaggi)
3
Interazione tra slapd e slurpd
Avvio e terminazione di slapd
AVVIO
slurpd
Slave slapd
#/etc/init.d/slapd start
1-Richiesta
♦ Per installazioni da sorgenti:
7-Invia
Client
2-Riferimento
3-Richiesta
♦ Per installazioni da RPM:
Master slapd
4-Risposta
6-Legge
5-Scrive
#/usr/local/etc/libexec/slapd start
TERMINAZIONE
♦ Per installazioni da RPM:
#/etc/init.d/slapd stop
♦ Per installazioni da sorgenti:
#kill –INT ‘cat /usr/local/var/slapd.log’
Replication
Log
Formato LDIF
Opzioni della riga di comando
♦ -f <nome_file>
Specifica il percorso del file di configurazione
♦ -h <URL>
Specifica configurazioni alternative per il server
Default : ldap://
♦ -n <nome_servizio>
Specifica il nome del servizio,per default il nome è slapd
♦ -l <syslog-utente-locale>
Specifica l’utente abilitato al syslog
Configurazione del demone
slapd
♦
♦
1.
2.
3.
Gestita atraceverso il file slapd.conf (contenuto
generalmente nella directory
/usr/local/etc/openldap)
Diviso in 3 sezioni:
Global
Backend specific
Database specific
♦ LDIF è l’acronimo di LDAP Data Interchange Format
♦ Usato da OpenLDAP per rappresentare le entry del servizio
di directory in formato testuale nel database e per lagestione
degli schemi
♦ Formato di una entry:
Dn:<distinguished name>
<attrdesc>:<attrvalue>
<attrdesc>:<attrvalue>
…
attrdesc può essere un tipo di attributo come dn
oppure
objestClass o può includere opzioni
come cn;lang_... oppure
userCerticate;binary.
Struttura di slapd.conf
♦
IL carattere # indica una riga di commenti
♦ Formato generale:
# global configuration directives
<global config directives>
# backend definition
backend <typeA>
<backend -specific directives >
# first database definition & config directives
database <typeA>
<database-specific directives>
# second database definition & config directives
database <typeB>
<database-specific directives>
# second database definition & config directives
database <typeA>
<database-specific directives>
# subsequent backend & database definitions & config directives ...
4
Regole di slapd.conf
♦ Ogni direttiva di una sezione può sovrascrivere la stessa
Direttive globali di slapd.conf(1)
♦ include
Carica gli schemi
direttiva specificata nella sezione precedente
♦ access to <what> by <who> <access level> <control>
ESEMPIO:
Impostata una proprietà sia nella sezione “Global” che in
quella “Database specific”,quella usata da slapd sarà quella
impostata nella sezione “Database specific”
Garantisce l’accesso a un insieme di entry e/o attributi a uno o più
richiedenti(ACL)
♦ defaultaccess { none|compare|search|read|write }
Specifica l’accesso nel caso in cui nessuna direttiva sia stata specificata
♦ idletimeout <filename>
Specifica il numero di secondi da attendere prima di forzare la
disconnessione di un client
♦ Alcune direttive possono avere significato diverso a seconda
della sezione in cui si trovano
Direttive globali di slapd.conf(2)
Direttive globali di slapd.conf(3)
♦ sizelimit <integer>
♦ attributetipe <attribute type description>
Definisce un tipo per un attributo
♦ loglevel
Specifica il modo in cui vengono eseguite le attività di debug e le
statistiche al demone syslogd
♦ objectClass <RFC2252 Object Class Description>
Definisce una classe di oggetti
♦ referral <URL>
Direttiva che specifica il riferimento da passare nel caso in cui slapd
non possa soddisfare una richiesta
Questa direttiva specifica il numero massimo di entry da ritornare dopo
un’operazione di ricerca
Default :sizelimit 500
♦ timelimit <integer>
Specifica il numero massimo di secondi (in tempo reale) che slapd
impiegherà per soddisfare una query. Se una richiesta non potrà essere
soddisfatta entro quel tempo, sarà ritornato un errore di timeout
Default :timelimit 3600
Direttive di Backend
Schemi in slapd.conf
♦ Backend <type>
♦ Contengono le definizioni dei tipi di oggetti(detti Classi o
objectClass)
♦ Esempi di tipi di oggetti :
utenti,gruppi,stampanti o risorse condivise
♦ Sono contenuti in file con estensione .schema
Direttive usate per la configurazione di backend di pacchetti
a supporto di OpenLDAP
Types
bdb
dnssrv
ldap
ldbm
meta
monitor
passwd
perl
shell
sql
Description
Berkeley DB transactional backend
DNS SRV backend
LDAP (Proxy) backend
Lightweight DBM backend
Meta Directory backend
Monitor backend
Provides read-only access to passwd(5)
Perl Programmable backend
Shell (extern program) backend
SQL Programmable backend
5
Direttive generali di database
♦ database <type>
Direttive generali di Database(2)
♦ readonly on|off
Indica l'inizio di una dichiarazione di istanza di
database.,<type> dovrebbe essere uno dei tipi di
backend elencati
♦ directory
Specifica la posizione fisica dei file utilizzati per
memorizzare gli oggetti presenti nella directory
♦ replica
Specifica un host che contiene una copia del database
delle direttive
Specifica il nome del file di log per la gestione della
replica dele informazioni
♦ rootpw <password>
Direttiva usata per specificare una password per il DN del
rootdn
Direttive generali di Database(3)
Direttive generali di Database(4)
♦ rootdn <dn>
Specifica il DN che non è soggetto a controllo o restrizioni
per questo database. Il DN si riferisce di solito a un’entry
nel database o nella directory oppure può riferirirsia
identità SASL
Esempio basato su entry :
rootdn "cn=Manager,dc=example,dc=com"
Specifica la modalità in cui il database si trova
♦ replogfile <filename >
♦ updatedn <dn>
Questa direttiva è applicabile solo a demoni slapd
slave
Specifica il DN che può effettuare operazioni di replica
Dovrebbe essere il DN del demone slurpd
♦ updateref <URL>
Specifica l’ URL da ritornare ai client che richiedono
query di update da replicare
Direttiva applicabile solo a demoni slapd slave
Esempio basato su SASL:
rootdn "uid=root,cn=example.com,cn=digestmd5,cn=auth“
Direttive di database specifiche
♦ Direttive di questo tipo sono applicabili solo a determinati
tipi di database
♦ Esempi di direttive di database BDB e LDBM:
directory <directory>
Questa direttiva specifica la directory si trovano i file
BDB che contengono il database e gli indici associati
cachesize <integer>
Specifica la dimensione della cache dell’istanza del
database di backend LDBM in numero di entry
Access list
♦ Specifica le modalità per l’accesso al servizio di directory
ESEMPIO (1):
access to attr=userPassword
by self write
by anonymous auth
by
dn.base="cn=Admin,dc=example,dc=com"
write
by * none
L’amministratore può modificare l’attributo userPassword di qualsiasi
entry, ogni entry può modificare il suo attributo userPassword e tutti
gli altri non hanno permesso di lettura e di scrittura sull’attributo
6
Access list(2)
Esempio di file slapd.conf
1. # Configurazionne d ’esempio
2. include /usr /local/ etc/schema/core.schema
ESEMPIO (2)
access to *
by dn.base="cn=Admin,dc=example,dc=com"
write
by * read
3. referral ldap://root. openldap .org
4. access to * by * read
5.# Definizioni BDB
6. database bdb
7. suffix "dc =example, dc =com"
8. directory /usr /local/var/openldap -data
9. rootdn "cn =Manager, dc =example ,d c= com "
Specifica che l’amministratore ha permesso di scrittura su qualsiasi
oggetto e tutti hanno permesso di lettura su tutti gli oggetti
10. rootpw secret
11.# Direttive per la replica
12. replogfile /usr/ local/var/openldap/ slapd .replog
13. replica host=host2.example.com :389
14. binddn ="c n= Replicator,d c= example ,dc =com"
15. bindmethod= simple credentials=secret
16. replica host=slave2. example. com
17. binddn ="c n= Replicator,d c= example ,dc =com"
18. bindmethod= simple credentials=secret
Esempio di file slapd.conf(2)
Esempio di file slapd.conf(3)
19. # Definizione degli attributi degli indici
20. index uid pres,eq
21. index cn, sn ,uid pres ,eq ,approx ,sub
22. index objectClass eq
23. # Definizione delle politiche d’ acsesso
24. access to attr=userPassword
25. b y self write
26. by anonymous auth
27. by dn.base="c n=Admin ,dc =example, dc= com" write
33. # Definizioni BDB
34. database bdb
35. suffix "dc=example,dc=net"
36. directory /usr /local/var/openldap-data- net
37. rootdn "cn=Manager,dc=example,dc=com"
38. index objectClass eq
39. access to * by users read
28. b y * none
29. access to *
30. b y self write
31. by dn.base="c n=Admin ,dc =example, dc= com" write
32. b y * read
Strumenti per la manutenzione
♦
♦
♦
♦
♦
♦
♦
♦
♦
slappadd
slapcat (Fa il dump del database in formato LDIF)
slappasswd
ldapadd
ldapdelete
ldapmodify
ldapsearch
ldappasswd
slapindex(Crea indici per il database)
Gestione degli schemi
♦ Definiscono la struttura delle entry del database di
OpenLDAP
♦ Si possono includere nel file slapd.conf tramite la direttiva
include
♦ Ne esistono di predefiniti ma è possibile installarne altri
ponendo i relativi file nella directory
./ldapdirectory/schema
♦ Lo schema core.schema va incluso obbligatoriamente per
garantire l’avvio di OpenLDAP
Basati sulla creazione di file in formato testo LDIF
7
OID
Estensione degli schema
♦
♦
Ogni schema, anche quelli predefiniti, può essere esteso
con ulteriori tipi di attributi,regole di matching,classi di
oggetti…
Per definire nuovi schemi sono necessari 5 passi:
1.
2.
3.
4.
5.
♦Servono per identificare a livello globale (internet) gli oggetti di uno
schema
♦Sono assegnati da apposite autorità presenti su Internet
♦Sono organizzati in modo gerarchico
♦Sono usati anche nel protocollo SNMP
Ottenere un Identificatore di Oggetto
Assegnare un Prefix Name
Creare un file schema locale
Definire tipi di attributi personalizzati
Definire classi di oggetti personalizzate
Name Prefix e Local file Schema
Esempio di gerarchia OID
OID
Assegnamento
1.1
OID
Organizzazione
1.1.1
Elementi SNMP
1.1.2
Elementi LDAP
1.1.2.1
TipoAttributo
1.1.2.1.1
NomeAttributo
1.1.2.2
Classi di oggetti
1.1.2.2.1
MiaClasse
Specifica di tipi di attributi
♦È usata la direttiva attributetype per definire nuovi tipi di
♦
Un Name Prefixfornisce un nome testuale per ogni
elemento dello schema(oggetto)
♦ I Local Files Schema forniscono definizioni che
permettono di costruire nuovi elementi e attraverso le
direttive objectClass e attributeTypes anche nuove
regole sugli stessi
♦ Una volta creati devono essere inclusi con la direttiva
include per entrar a far parte della configurazione di
OpenLDAP
Aggiunta di classi
♦ Questa fase permette attraverso la direttiva
objectclass di specificare nuove classi di oggetti
objectclass <RFC2252 Object Class Description>
♦ Struttura di ObjectClassDescription:
ObjectClassDescription= "(" whsp
numericoid whsp ; ObjectClass identifier
[ "NAME" qdescrs ]
[ "DESC" qdstring ]
[ "OBSOLETE" whsp ]
[ "SUP" oids ] ; Superior ObjectClasses
[ ( "ABSTRACT" / "STRUCTURAL" / "AUXILIARY" ) whsp]
; default structural
[ "MUST" oids ] ; AttributeTypes
[ "MAY" oids ] ; AttributeTypes
whsp ")"
attributi
Esempio di attributo tratto da core.schema (specificato nel
RFC2256):
attributetype ( 2.5.4.4 NAME ( 'sn' 'surname' )
DESC 'RFC2256: last (family) name(s) for which
the entity is known by'SUP name )
Replica con slurpd
♦ La replica delle informazioni è affidata al demone slurpd
♦ Usata se il numero di client della rete è elevato
♦ Il demone slurpd ha la capacità di propagare i cambiamenti
di un server slapd (detto master) alle altre istanze di
slapd(slave)
♦ Il passaggio delle informazioni di replica usa il protocollo
LDAP stesso
8
Replication Logs
Configurato slurpd genera dei file di log in formato LDIF e specifica i
cambiamenti in corso nella strttura di directory che saranno poi ripresi dai
server slave
La struttura dei cambiamenti è basata sull’invio delle seguenti
informazioni:
•Replication site(s)
•Timestamp
•DN entry
•Informazioni sui cambiamenti da effettuare.
Setup di slapd-slave
♦
Passi per la configurazione dei server slave:
1.
2.
3.
4.
Non includere direttive replica
Non includere direttive replogfile
Non includere la linea updatedn
Il DN del parametro binddn =parametro deve fare matching
con con il parametro di replica nel file di configurazione del
master server
5. Il DN nella direttiva updatedn deve avere permesso di
scrittura nel database
6. Usare la direttiva updateref per definire l’URL che il server
slave deve ritornare se è stata ricevuta una richiesta di update
GUI per la configurazione di OpenLDAP
Setup del Master slapd
♦
I cambiamenti da fare a slapd.conf per rendere uno slapd server
master-server sono:
1. Aggiunta di un direttiva replica per ogni replica
2. Il parametro binddn =parametro deve referenziare l’opzione
updatedn nei corrispondenti slave slapd.conf file e si deve
permettere la scrittura nei database degli slave
3. Aggiungere una direttiva di configurazione replogfile
Configurazione di slapd per la replica
♦Esempio di direttiva per il supporto delle repliche:
replica host=slave.esempio. com:389
binddn=“cn=Replicator,dc=esempio, dc=com”
bindmethod=simple credential=secret
OpenLDAP:Un caso di studio(1)
Tool per la gestione di OpenLDAP tramite interfaccia
grafica:
♦Java LDAP Browser Editor
http://www. iit.edu/~gawojar/ldap/
♦KLDAP
Installazione di PAM_LDAP
http://www.mountpoint.ch/oliver/kldap/
♦KDirAdm
http://www. carillonis.com /kdiradm /
♦GQ
http://biot.com/gq
9
PAM_LDAP
PAM
♦ PAM è un sistema per la gestione del processo di
autenticazione tramite plug-in
♦ Rende trasparente il meccanismo di autenticazione
♦ Permette di usare LDAP come meccanismo di
autenticazione su qualsiasi sistema supporti PAM senza
modificare alcuna applicazione
♦ Tramite files di configurazione é possibile stabilire in che
modo OpenLDAPdeve autenticare gli utenti
Pam_ldap.so
♦ Pam_ldap.so é il modulo necessario a PAM per l’integrazione con
LDAP
OpenLDAP:Un caso di studio(2)
Integrazione con Microsoft Active Directory e
autenticazione degli utenti
♦ I file di configurazione di PAM sono nella directory /etc/pam.d
Esempio configurazione PAM
Scenario(1)
♦ Integrazione di client linux con OpenLDAP installato e Active
♦
♦
♦
♦
♦
Directory
Piattaforma basata prevalentemente su soluzioni Microsoft
Server Windows 2000 con Active Directory installato
Client RedHat Linux
Autenticazione basata su Active directory
Soluzione adottata al Consorzio Operativo del gruppo MPS
Prerequisiti per Active directory
1.
2.
3.
4.
5.
ServicePack 2 per Win2000
MS Resource Kit
MS Security Pack
Certificato per il server Windows 2000 controller di dominio
Schema che simula un server NIS distribuito con Microsoft
Service for Unix oppure il programma MSKADExtplugin
6. Abilitare le query anonime su Active Directory
10
Configurazione Active Directory
Configurazione di AD per client Linux
♦Creare un utente per ogni servizio e relativa workstation Linux e
succesivamente creare il file keytab con il comando:
Ktpass –princ <nome_servizio>linux-ws.\
[email protected] -pass <password> mapuser <utente> -out linux-\ws.keytab
♦Il file generato linux -ws.keytab dovrebbe essere poi trasferito sulla
macchina linux-ws in maniera sicura.
Configurazione client(1)
♦
Pacchetti da installare:nss_ldap ,pam_krb5,libnss_ldap.so.2
♦
Modifica del file /etc/nsswitch.conf con le righe:
passwd:
files ldap
shadow:
files ldap
group:
files ldap
♦
Modifica della libreria libnss affinchè ricerchi le informazioni usando
SSL attraverso la modifica del file /etc/ldap.conf:
Configurazione client(2)
♦Impostare nel file /etc/krb5.conf il KDC e il reame.
♦Impostare l’utilizzo del modulo pam_krb5.sonel file /etc/pam.d/system-
auth
Le stesse operazione possono essere fatte in modalità gui tramite authconfig
con RedHat Linux
Nomehost ldapserver.nomedominio.test
base dc=nomedominio,dc=test
ssl on
port 636
Configurazione slapd.conf
♦ Nel file slapd.conf bisogna aggiungere la mappatura fra gli attributi del
Configurazione slapd.conf(2)
server LDAP di Microsoft e quelli cercati dalla libreria nss_ldap.so :
♦ Per accedere ad Active Directory in modo non anonimo specificare
nss_base_passwd cn=Users,dc=dominio,dc=test
nss_base_shadow cn=Users,dc=dominio,dc=test
nss_base_group cn=Users,dc=dominio,dc=test
nss_map_objectclass posixAccount User
nss_map_objectclass shadowAccount User
nss_map_attribute uid sAMAccountName
nss_map_attribute userPassword msSFUPassword
nss_map_attribute homeDirectory
…
DN con cui si identifica la connessione e la password:
binddn
cn=LDAPQUERYUSER,cn=Users,\
dc=dominio,dc=test
bind
miapassword
♦ Rendere il file accessibile solo dall’utente root
11
Scenario(2)
Prerequisiti per OpenLDAP
♦ Integrazione di server linux con OpenLDAP installato e Active
Directory
♦
krb5-libs,krb5-server,krb5-workstation
cyrus-sasl,cyrus-sasl-gssapi
♦ Server RedHat Linux con OpenLDAP e MIT Kerberos V
♦ Autenticazione basata su Linux,Kerberose OpenLDAP
♦ Fonte RedHat Magazine no. 4
♦
Configurazione slapd.conf
Configurazione TLS/SSL
ü Includere nel file slapd.conf gli schema kerberosobject.schema e
♦ In slapd.conf aggiungere le direttive:
nis.schema
ü Impostare il tipo di database da usare
ü Impostare dominio del server
ü Specificare il DN dell’amministratore della directory
TLSCipherSuite
TLSCertificateFile
TLSCertificateKeyFile
HIGH:MEDIUM:+SSL2
/usr/share/ssl/serts/slapd.pem
/usr/share/ssl/certs/slapd.pem
ESEMPIO:
database
ldbm
suffix
“ dc=dominio,dc=test”
root
“cn=ldapadmin ,dc=dominio,dc=test”
Gestione certificati
Autenticazione con sasl/gss-api
♦ Creare un certificato tramite un Makefile posto nella directory
♦ Sostituire l’autenticazione di default(plain ) e mappare i principali
/usr/share/ssl/certs
♦ Eseguire make slapd.pem
♦ Fornire le informazione per la creazione del certificato
♦ Porre il certificato in lettura al gruppo di utenti LDAP
Kerberos in OpenLDAP :
sasl-realm
sasl-host
sasl-spec-props
mio.dominio
kdc.mio.dominio
“”
sasl-regexp
uid=(.*),cn=.*,cn=auth
uid=$1,ou=person,dc=dominio,dc=test
12
Impostazione ACL(1)
Impostazione ACL(2)
♦ Impostare la lettura della directory:
access to attr=loginShell
by dn=“cn=root,dc=dominio,dc=test”
write
by self write
by * read
access to *
by self write
by * read
by anonymous read
access to dn=“” by * read
access to attr=userPassword
by dn=“cn=root,dc=dominio,dc=test”
write
by anonymous auth
by * none
Popolazione database con slapadd
♦ File in formato LDIFF:
#ROOT della directory
dn: dc=dominio,dc=test
dc: dominio
objectClass: top
objectClass: domain
…
Configurazioni alternative
♦
Usare script forniti con il software per il trasferimento
delle utenze da NIS o da locale:
1.
2.
Modificare lo script migrate_common.ph in
/usr/share/doc/openldap-servers
Usare migrate_all_on_line.pl per trasferire gli utenti nel
database LDAP
La verifica della configurazione può essere fatta con il comando
ldapsearch
Popolazione database con slapadd(2)
#root del server LDAP
dn:dc=ldapadmin ,dc=dominio,dc=test
objectClass:
organizationalRole
Cn:
ldapadmin
…
#Groups,dominio,test
dn:ou=Groups,dc=dominio,dc=test
ou:Groups
objectClass:
top
objectClass:
organizationalUnit
objectClass:
domainRelatedObject
associatedDomain :
dominio.test
…
Limitazioni d’accesso
♦ Per limitare l’accesso al server senza SSL si può usare il firewall
iptables con il comando:
iptables -A INPUT
-dport
ldap –J DROP
♦ Per limitare l’accesso ai soli host fidati si può usarecon tcp_wrappers:
slapd:ALL in /etc/hosts.deny
slapd:dominio.test /etc/hosts.allow
13
Bibliografia
THE END
♦ Documentazione di www.openldap.org
♦ LDAP How-To
♦ LDAP Implementation How-To
♦ Documentazione www.mandrake.it
♦ Documentazione www.redhat.it
♦ RedHat Magazione no. 4 Maggio/Giugno
2003
14
Scarica

pdf color