[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