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. 😉

Wieso eigentlich MS-Exchange

Immer wieder versuche ich mich in der Installation / den Betrieb von Opensource Groupware Lösungen. Einige Zeit hatte ich E-Groupware im Einsatz, wurde damit aber nie so richtig warm. Schließlich bin ich mehr oder weniger durch Zufall (genau genommen durch ein Synology NAS) auf Zarafa gestoßen.

„Naja, eine weitere Groupware, die vermutlich bei der Outlookanbindung schwächelt, oder die kein ActiveSync beherrscht“ dachte ich…

Die Installation auf einem Debiansystem ist auf server-wissen.de recht gut erklärt.

Sobald Zarafa läuft

…und das dauert in der Regel nicht lange – loggt man sich per Webaccess auf das System ein, setzt ein entsprechendes Passwort für den Admin und legt erste User an. Somit steht bereits die Terminplanerfunktionalität zur Verfügung. Um auch das Emailsystem in die Gänge zu bekommen, muss Postfix eingerichtet werden.

Bestehende POP3 Konten können bequem per Fetchmail abgeholt und in die jeweilige Usermailbox einsortiert werden. ACHTUNG: Werden Emails x-fach vom POP3 Server abgeholt, hilft oft das setzen des Paramenters uidl. Diesen Eintrag muss man in der /etc/fetchmailrc vornehmen. Er MUSS vor allen andren Parametern des Users stehen, sonst kann Fetchmail nicht starten.

Outlook oder auch ein anderer Mailclient kann ab hier an Zarafa angebunden werden.

Anmerkung: Wenn der Server produktiv eingesetzt werden soll, ist darauf zu achten, dass z.B. Postfix korrekt (möglichst sicher) konfiguriert wird! (Kein Openrelay!)

Und was ist mit meinem Smartphone?

Durch die Installation von Z-PUSH wird der Zarafa-Server ActiveSync fähig. Durch Z-PUSH kann das Smartphone mit dem Zarafa Server „sprechen“ und Daten austauschen. So funktioniert der Abgleich des Kalenders und auch das Synchronisieren anderer Daten perfekt.

Ja, aber ich will nicht alles zu Fuß konfigurieren!

Ist natürlich ein Argument. Auch hier kann einem geholfen werden. Abhilfe schafft der Collax Groupware Server. Die Software bietet eine grafische Oberfläche zur Konfiguration und macht somit alles sehr viel einfacher. Wer nun meint, dass dafür nur wenige Konfigurationsmöglichkeiten offen bleiben, der irrt. Die Konfigurationsoptionen sind vielfältig, können sogar selbst per Shell editiert werden (meiner Meinung nach nicht nötig!).  Sollte man dennoch per Texteditor eigenhändig die Configfiles anpassen, muss man im Hinterkopf behalten, dass die Scripts der GUI-Konfiguration  die eigenhändigen Änderungen überschreiben.

Der Collax Groupwareserver ist auch im kommerziellen Bereich für maximal 5 User kostenlos. Da diese Groupware auf Zarafa basiert, sind in der kostenfreien Version 3 Outlook-Connectoren enthalten. Sollten mehr User und somit eventuell auch Outlook-Connectoren notwendig werden, muss eine kostenpflichtige Aufrüstung erfolgen.

Fazit

Meiner persönlichen Meinung nach sind Zarafa bzw. Collax wirklich ernstzunehmende Alternativen zu MS Exchange. Natürlich können sie mit der Funktionsvielfalt eines Exchange Servers nicht mithalten, aber -mal ehrlich- wer nutzt ein Exchange im KMU Bereich vollständig aus?

Geht es nicht hauptsächlich um Kalender, Gruppenkalender, Kontakte, Email und die möglichst einfache Anbindung diverser Clients?

All das ist mit den beiden genannten Groupwarelösungen möglich!