[Postfixbuch-users] SASL authentication failure: Can only find author (no password)

Patrick Ben Koetter p at state-of-mind.de
Di Okt 11 13:58:11 CEST 2005


* Kai Kuehne <kai.kuehne at gmail.com>:
> > > Ich habe ein Problem.. mein SMTP Auth will einfach nicht funktionieren.
> > > Beim Login mit "AUTH PLAIN base64-code" erhalte ich obige
> > > Fehlermeldung in den Maillogs. Den Code habe ich per "perl
> > > -MMIME::Base64 -e 'print encode_base64('test\0test\0testpass')';"
> > > erstellt.
> >
> > Hast Du zuvor mit "sample-client" und "sample-server" aus den SASL-Sourcen
> > getestet?
> 
> Bisher nicht, werd ich gleich versuchen.

Wenn die binaries nicht Teil eines Paketes Deiner Distribution sind, dann lade
die Cyrus-SASL.2.x Sourcen, mach ein configure, make, ABER kein make install.
Dann geh in das sample Verzeichnis der Sourcen und mache ein make
sample-server und make sample-client. Mit denen kannst Du dann testen, ohne
deine bestehende Installation zu gefährden.

> > Hat Dein user einen REALM? Hast Du beim base-64 kodieren das @-Zeichen
> > escaped?
> 
> Nein.. habs eigentlich so gemacht wie im Buch. Der String zum Escapen
> lautet "test\0test\0testpass".. hat mich irgendwie verwirrt.
> 
> 
> > Treiber in /usr/lib/sasl2 und die conf in /var/lib/sasl2? Ob das gut geht?
> 
> Hm, die smtpd.conf liegt eigentlich in /etc/sasl2/, aber dein saslfinger hat
> sie da nicht gefunden. :)

Jo, da sucht sie auch nicht. Du kannst das im Skript ändern oder die
/etc/sasl2/smtpd.conf posten.

Ich weiß nur immer noch nicht, mit welcher Distribution Du arbeitest. Eine
smtpd.conf in /etc/sasl2/ ist mir IIRC noch nicht untergekommen...

> > > -- content of /var/lib/sasl2/smtpd.conf --
> > [...]
> >
> > Das password feld darf beim  auxprop_plugin: sql in der MySQL-DB nicht
> > verschlüsselt sein.
> >
> 
> Gut, steht (wie unten) im Klartext drin.

OK.

> 
> 
> > > Meine Benutzertabelle sieht so aus:
> > >
> > > mysql> SELECT * FROM virtual_users;
> > > |id|username|userrealm|userpassword|email|virtual_mailbox|virtual_uid|virtual_gid|auth|active|
> > > |1|test|mail.example.com|testpass|||0|0|1||
> > > 1 row in set (0.00 sec)
> >
> > Dann sollte $smtpd_sasl_local_domain den Wert "mail.example.com" und nicht
> > "example.com" haben.
> 
> Hm, und wie funktioniert das dann mit mehreren Domains?
> Einfach listen?

Nö. Postfix hängt den Wert von $smtpd_sasl_local_domain an den username an,
wenn der Client einen username ohne REALM (@irgendwas) sendet.

Solange die clients einen Realm in Verbindung mit dem usernamen senden, wird
$smtpd_sasl_local_domain nicht benutzt. Dann ist allein ausschlaggebend, dass
username und Realm mit $username und $userrealm in Deiner SQL:DB matchen.

Deshalb kann Deine Authentifizierung bisher auch nicht klappen. Du baust Dir
einen AUTH-string aus test\0test\0testpass zusammen - es fehlt der $userrealm.

Do solltest also "test/@mail.example.com\0test/@mail.example.com\0testpass"
benutzen, um den AUTH-string zu erstellen.

p at rick

-- 
Das »Postfix«-Buch
<http://www.postfix-buch.com>
saslfinger (debugging SMTP AUTH):
<http://postfix.state-of-mind.de/patrick.koetter/saslfinger/>



Mehr Informationen über die Mailingliste Postfixbuch-users