Solved: Cyrus Imapd with SASL, authenticate against AD Windows 2003 with Kerberos5

Martin Schweizer schweizer.martin at gmail.com
Wed Aug 5 08:51:05 EDT 2009


Hello

Yet I found not realy a solution for the attached problem but an other
way. Now I use PAM (salslauthd -a pam) insted Kerberos5 (salslauthd -a
kerberos5) in saslauthd. The problem seams to be around auth_krb5.c
but my  C knowledge is not good enough for solve the problem self. So
if anybody has an interest to solve this, he can contact my. I then
can explain him the problem detailed.

Regards,

---------- Forwarded message ----------
From: Martin Schweizer <schweizer.martin at gmail.com>
Date: 2009/8/5
Subject: Cyrus Imapd with SASL, authenticate against AD Windows 2003
with Kerberos5
To: cyrus-sasl at lists.andrew.cmu.edu


Hello

My goal is to authenticate my Cyrus Imapd users against Windos 2003
Active Directory with Kerberos . I have the following setup:

Kerberos5 client
===========
FreeBSD acsvfbsd06.domain.tld 7.2-RELEASE FreeBSD 7.2-RELEASE

/etc/krb.conf:
[libdefaults]

       default_realm = domain.tld

       default_etypes_des = des-cbc-md5

[realms]
   ACUTRONIC.CH = {
       kdc = tcp/acsv3k04.domain.tld:88
   }

[logging]
                kdc = SYSLOG:INFO:AUTH
               admin_server = SYSLOG:INFO:AUTH
               default = SYSLOG:INFO:AUTH

/etc/krb5.keytab (ktutil list output):
For the keytab file I followed:
http://technet.microsoft.com/en-us/library/bb742433.aspx

FILE:/etc/krb5.keytab:

Vno  Type         Principal
 1  des-cbc-md5  host/acsvfbsd06.domain.tld at DOMAIN.TLD

I get tickets if I use kinit user:
acsvfbsd06# kinit user
martin at DOMAIN.TLD's Password:
kinit: NOTICE: ticket renewable lifetime is 1 week

klist:
Credentials cache: FILE:/tmp/krb5cc_0
       Principal: user at DOMAIN.TLD

 Issued           Expires          Principal
Jul 31 17:58:09  Aug  1 03:57:44  krbtgt/DOMAIN.TLD at DOMAIN.TLD

I an use ldapsearch as follows:

acsvfbsd06# ldapsearch -v -LLL -b
"OU=Mitgliedsserver,OU=ACH,DC=Domain,DC=tld" -h acsv3k04.domain.tld
description
ldap_initialize( ldap://acsv3k04.domain.tld)
SASL/GSSAPI authentication started
SASL username: user at DOMAIN.TLD
SASL SSF: 56
SASL data security layer installed.
filter: (objectclass=*)
requesting: description
dn: OU=Mitgliedsserver,OU=ACH,DC=Domain,DC=tld
...
[snip]

So far all looks well.

For the Cyrus Imapd setup I run saslauthd -a kerberos5.

/usr/local/etc/imapd.conf:

configdirectory: /usr/imap/var/imap
partition-default: /usr/imap/var/spool/imap
virtdomains: yes
admins:root cyrus
sasl_option: 1
sasl_pwcheck_method: saslauthd
sasl_mech_list: GSSAPI PLAIN LOGIN CRAM-MD5 DIGEST-MD5
sasl_log_level: 7
lmtpsocket: /usr/imap/var/imap/socket/lmtp
allowplaintext: yes


Each time I start a test by

- testsaslauthd -u user -p password
or
- imtest -m plain -a user localhost

I get ervery time

saslauthd[42062]: do_auth         : auth failure: [user=user]
[service=imap] [realm=] [mech=kerberos5] [reason=krb5_verify_user_opt
failed]

The krb5_verify_user_opt failed is comming from the Kerberos 5 Library
(libkrb5, -lkrb5) -> krb5_verify_user_opt and is located in the
auth_krb5.c (from SASL).

I ckecked the kerberos/DNS communication on both sides with tshark and
Netmon (Microsoft's "tcpdump") but the kerberos communications seems
to be ok. Additionaly I started also a struss on saslauthd but also
without any look.

So I have now no more ideas where I can check. Any hints are welcome.

Regards,

--
Martin Schweizer
schweizer.martin at gmail.com
Tel.: +41 32 512 48 54 (VoIP)
Fax: +1 619 3300587


More information about the Cyrus-sasl mailing list