blog.bartlweb - a technologist's external brain

Thema: Zimbra

MySQL-Server von Zimbra startet nach einem Crash nicht mehr

Nach einem Crash meines Zimbra Mailservers zeigt der Statusbericht von zmcontrol via zmcontrol status Mehrfach die Meldung mysql.server not running und ein manuelles Neustarten des Services bringt keine Abhilfe.

In den Logs des in Zimbra integrierten SQL-Servers unter /opt/zimbra/log/mysql_error.log findet sich folgende Information:

2021-11-28 10:58:25 139861518227328 [Note] Recovering after a crash using tc.log
2021-11-28 10:58:25 139861518227328 [ERROR] Can't init tc log
2021-11-28 10:58:25 139861518227328 [ERROR] Aborting

Lösung

Das Löschen der Transaction Coordinator Log-Datei (tc.log) und ein anschließender Neustart von Zimbra erlaubt das fehlerfreie Starten.

rm /opt/zimbra/db/data/tc.log
zmcontrol restart

Z-Push 2.3 und Zimbra Backend 65 zur Zusammenarbeit bewegen

Nach dem Update auf Z-Push 2.3 und dem Connector Z-Push Zimbra Backend 65, klappt die Anmeldung nicht mehr und die folgende Fehlermeldung wird in den Logs ausgegeben:

Checking username casings: PHP Fatal error: 
Declaration of BackendZimbra::Setup() must be compatible with IBackend::Setup($store, $checkACLonly = false, $folderid = false, $readonly = false)
in /server/activesync/backend/zimbra/zimbra.php on line 542

Das Problem liegt an einer geänderten Methode im Quellcode von Z-Push die im ZimbraBackend aufgerufen wird und nun einen weiteren Übergabeparameter erwartet. Eine kleine Anpassung in der Datei zimbra.php des Connectors (zu finden im Z-Push Installationsverzeichnis unter /backend/zimbra/zimbra.php) behebt das Problem.

Outlook-Synchronisation mit Zimbra über ActiveSync via Z-Push streikt aufgrund von nicht implementierten Ordnertypen

Bei der Neukonfiguration meines E-Mail-Kontos als ActiveSync-Konto unter Outlook (siehe auch: Outlook 2013 mit ActiveSync über Z-Push nutzen) wurde der neue Account stundenlang nicht synchronisiert. Ein Blick in die Log-Dateien von Z-Push brachte folgende im Sekundentakt erscheinende Fehlermeldung zum Vorschein:

04/02/2015 21:59:09 [ 6085] [ERROR] [vorname.nachname] NotImplementedException: Folderid 'f257' is saved to be of type '18' but this type is not implemented - code: 0

Die Log-Einträge von Z-Push können Sie mit folgendem Befehl live mitverfolgen:

Z-Push 2.1.3 inkl. Zimbra Backend 6.1 mit Zimbra 8.6 verbinden

Zimbra hat mit Version 8.6, aufgrund von Heartbleed und Poddle, aus Sicherheitsgründen den Support für SSLv3 deaktiviert. Nach dem Update auf Zimbra 8.6 konnte sich Z-Push 2.1.4 inkl. Zimbra Backend 6.1 nicht mehr mit dem Zimbra-Mailserver verbinden und lieferte in seinem Fehlerlog folgende Meldung.

16/01/2015 18:14:16 [22982] [ERROR] [mailadress@bartlweb.net] Zimbra->SoapRequest(): ERROR: curl_exec - (35) error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

Der Fehler beruht darauf, dass Z-Push über cUrl auf den Zimbra-Server zugreift und dort im Zimbra Backend expliziert SSLv3 für die Verbindung verwendet wird. Eine kleine Änderung im PHP-Code des Backends behebt das Problem.

Zertifikats-Probleme mit LDAP beim Upgrade auf Zimbra 8.6

Beim Versuch meinen Zimbra Mailserver von Version 8.5 auf die aktuelle Version 8.6 zu aktualisieren habe ich die folgende Fehlermeldung erhalten.

Error: Unable to create a successful TLS connection to the ldap masters.
Fix cert configuration prior to upgrading.

Zimbra beschwert sich seit Neuestem über Zertifikate bei denen der Common Name (CN), also die Hautpdomain auf welche das Zertifikat ausgestellt ist, vom lokalen Hostnamen abweicht. In meinem Fall ist der Mailserver intern unter mailserver.bartlweb.net (Hostname ist mailserver) erreichbar und von außen über mail.bartlweb.net, daher wurde das Zertifikat auch auf mail.bartlweb.net ausgestellt.

Zimbra DoSFilter für exzessive IMAP bzw. API-Zugriffe deaktivieren

Wer auf seinen Zimbra-Mailserver mit Analyse oder Backup-Tools (die viele aufeinanderfolgende Zugriffe auf die API oder per IMAP ausführen) zugreift, wird schnell feststellen, dass Zimbra den Zugriff als DoS-Attacke erkennt und blockiert.
In meinem Fall sind das z.B. automatisierte Backups via IMAPsize und die ActiveSync-Lösung Z-Push.

Um den entsprechenden Tools uneingeschränkten Zugriff zu gewähren, kann man die IP-Adressen der betreffenden Rechner auf die Whitelist des DoS-Filters setzen.

Dazu greifen Sie auf die Konsole Ihres Zimbra-Servers zu und geben im Kontext des Benuzters zimbra (su zimbra) den folgenden Befehl ein:

zmprov mcf zimbraHttpThrottleSafeIPs <IP-Adressen (kommagetrennt)>
zmprov mcf zimbraHttpThrottleSafeIPs 192.168.10.1
zmprov mcf zimbraHttpThrottleSafeIPs 192.168.10.1,192.168.10.2

ActiveSync für Zimbra mit Z-Push

Mit der PHP-Lösung Z-Push (http://z-push.org/) und der Erweiterung Z-Push Zimbra Backend (http://sourceforge.net/projects/zimbrabackend/) können Sie auch der Community Edition von Zimbra das proprietäre Protokoll ActiveSync für die einfache Synchronisiation von Mobilgeräten beibringen. Dabei wird das Synchronisieren von E-Mails, Kontakten und Kalender, nicht aber das von Notizen, unterstützt.

Installation

Als Voraussetzung für die Installation benötigen Sie einen Webserver mit PHP. Laden Sie Z-Push herunter und entpacken Sie den Ordner in Ihrem Root-Verzeichnis (im Idealfall legen Sie dafür einen eigenen virtuellen Host an).

Auf meinem System (OpenSuse) musste ich auch noch das PHP-Paket posix nach installieren.

Zimbra unkompliziert mit allen Endgeräten synchronisieren

Zimbra ist eine mächtige Open Source Collaboration Suite, aber leider lässt sich der Outlook-Support (Exchange) in der freien Variante der Software nicht nachrüsten. Über einige Tricks und das geschickte nutzen unterschiedlicher Schnittstellen lässt sich dennoch der gesamte Fuhrpark an Geräten unkompliziert synchronisieren.

Webdav

Zimbra bietet von sich aus CalDav und CardDav Schnittstellen zur Synchronisierung von Kalender/Aufgaben und Kontakten an. Diese Möglichkeit wird mittlerweile von Mac OS, iOS, Blackberry und Android unterstützt.

Nutzen Sie bei der Konfiguration als Servername die Domain, über die das Webinterface zu erreichen ist. Als Benutzername verwenden Sie Ihre E-Mailadresse. Wichig ist nur den Serverpfad wie folgt anzugeben: /principals/users/<ihre@mail.adresse>/

Migration von Zimbra auf einen neuen Server

Auch Long Term Releases von Ubuntu müssen irgendwann einmal auf den neuesten Stand gebraucht werden. Im konkreten Fall geht es um ein Upgrade von Ubuntu 8.04 auf Ubuntu 10.04. Die Methode lässt sich allerdings auch bei der Übersiedelung von Zimbra auf eine andere Distribution oder von 32 auf 64-bit nutzen. Da Zimbra sehr empfindlich auf Änderungen des Hostnamens und der IP-Adresse reagiert ist es erforderlich diese beiden Einstellung auf dem neuen Server ident vorzunehmen.

Installation von Zimbra OpenSource Edition 6.0 auf Ubuntu 8.04 LTS

Die folgende Anleitung beschreibt die Installation und Konfiguration von Zimbra 6.0 auf Ubuntu 8.04 als Mailspeicher. Dabei wird Zimbra so konfiguriert, dass der Empfang und Versand über externe hochverfügbare E-Mailserver erfolgt und Zimbra als Mailspeicher und ausgereiftes Webmail-Webinterface fungiert. Daraus ergibt sich eine Verzögerung beim Empfangen von E-Mails von max. 60 Sekunden.

Die Anleitung geht davon aus das der Hostname "mailserver" lautet und die IP des Servers 10.0.0.20 ist. Generell werden alle Zimbra-Befehle als Benutzer "zimbra" (der automatisch bei der Installation angelegt und ohne Passwort über "su zimbra", aus einem Root-Account heraus, erreichbar ist) ausgeführt.