Da Zentyal (Linux Small Business Server) bereits die Unabhängigkeit von MS Exchange Servern bietet, liegt es nahe diese Unabhängigkeit auch auf den Desktop Bereich auszudehnen. Neben LibreOffice kommt dann häufig aus der Mozilla Produktreihe Firefox und Thunderbird zum Einsatz.

Zentyal unterstützt bereits, von Haus aus, mit dem SOGo Server MS Outlook Clients, trotzdem besteht auch in KMU's vielfach der Wunsch einen alternativen Mail Client einzusetzen. Aus Sicht der Sicherheit ist das sicher kein schlechter Gedanke und manche mögen auch den Mail Client Thunderbird auf Grund seiner Übersichtlichkeit.

In Zentyals Version 4.2 werden Outlook Clients bereits weitgehend unterstützt und es kann nur von Vorteil sein, wenn eine möglichst breite Palette an weiteren Mail Clients Berücksichtigung finden. Hier ist es erforderlich die entsprechenden Schnittstellen zur Verfügung zu stellen. In dieser Betrachtung schränke ich mich auf den Mailclient Mozilla Thunderbird ein, dieser steht für die meisten Betriebssystem Geschmacksarten zur Verfügung.

Thunderbird wiederum ist ein ausgefeilter Mailclient, die üblichen Büro Aufgaben im Client Bereich - wie Mail, Kalender und Adressbuch - werden vollständig unterstützt. Eine übersichtliche Benutzeroberfläche kann leicht um weitere Funktionalität mit AddOns erweitert werden kann. Ohne Hilfen kann die Konfiguration jedoch eine Aufgabe mit erheblichem manuellen Aufwand werden, die sich mit der Anzahl der Nutzer potenziert. Dabei bietet Thunderbird bereits alle Anlagen um eine automatische Provisionierung zu unterstützen.

Bei der automatischen Provisionierung gibt es zwei Möglichkeiten: Eine Methode, die häufig von Providern genutzt wird, ist es - nach Angabe von Basisdaten, wie Benutzername, Email-Id und Kennwort, die Grundkonfiguration zu erhalten. Hier handelt es sich zum Einen um das Postkorb Verfahren (POP/IMAP) und die Konfiguration des SMTP Servers für den Mail Versand. Diese Methode bezeichne ich hier als Provisioning Light.

Thunderbird unterstützt aber auch die zentrale Auslieferung der Konfiguration aus der Firmen IT und hier wird es auch interessant für KMU Partner. Diese Methode geht weit über die reine Mail Konten Grundkonfiguration hinaus und kann Funktionalität, die nicht gewünscht wird ebenso einschränken - wie auch erweitern. Ein weiterer, nicht unwesentlicher, Aspekt ist, dass sich Mitarbeiter nicht immer mit den technischen Details und Einstellmöglichkeiten einer Mailanbindung auseinandersetzen wollen. Damit hat man auch einen schmalen Ersatz für die GPO auf dieser Anwendungsseite zur Verfügung. Diese Methode bezeichne ich hier Full Provisioning und es kommt die Frage nach der Schnittstelle zwischen Zentyal und Thunderbird auf.


Provisioning Light

Provisioning Light kann relaviv einfach umgesetzt werden und folgt der Beschreibung im MDN Automatische Konfiguration von Thunderbird

Die Grundkonfiguration des Zentyal Servers sollte im Vorfeld erledigt werden, bevor es an die Feinheiten geht. Hier wird davon ausgegangen, dass DNS fertig angepasst worden ist.

Für die Zentyal Konfiguration ist es erforderlich, das gesuchte XML auszugeben. Davor soll der PHP Interpreter die gesuchten Daten einbinden. Einige Werte sind zu ändern, so folge ich hier der Dokumentation von Zentyal. (Z.B. wenn ich pdc.zentyal.lan schreibe, dann ist natürlich ihr Hostname statt pdc anzugeben bzw. Ihre Domain anstatt zentyal.lan). Die Reiter sind der Reihe nach abzuarbeiten.

Zentyal Dateisystem Apache

Das Grundgerüst für das Dateisystem wird erstellt:

cd /var/www/html/
mkdir -p .well-known/autoconfig/mail

Der Einfachheit halber erzeugen wir mögliche Unterverzeichnisse per Softlink:

ln -s .well-known/autoconfig/mail mail
ln -s .well-known/autoconfig autoconfig

config-v1.1.xml.php

Auf GitHub befindet sich der verwendete Quellcode für config-v1.1.xml.php.

Zentyal Apache Ergänzung

In /etc/apache2/sites-available/000-default.conf, dem Default Host Block wird der Code vor dem Block Ende </VirtualHost> eingefügt:

        # serve on any of the following requests
        RewriteEngine on
        RewriteRule ^/\.well-known/autoconfig/mail/config-v1\.1\.xml$ /.well-known/autoconfig/mail/config-v1.1.xml.php [PT]
        RewriteRule ^/autoconfig/mail/config-v1\.1\.xml$ /.well-known/autoconfig/mail/config-v1.1.xml.php [PT]
        RewriteRule ^/mail/config-v1\.1\.xml$ /.well-known/autoconfig/mail/config-v1.1.xml.php [PT]

Nach dem Neustart des Apache kann es losgehen, sofern ihr DNS die Anfrage nach dem MX Record für Ihre Domain bereits unterstützt.


Anforderung

Die Zielvorgabe für das Full Provisoning soll sein:

  • Deployment einer Konfiguration für Thunderbid Clients
  • Durchsetzen von Firmen Policies
  • Granularer Aufbau für eine flexible Konfiguration
  • Änderungen sollen schnell in den Live Betrieb umgesetzt werden können
  • OU (Organisation Unit) Zugehörigkeit muss in der Konfiguration individuell abgebildet werden können
  • Betriebasystem Unabhängigkeit von Thunderbird unterstützen
  • Maintenance an einer Stelle
  • Leichte Fehlerbehebung für den Helpdesk
  • Reduzieren des "Management by Sneakers" und Übergabe an DevOp.

Die Anforderung an die Lösung soll beinhalten:

  • Auslieferung einer allgemein gültigen Konfiguration an jeden Nutzer
  • Möglichkeit für individuelle Konfigurationserweiterung für spezielle Nutzer
  • Auslieferung allgemein gültiger Konfiguration je Gruppe
  • Möglichkeit für individuelle Konfigurationserweiterung für spezielle Gruppen
  • Fehler sollen schnell transparent werden, aber den Ablauf i.Ü. nach Möglichkeit nicht stören

Beteiligte Plattformen sind hier:

  • Der Zentyal Server auf der OS Plattform Ubuntu
  • Der Client auf den OS Plattformen Windows und Unixoide (wie z.B. Linux)

Die Umsetzung der Lösung muss auf unterschiedlichen Plattformen erfolgen und erfordert eine Verteilung von Einstellungen auf der Client Seite zur Durchsetzung der Verfahren, wobei sich die Orte für die Installation auf der Client Seite je verwendetem OS unterscheiden. Auf der Serverseite (Zentyal) soll das zentrale Management der Konfiguration stattfinden.


Full Provisioning

Die Beschreibung hier ist vorerst unvollständig und wird noch fortgesetzt (Beta Stadium: Eilige finden den Piloten für den Lösungsansatz "Windows Clients" bereits bei Github unter https://github.com/marneu/Zentyal_TB_autoconfig)

Technische Vorbereitung

Server

Client

Organisatorische Vorbereitung

Öffentliche Order

Einige der häufigsten Fragen in Migrationssituationen von MS Exchange zu Zentyal ist die nach Unterstützung der "Öffentliche Ordner" Struktur. Der Begriff "Öffentliche Ordner" ist irreführend. In den meisten Fällen ist damit nicht gemeint, dass die Ordner öffentlich - d.h. allen mit Internet Anschluß auf der Welt - zur Verfügung stehen sollen, sondern allen Mitarbeitern des Unternehmens (Fehlkonfigurationen ausgeschlossen). Mithin ist die, hier gemeinte, Öffentlichkeit eigentlich die Gesamtgruppe "Unternehmen". Der Lösungsansatz für Zentyal, wie auch den meisten anderen Nicht-Exchange Produkten, lautet daher ein Konto zu schaffen welches von allen Mitgliedern dieser Gruppe genutzt werden darf. Es handelt sich um nichts weiter als eine übergeordnete OU mit darin enthaltenen weiteren OU's. Im Folgenden verwende ich den Begriff 'Öffentlich' mit der Einschränkung -> öffentlich für die gesamte OU Unternehmen Struktur.

Für die Umsetzung sind bereits bei der Konfiguration von Zentyal ein paar Punkte zu beachten, wenn die Funktionalität Gruppen Email Konten unterstützt werden soll. Nehmen wir an es gibt eine Gruppe UNTERNEHMEN, so kann daraus bei Zentyal eine Berechtigung für Verzeichnisse abgeleitet werden. Wenn wir eine Unterscheidung zu dieser wollen, ist es hilfreich wenn die Gruppe einen Zusatz bekommt der diese Funktion selbsterklärend beinhält. In dieser Ausführung ist das eine Forderung an die Benennung.
Benutzernamen werden üblicherweise mit Groß-/Kleinschreibung oder reiner Kleinschreibung konfiguriert, hier unterscheiden wir Gruppen bereits visuell durch reine Großschreibung. So erstellen wir eine Gruppe OFFICE_MAIL, deren einziger Zweck es vorerst ist ein Email Konto zur Verfügung zu stellen. Dieser Gruppe werden alle Mitarbeiter eines Unternehmens zugeordnet. Diese Gruppe dient ausschließlich der Zuordnung für den Mail Betrieb des 'Öffentlichen Ordner', sie hat (noch) keine weitere Funktion.

Damit die volle Mail Funktonalität für diese Gruppe erreicht wird ist ein Mail Konto für diese Gruppe anzulegen mit entweder keiner oder einer höheren Quota. Der Name des, zu erstellenden, Benutzer Kontos lautet OFFICE (ohne den Zusatz '_MAIL') und wird uns seinen Datenspeicher im weiteren Verlauf als 'Öffentlicher Ordner' ebenso, wie als 'Öffentliches Adressbuch' und auch 'Öffentlicher Kalender' zur Verfügung stellen.

Im SOGo Webinterface ist die Berechtigung für den OFFICE Kalender, das OFFICE Adressbuch so einzustellen, dass alle angemeldeten Mitarbeiter des Unternehmens darauf den entsprechenden Zugriff haben. Damit soll eine entsprechende Gleichstellung Webinterface/Mailclient erfolgen.

Arbeitsgruppen

Arbeitsgruppen - Ordner, Kalender und Adressbücher - werden analog zu den vorher beschriebenen 'Öffentliche Ordner' zur Verfügung gestellt. Abweichungen ergeben sich hier nur bei den konfigurierten Namen der Gruppen/Abteilungen (z.B. AG1_MAIL -> AG1 Benutzer).

Konfigurations Vorbereitung

In den Beispielen des Verzeichnis ./TB finden sich Einstellungen für Thunderbird Clients, die unter Win 8.1 erprobt sind. Mindestens die Kontrolle und evtl. die Anpassung an die Bedürfnisse des eigenen Unternehmens sind zwingend erforderlich.

Abgearbeitet werden Blöcke ausschließlich, wenn deren Dateiname auf .template enden. Beispielhaft beschrieben ist darin die Grundkonfiguration für Windows (Prefix win-) Thunderbird Clients. Die Reihenfolge für die Abarbeitung der Template Blöcke wird durch eine beliebige Nummerierung festgelegt, der Rest der Dateinamen hat beschreibenden Charakter und dient der Zuordnung zu den verschiedenen Bereichen. Falls ein Block ausgeblendet (nicht abgearbeitet) werden soll ist die Datei einfach umzubenennen in <bisheriger Dateiname>.disabled

Thunderbird erwartet bestimmte Zuordnungen -  wie z.B. id, server, account - die ihre Zuordnung durch die angehängte Zahl erfahren, sie dienen der Unterscheidung der verschiedenen Konten. Da das Hochzählen je Template Block generiert wird, muss auch je ein Template Block für jeden neuen Zählerbereich/Account Bestandteil verwendet werden um eine höhere Zuordnungsnummer zu erhalten.

In den Beispiel Temlate Blöcken sind alle Einstellungen für den Mail Client mit der JScript Anweisung pref(...) festgelegt. Damit wird Thunderbird die Konfiguration vorgegeben und kann vom Anwender geändert werden. Nicht immer ist das so gewollt und es muss, anhand der Policy des Unternehmens, die Einstellung dann evtl. auf defaultPref(...), lockPref(...) oder clearPref(...) geändert werden. Die Bedeutung im Einzlnen kann der Beschreibung der Anweisungen für Firefox für Thunderbird entnommen werden.

Wenn neue Template Blöcke erprobt werden sollen ist es sinnvoll diese mit einer entsprechend hohen Numerierung (z.B. win-99-wird-getested.template) im Dateinamen zu versehen, damit kann der Benutzer im günstigsten Fall den Mail Client trotzdem benutzen wenn eine Fehlermeldung angezeigt wird. Die Fehlermeldung ist i.Ü. aber für den Administrator bestimmt, der Benutzer kann hier i.a.R. nicht eingreifen. Entsprechend vorangegangene Tests sollte man vom DevOp, Administrator, Integration Test Team erwarten.

Ersatz Variable

In den Thunderbird Templates kommen Ersatz Variable zum Einsatz, die derzeit folgende Funktionen bieten

Für Benutzer können folgende Variablen verwendet werden:
[USER_NAME]
Login Name
[GIVEN_NAME]
Vorname
[SUR_NAME]
Nachname
[REAL_NAME]
Vorname Nachname
[REALNAME]
VornameNachname (ohne Leerzeichen)
[DISPLAY_NAME]
Anzeige Name sofern dieser vom [REAL_NAME] abweicht, üblicherweise in BindDN verwendet.
[MAIL_ADDRESS]
Email Adresse
[HOME_DIR]
Das Home Verzeichnis
[BASE_DN]
Die BaseDN des LDAP Verzeichnisses
[BIND_DN]
Die BindDN Id des Benutzer für den Login am LDAP (wird z.B. beim globalen Adressbuch verwendet)
[SMTP_EMAIL]
Email Adresse für den SMTP Server (normalerweise identisch mit [MAIL_ADDRESS])
[MAIL_HOST]
FQDN des Mail Servers
[MAIL_DOMAIN]
Normalerweise der Teil hinter dem @ bzw. der FQDN ohne Hostname
Gruppen

Es ist zulässig in den Gruppen Templates auch die Benutzer Variablen anzuwenden. Sinnvoll kann das z.B. sein wenn der Benutzer mit seiner Email Adresse auch innerhalb der Gruppen Mail versendet und/oder sein 'Vorname Nachname' in der Mail Adresse erscheinen soll.

Kalender

Die internen Kalenderbezeichnungen (uuid) werden so generiert, dass jeder AP (Arbeitsplatz) zwar den gleichen Kalender einbinden kann, aber die UUID zusätzlich zum Benutzer auch auf den AP bezogen ist - damit soll die schnelle Synchronisation je AP sichergestellt werden.

Deployment

Client Seite

Windows Clients