Michele Codutti wrote:
Dai test che ho fatto a me sembra l'esatto contrario, ovvero mi applica
le acl del database anche quando il pattern non dovrebbe "matchare"
poiché al di fuori del database.
Esempio:
Voglio che il rootDSE sia leggibile da tutti (utenti e anonimi) anche
senza alcun livello di crittografia (ssl/tls), quindi impongo le
seguenti acl:
# Queste sono le regole che mi hai suggerito e che inserisco in testa
# alle altre acl.
# Mi segnalano un warning (che ignoro allegramente) relativo al contesto
# ovunque le posiziono e la loro posizione (prima o dopo la direttiva
# database) è ininfluente per il risultato.
access to dn="" by * read
access to dn="cn=subschema" by * read
# In terza posizione imposto l'acl che imponga il tls/ssl per le
# connessioni ad uno specifico db attraverso l'interfaccia
# pubblica (NB: l'interfaccia privata è collegata alla rete
# 192.168.1.0/24):
access to dn.subtree="dc=example,dc=com"
by peername.ip=192.168.1.0%255.255.255.0 break
by peername.ip=0.0.0.0%0.0.0.0 ssf=128 break
by * none
Secondo quello che sapevo con queste acl in questa sequenza se io faccio
la seguente query:
ldapsearch -LLL -x -D 'cn=admin,dc=example,dc=com' -W -h $IP_PUBBLICO \
-b '' -s base '(objectClass=*)' namingContexts
dovrei avere il seguente risultato:
dn:
namingContexts: dc=example,dc=com
Ed invece ricevo un errore di violazione di una acl:
ldap_bind: Invalid credentials (49)
Sul log del server (a cui ho impostato il livello di debug ad acl)
leggo:
=> acl_mask: to value by "", (=0)
<= check a_peername_path: 192.168.1.0%255.255.255.0
<= check a_peername_path: 0.0.0.0%0.0.0.0
<= check a_authz.sai_ssf: ACL 128 > OP 0
<= check a_dn_pat: *
<= acl_mask: [5] applying none(=0) (stop)
<= acl_mask: [5] mask: none(=0)
=> slap_access_allowed: auth access denied by none(=0)
=> access_allowed: no more rules
Mi sembra che non prenda in considerazione le prime due ACL.
Inoltre il match con "dc=example,dc=com" mi sembra totalmente errato.
Com'è possibile?
Il match per quel dominio lo fa nel tentativo di autenticare come
"cn=admin,dc=example,dc=com", non ha niente a che fare con l'accesso al
rootDSE. Quando ti ho suggerito le ACL per il rootDSE partivo dal
presupposto che tu avessi ACL specifiche nel database. Infatti la
valutazione, come documentato, procede da ACL specifiche del database a
ACL globali. Quindi nel database devi mettere almeno
access to attrs=userPassword by * auth
perche' sia consentita l'autenticazione. E' vero che il rootdn bypassa
le ACL, ma solo *dopo* essersi autenticato.
Ciao, p.
Ho testato e ricontrollato tutto molte volte no esistono altre acl oltre
a quelle che vi ho esposto.
Come posso fare?
Il giorno mar, 12/05/2009 alle 09.36 +0200, Pierangelo Masarati ha
scritto:
Michele Codutti wrote:
Comunque grazie all'impostazione del debuglevel a acl ho scoperto quali
sono le regole che mi creano il problema:
access to *
by peername.ip=192.168.1.0%255.255.255.0 break
by peername.ip=0.0.0.0%0.0.0.0 ssf=128 break
by peername.ip=0.0.0.0%0.0.0.0 stop
by * break
Queste regole erano state impostate grazie ad un suggerimento richiesto
in questa ML:
http://www.sys-net.it/pipermail/openldap/2007-September/000736.html
Servivano per imporre la cifratura per le connessioni in arrivo
dall'interfaccia pubblica.
Mi ricordo che qualcosa relativamente alle ACL era cambiato ma adesso
non riesco a trovare più quell'informazione mi sapete fornire qualche
indicazione?
Se non sbaglio, quello che essenzialmente e' cambiato e' che mentre
prima in assenza di ACL globali per l'accesso a dati globali come
rootDSE e affini venivano usate le ACL del primo database, ora non piu'.
Ciao, p.
Ing. Pierangelo Masarati
OpenLDAP Core Team
SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
-----------------------------------
Office: +39 02 23998309
Mobile: +39 333 4963172
Fax: +39 0382 476497
Email: a...@sys-net.it
-----------------------------------
Ing. Pierangelo Masarati
OpenLDAP Core Team
SysNet s.r.l.
Gruppo Partners Associates
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
-----------------------------------
Office: +39 02 23998309
Mobile: +39 333 4963172
Fax: +39 0382 476497
Email: a...@sys-net.it
-----------------------------------
_______________________________________________
OpenLDAP mailing list
OpenLDAP@mail.sys-net.it
https://www.sys-net.it/mailman/listinfo/openldap