dynaperl

100% porentief rein

Artikel mit ‘cyrus’ getagged

Websieve unter Debian Lenny

Donnerstag, 18. Dezember 2008

Bei SourceForge gibt es eine ziemlich alte aber gut funktionierende Websieve Version.  In dem Archiv ist auch ein Perl Modul (Sieve.pm) enthalten. Nach dem Update auf Lenny scheint dieses Perl Modul ein Problem mit der neuen Sasl Bibliothek zu haben. Das Perl Modul hängt an den Base64 kodierten String aus Username und Passwort immer noch ein Nullbyte an. Daran stört sich Sasl gibt folgende Fehlermeldung aus:

cyrus/sieve[20978]: badlogin: localhost[127.0.0.1] PLAIN error base64 decoding string

Als Lösung übergibt man der encoding Funktion einen leeren Zeilentrenner. Hier der Patch:

--- Sieve.pm    2008-12-18 17:41:56.779613529 +0100
+++ Sieve_neu.pm        2008-12-18 17:41:46.679333247 +0100
@@ -127,7 +127,8 @@
        $self->{'Capability'}=$_;
     }
     $userpass = "$self->{'Proxy'}\x00".$self->{'Login'}."\x00".$self->{'Password'};
-    $encode=encode_base64($userpass);
+#    $encode=encode_base64($userpass);
+    $encode=encode_base64($userpass, '');
     $len=length($encode);
     print $fh "AUTHENTICATE \"PLAIN\" {$len+}\r\n";

cyrus/sieve[9125]: Couldn’t find mech PLAIN

Montag, 12. September 2005
Beim Update eines unserer Mailserver habe ich eben geschlagenen 90 Minuten nach der Lösung eines wirklich blöden Problems gesucht. Ursache war das Fehlen der Bibliothek libplain.so welche sich in /usr/lib/sasl2/ befinden sollte. Sie ist in dem Debian Packet libsasl2-modules enthalten. Dadurch wurde beim Sieve Login kein Authentifizierungs Mechanismus mehr angezeigt.Beispiel:
root@computer:~ # telnet 127.0.0.1 sieve
Trying 127.0.0.1…
Connected to 127.0.0.1.
Escape character is ‚^]‘.
„IMPLEMENTATION“ „Cyrus timsieved v2.2.12-Debian-2.2.12-1“
„SIEVE“ „fileinto reject envelope vacation imapflags notify subaddress relational comparator-i;ascii-numeric regex“
„STARTTLS“

Hier Sollte normalerweise noch eine Zeile mit „SASL“ „NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5“ ausgegeben werden.

Im auth.log konnte folgende Fehlermeldung bewundert werden:

Sep 12 11:22:36 computer saslauthd[3432]: DEBUG: auth_pam: pam_authenticate failed: Permission denied
Sep 12 11:22:36 computer saslauthd[3432]: do_auth: auth failure: [user=test] [service=imap] [realm=] [mech=pam] [reason=PAM auth error]
Sep 12 11:25:29 computer cyrus/sieve[9125]: Couldn’t find mech PLAIN

Alle Vergleiche mit den anderen Rechnern brachten nur das Ergebnis das alles genauso Konfiguriert war wie auch bei dem neuen System. Auch die Packetversionen stimmten zum großen Teil überein. Nach einigen straces, blicke in den Cyrus-Source und diversen Googleversuchen wurde ich dann mehr zufällig durch eine Seite auf die Richtige Lösung gestoßen.

Vielen Dank.