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

Was ist Kopano?

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 „Jessie“ 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

MySQL Einrichtung

Hierzu gibt es nicht viel zu sagen. Apt-get fragt im Zuge des Setup nach einem Passwort für den MySQL-Superadmin „root“. Man sollte hier auf jeden Fall ein Passwort setzen.

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

Als Abschluss sollte der Befehl mysql_secure_installation aufgerufen werden. (Remove anonymous user (yes), Dissallow root login remotely (yes),  remove Testdb (yes), Reload privilege tables now (yes).

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, der Eingabe des MySQL-Root-Passwortes und der Bestätigung der Frage nach einem Passwort für den phpmyadmin-Benutzer mit einem Return, ist die Installation abgeschlossen.

Phpmyadmin sollte nun per Internetbrowser aufrufbar sein.

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.4.0~35_19.1-Debian_8.0-amd64.tar.gz

 

wget https://download.kopano.io/community/webapp:/webapp-3.3.0.524_391-Debian_8.0-all.tar.gz

 

wget https://download.kopano.io/community/files:/files-2.1.0.74-Debian_8.0-amd64.tar.gz
wget https://download.kopano.io/community/mdm:/mdm-2.1.0.20_16-Debian_8.0-all.tar.gz

Anmerkung: Die Dateinamen ändern sich täglich (Versionsnummer -> da nightlies)

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 xfvz core-8.4.0~35_19.1-Debian_8.0-amd64.tar.gz

cd core-8.4.0~35_19.1-Debian_8.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.3.0.524_391-Debian_8.0-all.tar.gz
cd webapp-3.3.0.524_391-Debian_8.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

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.

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

Damit Kopano etwas von der Datenbank mitbekommt, muss die Konfigurationsdatei angepasst werden.

vim /etc/kopano/server.cfg

Im Abschnitt  MYSQL SETTINGS (for database_engine = mysql) sind Host, DB, DB-Benutzer und DB-Passwort zu hinterlegen.

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, sollte folgendes Bild ergeben.

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

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…

Kommentare wurden geblockt (modsecurity)

An alle, die ggf. gerne einen Kommentar hinterlassen würden, jedoch von modsecurity blockiert werden / worden sind.

Trotz einer Unmenge an Ausnahmen per ID, passiert es immer wieder. Ich dachte, es wäre mittlerweile gelöst… 🙁

Ich entschuldige mich vielmals für diese Unannehmlichkeiten.

Das Problem sollte nun nicht mehr bestehen.

PS: Falls jemand eine recht vollständige Ausnahmeliste für die /wp-comments-post.php usw.hat, bitte immer her damit! 🙂

Kopano Webapp mit fail2ban schützen

Gerade eben stand ich vor der Aufgabe, die Kopano-Web-App mit einem fail2ban Schutz zu versehen. Fail2ban arbeitet mit regulären Ausdrücken (regular expressions). Ehrlich gesagt, habe ich davon so gut wie keine Ahnung. 🙂

Egal! Aufgegeben wird nur ein Brief…

Schließlich kam ich zu folgender Lösung.

Der Logeintrag

Im Apache-Error-Log wird bei einem fehlerhaften Loginversuch in die Webapp Folgendes protokolliert:

[Thu Mar 09 19:20:56.097859 2017] [:error] [pid 25634] [client xx.119.xxx.141:6640] Kopano WebApp user: dsafasdf: authentication failure at MAPI, referer: https://kopano.mysite.at/webapp/?logon

Der Fail2ban Filter

Da es sich bei der Fehlermeldung um eine vom „Apachen“ kreierte Fehlermeldung handelt, greife ich im Filter auf die apache-common.conf (siehe INCLUDES) zurück und baue mir folgenden Filter (failregex):

# FILE : /etc/fail2ban/filter.d/kopano-webapp-login.conf
# Fail2Ban configuration file
[INCLUDES]
before = apache-common.conf
failregex = ^%(_apache_error_client)s Kopano WebApp user: .+?(?=:): authentication failure at MAPI

ignoreregex =

Der erste Teil wertet die Clientinformationen aus, danach folgt ein normaler String Kopano Webapp user: gefolgt von einer regular expression .+?(?=:) die besagt, dass alle folgenden Zeichen bis zum nächsten Doppelpunkt als Übereinstimmung angesehen werden.

Schließlich folgt ein weiterer Doppelpunkt, der wieder als String zu sehen ist, gefolgt von weiterem Text, der dem Text im Logfile entspricht.

Update – So gehts auch: 

failregex =  ^%(_apache_error_client)s Kopano WebApp user:.* authentication failure at MAPI

Somit ist man nicht mehr auf den Doppelpunkt und die in der ersten Variante angegebene Verrenkung angewiesen.

Die Datei selbst wird unter  /etc/fail2ban/filter.d/kopano-webapp-login.conf gespeichert.

Den Filter aktivieren

Im Verzeichnis /etc/fail2ban/ ist die Datei jail.local um folgende Zeilen zu erweitern:

[kopano-webapp]
enabled = true
port = https
filter = kopano-webapp-login
logpath = /var/log/apache2/kopano_ssl_error.log

Fail2ban Bann oder fail?

Ob es wirklich richtig bannt, ist im Logfile schnell erkannt.

2017-03-09 19:20:56,586 fail2ban.actions[26156]: WARNING [kopano-webapp] Ban xx.119.xxx.141

Scheint zu klappen!

Verbesserungsvorschläge werden gerne angenommen. 😉

Windows 10 und WSUS – Server 2012: Produkte und Klassifizierungen

Heute gibts ausnahmsweise mal wieder ein Windowsthema.

Wir befinden uns auf dem WSUS – Server 2012 und wollen die Produktkategorien für Windows 10 wählen, für die der Server die Updates von MS holen soll.

Gar kein Problem! Mal „schnell“ durchgeklickt und schon kann man sich wieder den wichtigen Dingen des Adminlebens widmen.

Wenn man sich dann allerdings folgendes anschaut…

und vielleicht noch dazu nicht permanent mit der Thematik der verschiedenen Zweige Releases und Releasevarianten beschäftigt ist, hat man womöglich ein Problem damit, die relevanten Windows 10 Einträge auszuwählen.

Es gibt einige Beiträge zu diesem Thema:

Es scheint jedenfalls so zu sein, dass sehr viele Admins nicht zu hundert Prozent sicher sind, welche Häkchen hier die richtigen sind.

Die Informationen aus den Artikeln, ergeben für mich folgendes Bild:

  • Windows 10 and later drivers: Treiber für alle Windows 10 Versionen, die jedoch nur im normalen laufenden Betrieb installiert werden. Nicht aber, im Zuge eines Inplace Upgrades.
  • Windows 10 and later Upgrade & Servicing drivers: Treiber die auch im Zuge eines Dynamic Updates zum  Einsatz kommen. (Von einem Win 10 Build zum nächsten). Wird im Zuge eines Inplace Upgrades benötigt. Beinhaltet auch Treiber, die für spätere Win 10 Versionen gedacht sind!
  • Windows 10 Anniversary Update and later Servicing Drivers: Treiber die nur für die Version 1607 gelten. Es werden keine Treiber für spätere Upgrades vorgehalten. Die Treiberwartung für die aktuelle Windowsversion (1607) ist aber inkludiert.
  • Windows 10 Anniversary Update and Later Upgrade & Servicing Drivers: Treiber die auch im Zuge eines Dynamic Updates zum  Einsatz kommen. (Von Build 1607 zum nächsten). Wird im Zuge eines Inplace Upgrades benötigt. Es werden auch Treiber für spätere Upgrades vorgehalten.
  • Windows 10 Anniversary Update Server and Later Servicing Drivers: Betrifft Server 2016
  • Windows 10 Dynamic Update: Beinhaltet Updates, die im Zuge eines Inplace-Upgrades (von einer Win 10 Version zur nächsten) benötigt werden könnten.
  • Windows 10 Feature On Demand: Korrespondiert mit den Programmen / Features, die unter Windows 10 nachinstalliert werden können, wobei die Installationsfiles in dem Fall vom WSUS-Server geholt werden. (wenn angehakt)
  • Windows 10 GDR-DU LP: Sprachpaket, welches bei einem dynamischen Update (Inplace Upgrade) Verwendung findet und nur für das General Distribution Release gilt.
  • Windows 10 GDR-DU: Updates die nur verwendet werden, wenn ein dynamisches Update eines GDR Version durchgeführt wird.
  • Windows 10 Language Interface Packs: Für mich unklar, ob notwendig?
  • Windows 10 Language Packs: Für mich unklar, ob notwendig?
  • Windows 10 LTSB: Gilt nur, wenn Long Term Servicing Branch eingesetzt wird. Also ab Windows 10 Enterprise!

Verwirrung…?!

Vielleicht geht es ja nur mir so, aber ich finde das alles sehr kompliziert.

Der WSUS ist meiner Meinung nach ein hochwichtiges Instrument, um Windows Clients im Unternehmensnetzwerk aktuell halten zu können. Deshalb sehe ich es als essentiell an, dass es hier klar zu erkennende Strukturen gibt.

Ach wäre da doch nur eine wenig mehr „apt-get Infrastruktur“ dahinter…

Fazit (und das ist nur MEINE Meinung)

Mit der LTSB-Branch hat man als Firma einfach mehr Freude, muss aber natürlich auch tiefer in die Tasche greifen – Stichwort: Windows 10 Enterprise + Volumenlizenzvertrag.

Die Pro-Version und niedriger scheint zur Spielwiese degradiert zu werden.

Ich lehne mich mal weit aus dem Fenster und sage, dass die PRO Version bald nicht mehr mit „Firmeneinsatz“ in Verbindung gebracht werden wird.

Zeit für „Linux@Desktop!“ 😛

 

 

 

1 2 3 4 5 70