Marco Ristaino wrote:
Buongiorno a tutti,
ho configurato un ldap proxy per raccogliere tutte le richieste ldap e
inviarle al Domain Controller
la configurazione è la seguente:
configurazione slapd.conf su proxyldap
database ldap
suffix "dc=domain,dc=com"
lastmod off
loglevel any
uri "ldap://serverDC/"
idassert-bind bindmethod=simple
binddn="[EMAIL PROTECTED]"
credentials=lapassword
mode=self
idassert-authzFrom dn.regex:.*
se da un pc della rete faccio un ldapsearch funziona tutto benissimo!
Ho deciso di implementare la sicurezza di openvpn con l'autenticazione
sul dominio AD tramite il plugin authldap-openvpn.
Ho configurato il plugin per fare le richieste su proxyldap.
configurazione di openvpn/auth/ldap.conf
<LDAP>
# LDAP server URL
URL ldap://proxyldap
</LDAP>
<Authorization>
BaseDN "cn=Users,dc=domain,dc=com"
# User Search Filter
#SearchFilter "(&(uid=%u)(accountStatus=active))"
SearchFilter "(&(samaccountname=%u)(objectclass=*))"
Funziona alle volte si alle volte no, ma sono riusciro ad
identificarle... mi spiego meglio.
Caso in cui non funziona:
restart del daemon ldap su proxyldap
invio credenziali di autenticazione da parte del terminatore OpenVPN a proxyldap
l'autenticazione fallisce
Ho dato un'occhiata al traffico di rete tra il terminatore vpn e il
proxyldap catturando il traffico con tcpdump
ho visto che il proxy ldap passa i filtri corretti e cioè Filter:
(&(samaccountname=username)(objectclass=*)) mentre il proxy le manda
al Domain Controller così: Filter:
(&(!(objectClass=*))(objectClass=*))
e di conseguenza la ricerca fallisce.
Caso in cui funziona:
restart del daemon ldap su proxyldap
==> ldapsearch da un pc della rete <==
invio credenziali di autenticazione da parte del terminatore OpenVPN a proxyldap
l'autenticazione ha esito positivo
Verificato il traffico di rete e il filtro viene ricevuto e inviato
correttamente e cioè Filter:
(&(samaccountname=username)(objectclass=*)).
riassumendo, se prima di far fare un'autenticazione al terminatore vpn
verso proxyldap eseguo un ldapsearch da un'altro pc sempre su
proxyldap il tutto funziona e continua a funzionare correttamente fino
al restart del servizio ldap.
Per escludere un malfunzionamento del plugin di openvpn ho impostato
direttamente il Domain Controller come server ldap e funziona tutto
correttamente.
Qualcuno sa aiutarmi? ho sbagliato la configurazione di slapd.conf?
Probabilmente il problema e' che il proxy non ha definito l'attributo
"samaccountname" nello schema. Il proxy e' abbastanza "furbo" da
riconoscere gli attributi ritornati da una ricerca e tenerne traccia
nello schema, quindi se tu fai una ldapsearch che ritorna alcuni valori
di "samaccountname", questo attributo (il tipo, non i valori) viene
memorizzato come "proxied", e da li' in avanti viene tollerato dal
frontend, per esempio, nei DN e nei filtri delle richieste. Se pero'
parti a freddo con un proxy che non ha ancora imparato da una richiesta,
e nel filtro e' presente questo attributo, il filtro viene valutato come
invalido. A questo punto ti scontri con le specifiche LDAP per le quali
se il filtro e' invalido l'operazione ritorna LDAP_SUCCESS senza alcun
risultato. Prova a scaricarti lo schema da AD, a riscrivere le
informazioni di questo attributo nella sintassi compatibile con
slapd.conf di OpenLDAP e verifica se il problema scompare.
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
Email: [EMAIL PROTECTED]
---------------------------------------
_______________________________________________
OpenLDAP mailing list
[email protected]
https://www.sys-net.it/mailman/listinfo/openldap