Toon posts:

[Linux] LDAPv3 Implementatie

Pagina: 1
Acties:
  • 268 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Omdat ik naar een nieuwe thrill zocht leek het me leuk om een LDAPv3 implementatie in elkaar te schroeven op Gentoo Linux. In mijn geval houd dat in een mix van OpenLDAP, MIT Kerberos en Cyrus SASL. Aangezien ik al wat LDAP avonturen beleeft had was het opzetten van LDAP niet zon ramp. Ook Kerberos instellen was niet zo lastig. Echter LDAP en Kerberos met elkaar laten "praten" via GSSAPI blijkt een wat grotere opgaven.

Zoals ik al aangaf werken kerberos en ldap afzonderlijk gewoon goed. Ik kan StartTLS gebruiken van LDAP, SSL, etc. Bij Kerberos kan ik tickets etc aanvragen. Echter zodra ik probeer me te authenticeren met LDAP en SASL Auth gaat het mis. Ik krijg dan de volgende error:
code:
1
2
3
4
5
judicator root # ldapsearch -H ldap://judicator.lan/ -b dc=judicator,dc=lan
SASL/GSSAPI authentication started
ldap_sasl_interactive_bind_s: Local error (82)
        additional info: SASL(-1): generic failure: GSSAPI Error: 
Miscellaneous failure (Server not found in Kerberos database)


De logs zijn niet al te enlightning:
code:
1
2
3
4
5
6
7
Jul 11 22:44:25 judicator slapd[6838]: conn=2 fd=13 ACCEPT from IP=192.168.1.2:32789 (IP=0.0.0.0:389)
Jul 11 22:44:25 judicator slapd[6852]: conn=2 op=0 SRCH base="" scope=0 filter="(objectClass=*)"
Jul 11 22:44:25 judicator slapd[6852]: conn=2 op=0 SRCH attr=supportedSASLMechanisms
Jul 11 22:44:25 judicator slapd[6852]: conn=2 op=0 RESULT tag=101 err=0 text=
Jul 11 22:44:25 judicator ldapsearch: GSSAPI Error: Miscellaneous failure 
(Server not found in Kerberos database)
Jul 11 22:44:25 judicator slapd[6838]: conn=2 fd=13 closed


Het lijkt erop als of me kerberos realm niet gevonden kan worden, echter deze staat gewoon goed in /etc/krb.conf:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[libdefaults]
        ticket_lifetime = 24000
        default_realm = JUDICATOR.LAN
        default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc
        default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc

[realms]
        JUDICATOR.LAN = {
        kdc = kerberos.judicator.lan:88
        admin_server = kerberos.judicator.lan:749
        default_domain = judicator.lan
        }

[domain_realm]
        .judicator.lan = JUDICATOR.LAN
        judicator.lan = JUDICATOR.LAN

[kdc]
        profile = /etc/krb5kdc/kdc.conf

[logging]
        kdc = FILE:/var/log/krb5kdc.log
        admin_server = FILE:/var/log/kadmin.log
        default = FILE:/var/log/krb5lib.log


Het lijkt me niet dat het probleem in me slapd.conf zit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/slapd.acl

pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args

TLSCertificateFile      /etc/openldap/ssl/server_crt.pem
TLSCertificateKeyFile   /etc/openldap/ssl/server_key.pem
TLSCACertificateFile    /etc/openldap/ssl/cacert.pem

saslRegexp uid=([^/]*),cn=GSSAPI,cn=auth uid=$1,ou=people,dc=judicator,dc=lan

database        bdb
suffix          "dc=judicator,dc=lan"
rootdn          "cn=Manager,dc=judicator,dc=lan"

directory       /var/lib/openldap-data
index   objectClass     eq


Verder heeft ldap een keytab in /etc/openldap/ldap.keytab. De principal in deze keytab is ldap/judicator.lan@JUDICATOR.LAN. LDAP zou deze keytab moeten kunnen vinden dmv deze export "KRB5_KTNAME=/etc/openldap/ldap.keytab".

Als ik op internet google op deze error zie ik dat deze error een heel scala aan oorzaken kan hebben, maar het lijkt mij toch echt iets te doen hebben met de mapping naar de kerberos realm.

Voor meer info zie ook: http://www.ofb.net/~jheiss/krbldap/

Iemand die wat licht kan werpen op deze (voor mij :) ) duistere zaak?

Verwijderd

* Vm1heA maakt een zomaar de gok dat je geen ticket aangevraagd hebt ;)

Als ik hier een kdestroy uitvoer op m'n principal zijn tickets, krijg ik precies dezelfde foutmelding namelijk.

Moet ff wakker worden, zie ik wel 8)7

Welke hostname krijg je terug als je een lookup doet op z'n eigen IP?

Dat moet precies dezelfde hostname zijn als in je kdc.conf. Kerberos is daar tamelijk strict in en zeker als je een multihomed machine hebt dan is dat vaak een valkuil.

[ Voor 51% gewijzigd door Verwijderd op 12-07-2004 02:34 ]


Verwijderd

Topicstarter
code:
1
2
judicator root # hostname -f
judicator.lan

Me pc is niet mutlihomed, en ik krijg gewoon judicator.lan terug als hostname. Ik denk niet dat het em daar inzit, want dan zou waarschijnlijk LDAP met zijn Certificaten ook al over zijn nek gegaan zijn.

Maar nu zie ik wel iets anders interresants, namelijk in me kerberos logs (Waarom ik daar gisteren nog niet gekeken had? Te moe denk ik :)).

code:
1
2
3
4
5
6
7
Jul 12 11:24:27 judicator.lan krb5kdc[5324](info): AS_REQ (2 etypes {16 1})
192.168.1.2: ISSUE: authtime 1089624267, etypes {rep=16 tkt=16 ses=16},
ktf/admin@JUDICATOR.LAN for krbtgt/JUDICATOR.LAN@JUDICATOR.LAN

Jul 12 11:24:30 judicator.lan krb5kdc[5324](info): TGS_REQ (2 etypes {16 1}) 192.168.1.2: 
UNKNOWN_SERVER: authtime 1089624267, ktf/admin@JUDICATOR.LAN for ldap/judicator@JUDICATOR.LAN, 
Server not found in Kerberos database


De eerste regel ben ik die me ticket krijgt. De tweede regel is SASL die faalt. Om de een of andere reden paktie ldap/judicator. Terwijl in zijn keytab ldap/judicator.lan staat. Dit moet ik even gaan researchen, ill let you know what comes out of it.

Je zegt dat je precies dezelfde error krijgt als je kdestroy uitvoert, zonder ticket. Heb jij toevallig deze opstelling draaien? :) Als dit werkt ben ik van plan om afs er ook aanvast te knopen :)

Verwijderd

Topicstarter
W00t het werkt, er stonden verkeerde principal namen in me keytab voor LDAP. Kennelijk word dus niet je FQDN verwacht in de keytab van ldap. Zo ziet het er nu uit:

code:
1
2
3
4
5
6
7
8
judicator openldap # ktutil
ktutil:  rkt /etc/openldap/ldap.keytab
ktutil:  list
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    3             ldap/judicator@JUDICATOR.LAN
   2    3             ldap/judicator@JUDICATOR.LAN
ktutil:


Bedankt voor het aan wijzen van de juiste richting Niels!