[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