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


Rispondere a