Installation: Kopano – der „neue“ Stern am Groupwarehimmel – Teil 1 (LAMP installation)

Was ist Kopano?

Letztes Update: 27.12.2018
Getestet: 28.10.2018

Kopano ist ein Fork (eine Abspaltung) von Zarafa. Einige Komponenten wurden übernommen, andere von Grund auf neu geschrieben. Kopano ist Opensource, bietet ein umfangreiches Sortiment an Funktionen und ist modular aufgebaut:

  • core (Basis für alle anderen Komponenten)
  • webapp (komplett ausgestattete Web-GUI a la Outlook Web Access)
  • files (Einbindung diverser Cloud-Dienste. Beispielsweise: Owncloud/Nextcloud)
  • webmeetings
  • deskapp (Vollwertiger Desktop-Mailclient auf Basis eines modifizierten Chromium Browsers! –> Senden an… funktioniert! –> kein Outlook mehr!)
  • mdm (mobile device management)

Betriebssystemplattform

Als Betriebssystem habe ich (wie sooft) Debian GNU Linux „momentan Version 9 (stretch)“ im Einsatz. Die Basis der Installation bildet im Grunde eine LAMP Installation. PHP sollte als mod_php laufen. Abgesehen davon, gibt es natürlich noch einige Abhängigkeiten, die bei der Installation von Kopano erfüllt werden müssen.

Klingt kompliziert, ist es aber nicht!

Natürlich werden auch einige andere Distributionen unterstützt, wie zum Beispiel: OpenSuse, Ubuntu, Fedora, RHEL, SLE….

Wer gerne „from scratch“ arbeitet, kann auch alles selbst kompilieren. Dies ist jedoch „nicht meine Baustelle“ ;-).

Woher bekommt man die Pakete von Kopano?

Die Pakete der Community-Edition können über die Website https://download.kopano.io/community/ heruntergeladen werden. Jedes Verzeichnis entspricht hierbei einem Modul (core, deskapp, files…).

Community Edition vs. Subscription

Wenn Kopano-Community-Edition eingesetzt wird, erhält man die Pakete in Form einer „bleeding edge“ Variante. Bei den Paketen handelt es sich um nightly-builds.

Die Pakete können/müssen per wget heruntergeladen werden. Die Installation erfolgt per dpkg.

Ist eine Subscription vorhanden wird es komfortabler, denn dann kann das Kopano-Repository eingebunden werden, was in weiterer Folge bedeutet, dass die gesamte Paketverwaltung per apt-get erfolgen kann.

Handysynchronisierung Z-Push

Auch Smartphoneuser kommen nicht zu kurz. Per z-push, welches kostenlos zur Verfügung steht, wird ActiveSync implementiert.

Installation LAMP

Ich gehe hier nicht darauf ein, wie man Debian GNU Linux „from scratch“ installiert. Ich gehe davon aus, dass wir von einer Basisinstallation starten.

Nachdem es auch notwendig ist, eine Datenbank zur Verfügung zu stellen und diverse Einstellungen zu bearbeiten, installiere ich zusätzlich das Paket phpmyadmin.

apt-get install mysql-server apache2 phpmyadmin

Durch obenstehenden Befehl werden auch sämtliche notwendigen Pakete (Abhängigkeiten) mitinstalliert. Es sind nur einige wenige Dialogfelder zu bestätigen:

Als Webserver wird Apache2 eingesetzt. Dies ist im Setupdialog auch so zu wählen.

Phpmyadmin fragt nach einem Passwort für den User phpmyadmin. Hier bitte einfach nur die Eingabetaste drücken. Es wird automatisch ein Passwort erzeugt, das wir in weiterer Folge NICHT benötigen.

MariaDB Einrichtung

Hierzu gibt es nicht viel zu sagen. Nachdem alle Pakete installiert wurden, muss der Befehl mysql_secure_installation aufgerufen werden. (Remove anonymous user (yes), Dissallow root login remotely (yes),  remove Testdb (yes), Reload privilege tables now (yes).

Kein Login in phpmyadmin mit dem User „root“ möglich

Bei Mariadb ist für den root-user ein unix_socket Plugin aktiv. Dieses Plugin prüft, ob 2 Bedingungen gegeben sind und lässt erst dann einen administrativen Zugriff auf die Datenbank (root-User) zu. Die Bedingungen sind:

1.) Als Rootuser in der Konsole eingeloggt?
2.) Authentifiziert als vorhandener Mariadb-root-user?

Wenn man sich nun bei phpmyadmin als Benutzer root einloggen will, schlägt dies fehl. Klar! In dem Fall meldet man sich ja nicht per Konsole (als User root) bei der Mariadb an, sondern über das Web. D.h. es werden nicht beide Bedingungen erfüllt.

Eine gute Lösung hierfür ist, einen eigenen Benutzer anzulegen, der MariaDB-Rootrechte besitzt.

Im Terminal des Servers  bzw. des Linuxsystems sind folgende Schritte (eingeloggt als root) durchzuführen:

mysql

grant all on *.* to neuerrootuser@localhost (RETURN)
identified by 'deinpasswort' with grant option;

Nach Abschluss obiger Aktion, haben wir uns somit nun einen neuen Rootuser für die MariaDB gebaut. Um wieder aus der Mariadb-Konsole auszusteigen, muss quit eingegeben werden.

phpmyadmin

Zur einfacheren Verwaltung von Datenbanken, wird phpmyadmin installiert. Auch hier ist das Setup schnell vollzogen. Nach Beantwortung der Frage „Konfigurieren der Datenbank für phpmyadmin mit dbconfig-common“ mit JA und der Bestätigung der Frage nach einem Passwort für den phpmyadmin-Benutzer mit einem Return (Details siehe weiter oben), ist die Installation abgeschlossen.

Phpmyadmin sollte nun per Internetbrowser aufrufbar sein. Als Login ist bitte der User/Passwort zu verwenden, den wir in der Konsole für die MariaDB angelegt haben!

Mit root funktioniert es nicht!

Somit haben wir eine LAMP Basis geschaffen und können uns nun der Kopanoinstallation widmen.

Kopano installieren

Pakete herunterladen

Die Pakete von Kopano können – sofern man keine Subscription hat – per wget heruntergeladen werden. (Anmerkung: Nutzer mit Subscription, können direkt per apt-get auf die Pakete zugreifen.)

Wenn mit wget gearbeitet wird, ist https://download.kopano.io/community/ die Adresse der Wahl.

Auf dem Linuxserver selbst, kann man ein Verzeichnis erstellen, um die Pakete in selbiges herunterzuladen, oder man greift auf das /tmp Verzeichnis zurück.

cd /tmp
wget https://download.kopano.io/community/core:/core-8.6.81.475_0%2B86-Debian_9.0-amd64.tar.gz
wget https://download.kopano.io/community/webapp:/webapp-3.4.23.1812%2B1035-Debian_9.0-all.tar.gz
wget https://download.kopano.io/community/files:/files-2.1.5.296-Debian_9.0-all.tar.gz
wget https://download.kopano.io/community/mdm:/mdm-2.1.0.106%2B26-Debian_9.0-all.tar.gz

Anmerkung: Die Dateinamen ändern sich täglich (Versionsnummer -> da nightlies! Bitte die Links entsprechend anpassen. Notwendige Daten hierfür erhält man auf der Kopano-Community-Seite.

Nach dem Download, werden die *.tar.gz Dateien enpackt. Pro entpackter Datei, wird automatisch ein entsprechendes Unterverzeichnis erstellt.

Entpacken und installieren des Kopano-core

tar xvfz core-8.6.81.475_0+86-Debian_9.0-amd64.tar.gzcore-8.4.0~35_19.1-Debian_8.0-amd64
cd core-8.6.81.475_0+86-Debian_9.0-amd64
dpkg -i *.deb

Der Installationsversuch schlägt fehl, da es unaufgelöste Abhängigkeiten gibt. Genaugenommen erhält man die Meldung: „Fehler traten auf beim Bearbeiten von:“

Unaufgelöste Abhängigkeiten bereinigen

Apt wäre nicht apt, wenn es für diesen Umstand keine einfache Lösung gäbe.

apt-get install -f

Durch diesen Befehl werden alle fehlenden Pakete „nachgezogen“.

Kopano-core — Zweiter Versuch

Bei der Instation von Kopano-Core sollten nun keine unaufgelösten Abhängigkeiten mehr angezeigt werden.

Kopano Webapp

Bei der Installation der Webapp wird nun gleich verfahren, wie bei „Core“. Entpacken der tag.gz Datei, in das Verzeichnis wechseln, in dem die entpackten .deb Files liegen + Installation mittelst dpkg.

tar xvfz webapp-3.4.23.1812+1035-Debian_9.0-all.tar.gz
cd webapp-3.4.23.1812+1035-Debian_9.0-all
dpkg -i *.deb

Wieder werden fehlende Abhängigkeiten zu Problemen bei der Installation führen. Abermals löst apt-get das Problem.

apt-get -f install

Abschließend stellt auch die Installation der Webapp kein Problem mehr dar. (Im Verzeichnis in dem die entpackten Dateien der Webapp liegen):

dpkg -i *.deb

Um die Konfiguration der Webbapp zu aktivieren, muss der Apachewebserver neu gestartet bzw. die Konfiguration neu eingelesen werden.

service apache2 reload

oder

service apache2 restart

Ist die Webapp erreichbar?

Dies lässt sich sehr einfach mittels Browser testen.

http://<FQDN oder IP>/webapp

Bad request?

Offenbar erhalten wir hier einen Bad Request. Erste Anlaufstelle für diesen Fehler, sind die Apache Logdateien, die sich im Verzeichnis /var/log/apache2 befinden.

Der Fehler wird in der Datei /var/log/apache2/error.log protokolliert.

cat /var/log/apache2/error.log

Er lautet:

Rejected insecure request as configuration for ‚INSECURE_COOKIES‘ is false.

Das Problem tritt deshalb auf, da wir unverschlüsselt auf die Webapp zugreifen wollen. Es ist also eine HTTPS-Verbindung notwendig, um in der Standardkonfiguration auf die WebApp zugreifen zu können.

Dies kann man allerdings umschiffen (wenngleich es im Grunde keine gute Idee ist). Wir ziehen die HTTPS Konfiguration später nach und deaktivieren die Zwangsverschlüsselung der Verbindung.

nano /etc/kopano/webapp/config.php

Anpassen der Zeile: define(„INSECURE_COOKIES“,true);

Das Ganze steht per default auf false.

In der Konfigurationsdatei steht hierzu geschrieben:
// Set to ‚true‘ to disable secure session cookies and to allow log-in without HTTPS.

Nach dieser Änderung, muss der Apache2 neu gestartet werden.

service apache2 restart

Und wir versuchen es erneut! Diesmal funktioniert es einwandfrei!

Die Grundinstallation von Kopano-Core und der Webapp sind somit abgeschlossen. Hierbei handelt es sich jedoch bislang rein um das Frontend! Die Datenbankanbindung ist noch nicht gegeben.

WICHTIG: Das Deaktivieren der SSL-Verbindung, dient hier rein dazu, mit der Installation in einer Testumgebung fortfahren zu können. Wenn der Server sich später im Produktiveinsatz befinden soll, MUSS UNBEDINGT darauf geachtet werden, dass dies wieder umgestellt wird. Verschlüsselung ist ein MUSS!

Die Konfigurationsfiles der Kopanokomponenten fehlen

Die Konfigurationsdateien befinden sich schon seit Längerem nicht mehr im Ordner /etc/kopano/…

Diese findet man aktuell unter: /usr/share/doc/kopano/example-config/, wobei die server.cfg und die spooler.cfg im .gz Format vorliegen und erst enpackt werden müssen!

Wir kopieren die Datei server.cfg.gz in den Ordner /etc/kopano/ und entpacken sie mit gzip:

cp /usr/share/doc/kopano/example-config/server.cfg.gz /etc/kopano
gzip -d server.cfg.gz

Im nächsten Schritt muss eine Datenbank eingerichtet werden.

MySQL Datenbank einrichten

Per phpmyadmin stellt dieses Vorhaben kein all zu großes Problem dar.

Zuerst erstellt man eine neue Datenbank.

und einen Benutzer

Den Abschluß bildet die Zuordnung der Benutzerberechtigungen. (Datenbank kopano / Benutzer kopano)

Konfigurationsdatei von Kopano-Core anpassen

In einem der vorhergehenden Schritte, wurde die Konfigurationsdatei in das Verzeichnis /etc/kopano kopiert und entpackt. Sämtliche Konfigurationsparameter, sind in der Datei auskommentiert und müssen erst (nach Bedarf) aktiviert werden.

Die server.cfg Datei für dieses Tutorial, kann man sich hier herunterladen.

ACHTUNG: Bitte die Einstellungen für die Datenbank anpassen (User, Passwort, DB-Name, Connection).

Kopano Server starten

Der Start des Server sollte nun bewirken, dass die zuvor erstellte Datenbank mit den notwendigen Tabellen / Feldern befüllt wird.

Zuerst stoppen wir einen eventuell laufenden Kopano Server.

service kopano-server stop

Der Start

service kopano-server start

und die folgende Statusprüfung (service kopano-server status), sollte folgendes Bild ergeben.

Sofern man hier etwas von einem Datenbankproblem (DB nicht vorhanden) liest und alle Einstellungen in der server.cfg korrekt sind, hilft oft ein weiterer Neustart von Kopano.

Normalerweise werden mit dem Start des Kopano-Server, in der Datenbank Tabellen und Felder angelegt.

Um zu überprüfen, ob die Datenbank bereits mit Daten befüllt wurde, kann sie in phpmyadmin aufgerufen werden. (Wenn der der Verbindungsvorgang erfolgreich war, sollten hier etliche Tables und Felder ersichtlich sein):

Kopano Benutzer

Die Kopanobenutzer kommen in dieser Konfiguration aus der MySQL Datenbank und müssen per Linuxkonsole angelegt werden.

Folgend wird ein Benutzer „gestl“ inklusive Mailadresse angelegt. Der Benutzer ist Administrator und bekommt deshalb zusätzlich einen Parameter mit auf den Weg (-a1).

 kopano-admin -c gestl -p 12init34 -e daniel.gestl@it-yourself.at -f "Daniel Gestl" -a1

Login in die Webapp

Um zu prüfen, ob die Konfigurationsarbeiten erfolgreich waren, erfolgt abschließend der Loginversuch.

http://<FQDN / IP>/webapp

Englische Ordnernamen

So manchem, mag aufgefallen sein, dass die Ordner für Posteingang, Postausgang etc. auf englisch angeführt werden. Um dies im Nachhinein zu ändern, sind einige Schritte notwendig.

Zuerst muss man sicherstellen, dass das deutsche Sprachpaket für die jeweilige Linuxdistribution installiert ist. Da ich Debian verwende, kann dies mit dem Befehl:

dpkg-reconfigure locales

erledigt werden. Im erscheinenden Fenster, muss bitte de_DE.UTF8 UTF8 ausgewählt (Leertaste) und schließlich mit OK bestätigt werden.

Die Frage nach dem „default locale“ bitte ebenso mit de_DE.UTF8 bestätigen.

Kopano liefert mit dem Befehl „kopano-localize-folders“ eine Möglichkeit mit, die bereits erstellten englischen Ordnernamen auf deutsche Ordnernamen umzustellen:

kopano-localize-folders --u gestl --lang de_DE.UTF8 --verbose (Achtung doppelte Bindestriche bei -u -lang -verbose!)

Danach sollten die Ordner in deutscher Sprache erscheinen.

Ende – Teil 1

Wie man sieht, ist die Installation keine Zauberei. Allerdings fehlt hier noch die Einbindung von Postfix, damit Emails versendet und empfangen werden können. (…und ein wenig Finetuning).

Darauf werde ich in einem zweiten Artikel zum Thema „Kopano“ eingehen.

PS: Kopano kann noch viel mehr!

Hier gehts zu Teil 2…