[Dovecot] An alternate "dovecot-auth" daemon using cyrus-sasl

Andrey Panin pazke at donpac.ru
Tue Sep 6 13:21:22 EEST 2005


On 249, 09 06, 2005 at 01:35:58PM +0400, Dmitry Butskoy wrote:
> Andrey Panin wrote:
> 
> >On 248, 09 05, 2005 at 03:48:19PM +0400, buc wrote:
> > 
> >
> >>We use dovecot in a heterogeneous environment (Windows/Linux desktops 
> >>and Linux servers).  For unified authentication we use a sheaf 
> >>"Samba/Openldap" (i.e., Samba NT domain with openldap backend and 
> >>pam/nss_ldap for Linux).
> >>   
> >>
> >So why you can't use dovecot with openldap as passdb ?
> >
> Yes, now we use dovecot with pam, which uses openldap by pam_ldap etc... 
> But PAM can handle plain passwords only, therefore it is not suitable 
> for NTLM.
>   I have not found it in examples, but may be dovecot`s ntlm can take 
> appropriate password hashes from openldap directly? 
> (sambaLMPassword/sambaNTPassword)

Yes, dovecot can handle LM/NTLM password hashes and it can fetch them
from OpenLDAP directly (look at doc/dovecot-ldap.conf)

In general you can store passwords in any supported form, just add proper
password scheme prefix. For example: {NTLM}69943C5E63B4D2C104DBBCC15138B72B
For more information read here: http://wiki.dovecot.org/Authentication

> >>Windows users are authenticated well everywhere, but there is one old 
> >>issue. As "SPA" (NTLM) against NT domain is not supported by dovecot, it 
> >>is necessary to use default "plain" method. In addition to security 
> >>problems, it does also a problem of password unification. Each time a 
> >>user changes the password, he should do it one more time for the mail 
> >>program.
> >>
> >>I know that dovecot supports NTLM, however against local database only 
> >>(not for NT domain controller). In early versions support of cyrus-sasl 
> >>(which supports NTLM now) had been incorporated, however it like not 
> >>work and now is removed.
> >>Fortunately, there is a possibility to substitute dovecot-auth 
> >>executable. Therefore I have tried to make an alternate variant of 
> >>dovecot-auth, which supports all that we need.
> >>
> >>For us, it seems to be more useful to create an auth daemon using 
> >>cyrus-sasl, rather than to add domain support to existing ntlm code. 
> >>First of all, it is easier for implementation. Besides it enables use of 
> >>all mechanisms supported by cyrus-sasl (present and future), including 
> >>GSSAPI. Anyway, it will be the useful additive to dovecot.
> >>   
> >>
> >
> >Dovecot doesn't support cyrus-sasl for a good reason - it's a mess.
> > 
> >
> Certainly, I do not suggest to switch to use cyrus-sasl in upstream dovecot.
> 
> But can give this patch the right to a life? Somewhere in "unofficial 
> patches"...
>
> >>I have made appropriate patches for both dovecot-1.0-stable and 
> >>dovecot-1.0.alpha1.
> >>The idea is to copy "src/auth" to "src/auth-cyrus", strip all unneeded 
> >>from newly created directory and add cyrus-sasl support. The resulting 
> >>code probably looks not so elegantly as if it has been written 
> >>separately, however this way allows to not make a lot of things from the 
> >>scratch.
> >>
> >>
> >>The patch against 1.0.alpha1 is 
> >>here: http://dmitry.butskoy.name/dovecot/dovecot-1.0.alpha1-cyrus.tar.gz .
> >>To be more readable, it is not a flat patch (due to a lot of whole 
> >>files add/remove). It is a tarball with 3 files: a list of files to 
> >>initial copy from auth/ to auth-cyrus/, a patch for resulting tree, and 
> >>a script which automates this steps (:-)). (The script should be run in 
> >>the root of the main source, i.e. a dir with src/ and doc/ subdirs).
> >>
> >>I already have successfully tested this patch with PLAIN method. 
> >>However before testing of other methods, it would be desirable that 
> >>somebody have looked at it.
> >>
> >>Whether someone could check up my patch (just fluently having read), 
> >>at least for obvious bugs and typos?
> >>   
> >>
> 
>       Dmitry Butskoy <Dmitry at Butskoy.name>
>       Saint-Petersburg, Russia
>       Red Hat Certified Engineer 809003662809495
> 
> 

-- 
Andrey Panin		| Linux and UNIX system administrator
pazke at donpac.ru		| PGP key: wwwkeys.pgp.net


More information about the dovecot mailing list