Unable to get SASL working correctly

Kevin Fries kevin at hcico.com
Fri Jun 11 15:31:43 EDT 2004


I feel like I am going around in circles with LDAP and SASL!  This stuff 
is not as much fun as the travel brochure said it would be :-)

Here is what I have:
  - Fedora Core 2
  - OpenLDAP (from rpm)
     - openldap-servers-2.1.29-1
     - openldap-devel-2.1.29-1
     - openldap-clients-2.1.29-1
     - openldap-2.1.29-1
  - SASL (from rpm)
     - cyrus-sasl-devel-2.1.18-2
     - cyrus-sasl-plain-2.1.18-2
     - cyrus-sasl-2.1.18-2
     - cyrus-sasl-md5-2.1.18-2
  - Other Software (from rpm)
     - postfix-2.0.18-4
     - courier-imap-3.0.4.20040524-1.2
     - squirrelmail-1.4.2-3
     - nss_ldap-217-1

What I am doing now:
I have postfix operating on two servers, one as local delivery, and the 
other in a backup MX role.  The PADL tools are being used to pull 
accounts from my LDAP server, and present them as local accounts

# getent passwd kevin
kevin:x:999:999:Kevin Fries:/home/kevin:/bin/bash

No problem.  Postfix, Courier, vsFTP, Squirrelmail, SAMBA, etc pick up 
the local accounts and authenticate everyone via PAM.

Here is what I am trying to do:
I would prefer to remove the PADL libraries and have each of these 
programs authenticate directly against the LDAP information in a sealed 
system (no system accounts).  I figured the first step towards this was 
to work over my mail and IMAP servers.  Courier is causing me all kinds 
of headaches, and I would love to dump it for Cyrus IMAP.  But in order 
to do that, I need to have Cyrus-SASL authenticating to my user accounts 
in LDAP first.

However, I can not even get saslauthd to work correctly!  when I use 
testsaslauthd to validate an account, here is the results:

# testsaslauthd -u kevin -p sanitized
0: NO "authentication failed"

A check of the error logs, displays:
do_auth         : auth failure: [user=kevin] [service=imap] [realm=] 
[mech=ldap] [reason=Unknown]

"reason=Unknown", well at least the error message is clear, lol

Needless to say, the basic ldap tools don't work right without the -x 
(send in plain text) which I am trying to avoid.

# ldapsearch "uid=kevin"
ldap_sasl_interactive_bind_s: No such object (32)

I am not trying to get cute here.  I just want OpenLDAP to store all my 
user data, and SASL to authenticate against it.  Once that is in place, 
it open a new set of options such as SMTP-AUTH for the Postfix server 
(hopefully against CRAM-MD5 or some other highly encrypted mechanism) 
and Cyrus IMAP.

But, until I can get the simple working, the more complex is simply out 
of the question.  Can anyone point me in the right direction.  Some 
documentation, or How-to that does not include Kerberos (yeah found lots 
of those) and is discussing the direction I am trying to go?

Here are my conf files:
# cat /etc/sysconfig/saslauthd
SOCKETDIR=/var/run/saslauthd
MECH=ldap
FLAGS=

# cat /etc/saslauthd.conf
ldap_servers: ldap://127.0.0.1
ldap_bind_dn: cn=manager,dc=example,dc=com
ldap_bind_ps: privledged

# cat /etc/openldap/slapd.conf
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/schema/samba.schema
include         /etc/openldap/schema/pureftpd.schema
include         /etc/openldap/schema/postfix.schema
include         /etc/openldap/schema/mozillaAbPersonObsolete.schema
include         /etc/openldap/schema/qmail.schema

defaultsearchbase "dc=example,dc=com"

access to dn=".*,dc=example,dc=com" attr=userPassword
        by dn="cn=Manager,dc=example,dc=com" write
        by self write
        by * auth

access to dn=".*,dc=example,dc=com" attr=mail
        by dn="cn=Manager,dc=example,dc=com" write
        by self write
        by * read

access to dn=".*,ou=People,dc=example,dc=com"
        by * read

access to dn=".*,dc=example,dc=com"
        by self write
        by * read

database        ldbm
dbcachesize     2000000
suffix          "dc=example,dc=com"
rootdn          "cn=Manager,dc=example,dc=com"
rootpw          privledged
directory       /var/lib/ldap

index   objectClass              eq

index   cn                       pres,sub,eq
index   sn                       pres,sub,eq
index   uid                      pres,sub,eq
index   displayName              pres,sub,eq

index   uidNumber                eq
index   gidNumber                eq
index   memberUid                eq

index   sambaSID                 eq
index   sambaPrimaryGroupSID     eq
index   sambaDomainName          eq
index   default                  sub

index   mailAlternateAddress     eq
index   mail                     sub,eq
index   givenName                sub,eq

# cat /etc/ldap.conf
host 127.0.0.1
base dc=example,dc=com
rootbinddn cn=manager,dc=example,dc=com
scope sub
pam_filter objectclass=posixaccount
ssl no
pam_password md5

-- 
Kevin Fries
Network Administrator
Hydrologic Consultants, Inc of Colorado
(303) 969-8033    FAX: (303) 969-8357

---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list