[Postfixbuch-users] cyrus sasl - sqlite auth backend

Trevor Ochmonek ochmonek at gmx.de
Fr Feb 15 16:27:12 CET 2008


>>> Bevor ich hier tonnenweise Konfigurationsdateien maile:
>>>
>>> Ich versuche smtp-auth mit cyrus sasl zu realisieren _aber_ bin gnadenlos
>>> gescheitert! :-(
>>>
>>> Stichworte:
>>>
>>> pwcheck_method: auxprop
>>> auxprop_plugin: sql
>>> sql_engine: sqlite
>>>
>>>
>>> Hat jemand Erfahrung mit dem Thema sasl <-> sqlite?
>>>     
>>>       
>> Nein. Bisher nicht. Neugierde aber allemal. Wirf mal "saslfinger -s" an und
>> lass die Config sehen.
>>
>> p at rick
>>
>>   
>>     
>
> Hallo! Jetzt folgen die Konfigurationsdateien. Nicht wundern, dass 
> System ist noch nicht online.
>
> In der gleichen Konfiguration läuft das System mit sql_engine: mysql  
> (zzgl. der mysql Parameter) einwandfrei.
>
> /etc/sasl.db <- root:postfix 660 (Habe auch root:root und 
> postfix:postfix probiert)
>
> Natürlich habe ich die sqlite 2.x Bibliotheken installiert und die 
> Datenbank mir sqlite (2.8) angelegt, da cyrus sasl nur sqlite 2.x 
> unterstützt.
>
> Die Datenbank: create table passwd (id varchar(50), clear varchar(50));
> In id habe ich die Emailadresse gespeichert (user at domain.xx) und in 
> clear das Passwort im Klartext.
>
> Problem: AUTH PLAIN scheitert immer, egal was ich versuche! :-O 
> (Testvorgang ist grundsätzlich in Ordnung, habe es geben sql_engine: 
> mysql verifiziert)
>
>
> Danke für eure Zeit!
>
> MfG
> Trevor
>
>
>
> saslfinger - postfix Cyrus sasl configuration Fr 15. Feb 11:47:47 CET 2008
> version: 1.0.2
> mode: server-side SMTP AUTH
>
> -- basics --
> Postfix: 2.3.8
> System: Debian GNU/Linux 4.0 \n \l
>
> -- smtpd is linked to --
>     libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb7de7000)
>
> -- active SMTP AUTH and TLS parameters for smtpd --
> broken_sasl_auth_clients = yes
> smtpd_sasl_auth_enable = yes
> smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
> smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
> smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
> smtpd_use_tls = yes
>
>
> -- listing of /usr/lib/sasl2 --
> insgesamt 735
> drwxr-xr-x  2 root root  1024 2008-02-14 23:55 .
> drwxr-xr-x 44 root root  9216 2008-02-15 00:24 ..
> -rw-r--r--  1 root root 13304 2006-12-13 22:26 libanonymous.a
> -rw-r--r--  1 root root   855 2006-12-13 22:26 libanonymous.la
> -rw-r--r--  1 root root 12844 2006-12-13 22:26 libanonymous.so
> -rw-r--r--  1 root root 12844 2006-12-13 22:26 libanonymous.so.2
> -rw-r--r--  1 root root 12844 2006-12-13 22:26 libanonymous.so.2.0.22
> -rw-r--r--  1 root root 15502 2006-12-13 22:26 libcrammd5.a
> -rw-r--r--  1 root root   841 2006-12-13 22:26 libcrammd5.la
> -rw-r--r--  1 root root 15052 2006-12-13 22:26 libcrammd5.so
> -rw-r--r--  1 root root 15052 2006-12-13 22:26 libcrammd5.so.2
> -rw-r--r--  1 root root 15052 2006-12-13 22:26 libcrammd5.so.2.0.22
> -rw-r--r--  1 root root 46320 2006-12-13 22:26 libdigestmd5.a
> -rw-r--r--  1 root root   864 2006-12-13 22:26 libdigestmd5.la
> -rw-r--r--  1 root root 43040 2006-12-13 22:26 libdigestmd5.so
> -rw-r--r--  1 root root 43040 2006-12-13 22:26 libdigestmd5.so.2
> -rw-r--r--  1 root root 43040 2006-12-13 22:26 libdigestmd5.so.2.0.22
> -rw-r--r--  1 root root 13482 2006-12-13 22:26 liblogin.a
> -rw-r--r--  1 root root   835 2006-12-13 22:26 liblogin.la
> -rw-r--r--  1 root root 13384 2006-12-13 22:26 liblogin.so
> -rw-r--r--  1 root root 13384 2006-12-13 22:26 liblogin.so.2
> -rw-r--r--  1 root root 13384 2006-12-13 22:26 liblogin.so.2.0.22
> -rw-r--r--  1 root root 29300 2006-12-13 22:26 libntlm.a
> -rw-r--r--  1 root root   829 2006-12-13 22:26 libntlm.la
> -rw-r--r--  1 root root 28776 2006-12-13 22:26 libntlm.so
> -rw-r--r--  1 root root 28776 2006-12-13 22:26 libntlm.so.2
> -rw-r--r--  1 root root 28776 2006-12-13 22:26 libntlm.so.2.0.22
> -rw-r--r--  1 root root 13818 2006-12-13 22:26 libplain.a
> -rw-r--r--  1 root root   835 2006-12-13 22:26 libplain.la
> -rw-r--r--  1 root root 13992 2006-12-13 22:26 libplain.so
> -rw-r--r--  1 root root 13992 2006-12-13 22:26 libplain.so.2
> -rw-r--r--  1 root root 13992 2006-12-13 22:26 libplain.so.2.0.22
> -rw-r--r--  1 root root 21726 2006-12-13 22:26 libsasldb.a
> -rw-r--r--  1 root root   856 2006-12-13 22:25 libsasldb.la
> -rw-r--r--  1 root root 17980 2006-12-13 22:26 libsasldb.so
> -rw-r--r--  1 root root 17980 2006-12-13 22:26 libsasldb.so.2
> -rw-r--r--  1 root root 17980 2006-12-13 22:26 libsasldb.so.2.0.22
> -rw-r--r--  1 root root 23576 2006-12-13 22:26 libsql.a
> -rw-r--r--  1 root root   964 2006-12-13 22:26 libsql.la
> -rw-r--r--  1 root root 23072 2006-12-13 22:26 libsql.so
> -rw-r--r--  1 root root 23072 2006-12-13 22:26 libsql.so.2
> -rw-r--r--  1 root root 23072 2006-12-13 22:26 libsql.so.2.0.22
>
>
>
>
> -- content of /etc/postfix/sasl/smtpd.conf --
> log_level: 3
> pwcheck_method: auxprop
> mech_list: plain login cram-md5 digest-md5
> auxprop_plugin: sql
> sql_engine: sqlite
> sql_database: /etc/sasl.db
> sql_select: SELECT clear FROM passwd WHERE id='%u@%r'
>
>
>
> -- active services in /etc/postfix/master.cf --
> # service type  private unpriv  chroot  wakeup  maxproc command + args
> #               (yes)   (yes)   (yes)   (never) (100)
> smtp      inet  n       -       -       -       -       smtpd
> pickup    fifo  n       -       -       60      1       pickup
> cleanup   unix  n       -       -       -       0       cleanup
> qmgr      fifo  n       -       n       300     1       qmgr
> tlsmgr    unix  -       -       -       1000?   1       tlsmgr
> rewrite   unix  -       -       -       -       -       trivial-rewrite
> bounce    unix  -       -       -       -       0       bounce
> defer     unix  -       -       -       -       0       bounce
> trace     unix  -       -       -       -       0       bounce
> verify    unix  -       -       -       -       1       verify
> flush     unix  n       -       -       1000?   0       flush
> proxymap  unix  -       -       n       -       -       proxymap
> smtp      unix  -       -       -       -       -       smtp
> relay     unix  -       -       -       -       -       smtp
>     -o fallback_relay=
> showq     unix  n       -       -       -       -       showq
> error     unix  -       -       -       -       -       error
> discard   unix  -       -       -       -       -       discard
> local     unix  -       n       n       -       -       local
> virtual   unix  -       n       n       -       -       virtual
> lmtp      unix  -       -       -       -       -       lmtp
> anvil     unix  -       -       -       -       1       anvil
> scache      unix    -    -    -    -    1    scache
> maildrop  unix  -       n       n       -       -       pipe
>   flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
> uucp      unix  -       n       n       -       -       pipe
>   flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail 
> ($recipient)
> ifmail    unix  -       n       n       -       -       pipe
>   flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
> bsmtp     unix  -       n       n       -       -       pipe
>   flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender 
> $recipient
> scalemail-backend unix    -    n    n    -    2    pipe
>   flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store 
> ${nexthop} ${user} ${extension}
> mailman   unix  -       n       n       -       -       pipe
>   flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
>   ${nexthop} ${user}
>
> -- mechanisms on localhost --
>
> -- end of saslfinger output -
>
>
>
> ------------------------------
>
> Message: 2
> Date: Fri, 15 Feb 2008 12:29:21 +0100
> From: Patrick Ben Koetter <p at state-of-mind.de>
> Subject: Re: [Postfixbuch-users] cyrus sasl - sqlite auth backend
> To: postfixbuch-users at listi.jpberlin.de
> Message-ID: <20080215112920.GD1506 at state-of-mind.de>
> Content-Type: text/plain; charset=iso-8859-1
>
> * Trevor Ochmonek <postfixbuch-users at listi.jpberlin.de>:
>   
>> Hallo! Jetzt folgen die Konfigurationsdateien. Nicht wundern, dass 
>> System ist noch nicht online.
>>
>> In der gleichen Konfiguration läuft das System mit sql_engine: mysql  
>> (zzgl. der mysql Parameter) einwandfrei.
>>
>> /etc/sasl.db <- root:postfix 660 (Habe auch root:root und 
>> postfix:postfix probiert)
>>
>> Natürlich habe ich die sqlite 2.x Bibliotheken installiert und die 
>> Datenbank mir sqlite (2.8) angelegt, da cyrus sasl nur sqlite 2.x 
>> unterstützt.
>>     
>
> okay.
>
>   
>> Die Datenbank: create table passwd (id varchar(50), clear varchar(50));
>> In id habe ich die Emailadresse gespeichert (user at domain.xx) und in 
>> clear das Passwort im Klartext.
>>     
>
> gut.
>
>   
>> Problem: AUTH PLAIN scheitert immer, egal was ich versuche! :-O 
>> (Testvorgang ist grundsätzlich in Ordnung, habe es geben sql_engine: 
>> mysql verifiziert)
>>     
>
> okay.
>
>
>   
>> saslfinger - postfix Cyrus sasl configuration Fr 15. Feb 11:47:47 CET 2008
>> version: 1.0.2
>> mode: server-side SMTP AUTH
>>
>> -- basics --
>> Postfix: 2.3.8
>> System: Debian GNU/Linux 4.0 \n \l
>>
>> -- smtpd is linked to --
>>     libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb7de7000)
>>
>> -- active SMTP AUTH and TLS parameters for smtpd --
>> broken_sasl_auth_clients = yes
>> smtpd_sasl_auth_enable = yes
>> smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
>> smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
>> smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
>> smtpd_use_tls = yes
>>
>>
>> -- listing of /usr/lib/sasl2 --
>>     
>
> okay. Libraries sind da.
>
>   
>> -- content of /etc/postfix/sasl/smtpd.conf --
>> log_level: 3
>> pwcheck_method: auxprop
>> mech_list: plain login cram-md5 digest-md5
>> auxprop_plugin: sql
>> sql_engine: sqlite
>> sql_database: /etc/sasl.db
>> sql_select: SELECT clear FROM passwd WHERE id='%u@%r'
>>
>>
>>
>> -- active services in /etc/postfix/master.cf --
>> # service type  private unpriv  chroot  wakeup  maxproc command + args
>> #               (yes)   (yes)   (yes)   (never) (100)
>> smtp      inet  n       -       -       -       -       smtpd
>>     
>
> Liegt die /etc/sasl.db im chroot? Wenn nicht, dann nimm smtpd erst mal aus dem
> chroot, teste weiter bis es geht und pack dann alles ins chroot.
>
>
>   
Hallo!

Hurra!!! Einen Schritt weiter gekommen, chroot war ein guter Tipp! :-)

Ich habe den smtpd mit chroot n aus dem Jail befreit und siehe da: 
Funktioniert!

Folgendes Log ist dabei entstanden:

Feb 15 16:03:24 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql auxprop 
plugin using sqlite engine
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin Parse 
the username trevor at ochmonek.xx
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin try 
and connect to a host
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin trying 
to open db '/etc/sasl.db' on host ''
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin Parse 
the username trevor at ochmonek.xx
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin try 
and connect to a host
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin trying 
to open db '/etc/sasl.db' on host ''
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: begin transaction
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin: 
unable to open database file
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: Unable to begin 
transaction
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin create 
statement from userPassword trevor ochmonek.xx
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin doing 
query SELECT clear FROM passwd WHERE id='trevor at ochmonek.xx';
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin create 
statement from cmusaslsecretPLAIN trevor ochmonek.xx
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin doing 
query SELECT clear FROM passwd WHERE id='trevor at ochmonek.xx';
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: commit transaction
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin Parse 
the username trevor at ochmonek.xx
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin try 
and connect to a host
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin trying 
to open db '/etc/sasl.db' on host ''
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin Parse 
the username trevor at ochmonek.xx
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin try 
and connect to a host
Feb 15 16:03:38 lvpsxx-xxx-xx-xxx postfix/smtpd[9665]: sql plugin trying 
to open db '/etc/sasl.db' on host ''

Große Freude! Also die Datei /etc/sasl.db (root/postfix 660) nach 
/var/spool/postfix/etc/sasl.db (root/postfix 660) kopiert und das Jail 
wieder eingeschaltet.

Und? Funktioniert nicht ... wäre ja auch zu schön gewesen! :-(

Dabei kommt dieses Log zustande:

Feb 15 16:12:03 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql auxprop 
plugin using sqlite engine
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin Parse 
the username trevor at ochmonek.xx
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin try 
and connect to a host
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin 
trying to open db '/etc/sasl.db' on host ''
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin: 
malformed database schema - unable to open a temporary database file for 
storing temporary tables
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin could 
not connect to host
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin 
couldn't connect to any host
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin Parse 
the username trevor at ochmonek.xx
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin try 
and connect to a host
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin 
trying to open db '/etc/sasl.db' on host ''
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin: 
malformed database schema - unable to open a temporary database file for 
storing temporary tables
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin could 
not connect to host
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin 
couldn't connect to any host
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin Parse 
the username trevor at ochmonek.xx
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin try 
and connect to a host
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin 
trying to open db '/etc/sasl.db' on host ''
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin: 
malformed database schema - unable to open a temporary database file for 
storing temporary tables
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin could 
not connect to host
Feb 15 16:12:34 lvpsxx-xxx-xx-xxx postfix/smtpd[18328]: sql plugin 
couldn't connect to any host

Noch eine gute Idee und die Sache läuft . . .

Wo ist das Problem? Wieder Zugriffrechte oder fehlender Ordner? Hmm.

MfG
Trevor








Mehr Informationen über die Mailingliste Postfixbuch-users