Exchange Server Ersatz unter Linux

Wenn man eine leistungsfähige Groupware auf Linux sucht, die Microsoft Exchange ersetzen kann, sind die folgenden genannten Lösungen – grommunio, Kopano, OX App Suite, SOGo und Nextcloud – allesamt sehr gute Optionen. Jede dieser Lösungen bietet umfangreiche Funktionen für E-Mail, Kalender, Kontakte, Aufgaben und mehr.

Neben diesen gibt es noch Zimbra Collaboration Suite und EGroupware, die ebenfalls starke Alternativen darstellen. Zimbra ist besonders bekannt für seine umfassenden Funktionen und einfache Verwaltung, während EGroupware eine modulare und erweiterbare Plattform bietet.

Im Folgenden beschreibe ich einmal die Installation, Einrichtung und Konfiguration von grommunio (früher bekannt als grammmm), da es eine moderne und umfassende Lösung ist, die alle wichtigen Exchange-Funktionen abdeckt, und auch mit ActiveSync und anderen Exchange-Protokollen anstandslos kompatibel ist.

1. Voraussetzungen

  • Betriebssystem: Ubuntu 20.04/22.04 oder CentOS/RHEL 7/8 (andere Distributionen sind ebenfalls möglich, aber diese bieten aktuell die stabilsten Pakete).
  • Prozessor: Mindestens 2 vCPUs.
  • Arbeitsspeicher: Mindestens 4 GB RAM besser 16 GB.
  • Festplattenspeicher: Abhängig von der Anzahl der Benutzer, mindestens 20 GB für das System und zusätzliche Kapazität für Daten.
  • Statische IP-Adresse: Für die reibungslose Funktion der Dienste ist eine statische IP-Adresse unbedingt erforderlich.
  • Internetverbindung: Für Updates und das Herunterladen von Abhängigkeiten.

2. Installation von grommunio

Grommunio Groupware als Exchange Ersatz

a. System vorbereiten

Bevor man mit der Installation beginnt, sollte das System aktualisiert haben und alle notwendigen Abhängigkeiten installiert werden:

sudo apt update && sudo apt upgrade -y
sudo apt install wget curl gnupg2 -y

b. grommunio-Repository hinzufügen und installieren

Für Ubuntu 20.04:

wget -qO- https://packages.grommunio.com/grommunio/gpg.key | sudo apt-key add -
echo "deb https://packages.grommunio.com/grommunio/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/grommunio.list
sudo apt update
sudo apt install grommunio gromox grommunio-admin grommunio-web grommunio-sync -y

Für CentOS 7:

rpm --import https://packages.grommunio.com/grommunio/gpg.key
cat <<EOF > /etc/yum.repos.d/grommunio.repo
[grommunio]
name=Grommunio - $basearch
baseurl=https://packages.grommunio.com/grommunio/centos7
gpgcheck=1
enabled=1
gpgkey=https://packages.grommunio.com/grommunio/gpg.key
EOF

sudo yum install grommunio gromox grommunio-admin grommunio-web grommunio-sync -y

c. grommunio-Dienste starten

Nach der Installation müssen die Dienste gestartet sein um konfiguriert werden zu können.

sudo systemctl enable grommunio gromox grommunio-admin grommunio-web
sudo systemctl start grommunio gromox grommunio-admin grommunio-web

Sicherstellen, dass die Dienste ordnungsgemäß laufen:

sudo systemctl status grommunio gromox grommunio-admin grommunio-web

d. Initiale Web-Konfiguration

Grommunio bietet eine Weboberfläche für die Verwaltung, die unter https://<deine-server-ip> zugänglich ist.

  1. Login: Verwende die Standardanmeldeinformationen (admin / admin), um dich anzumelden.
  2. Ersteinrichtung: Konfiguriere die Domain, E-Mail-Einstellungen und andere notwendige Dienste.

3. Konfiguration von grommunio

b. DNS-Einstellungen

Für die korrekte Funktion müssen die DNS-Einträge für die Domain konfiguriert werden:

  • MX-Records: Zeigen auf deinen Grommunio-Server.(z. B. mail.example.com)
  • A-Records: Für Webmail und andere Dienste. (z. B. mail.example.com)
  • SRV-Records: Für Autodiscover-Dienste, um die automatische Einrichtung von E-Mail-Clients zu unterstützen. (optional, aber empfohlen z. B. mail.example.com)

Beispiel für die resolv.conf:

sudo nano /etc/resolv.conf

Füge folgendes hinzu:

nameserver 127.0.0.1

c. SSL/TLS-Konfiguration

Für eine sichere Kommunikation sollte man SSL/TLS-Zertifikate einrichten. Dies kann man mit Let's Encrypt tun. Für einen Einsatz in einer Firma emppfehle ich aber ein kostenpflichtiges Zertifikat zu erlangen:

sudo apt install certbot
sudo certbot certonly --nginx -d mail.example.com -d example.com

Die Zertifikate werden in der Regel unter /etc/letsencrypt/live/ gespeichert.

Um automatische Zertifikatserneuerungen für den Server zu konfigurieren, insbesondere wenn man Let's Encrypt-Zertifikate verwendet, sollte man sicherstellen, dass der Zertifikatserneuerungsprozess automatisiert ist und dass der Webserver nach einer erfolgreichen Erneuerung neu geladen wird, um das neue Zertifikat zu übernehmen.

1. Installation von Certbot

Zunächst musst du sicherstellen, dass Certbot installiert ist. Dies ist das Tool, das Let's Encrypt verwendet, um SSL/TLS-Zertifikate auszustellen und zu erneuern.

Für Ubuntu:

sudo apt update
sudo apt install certbot

Für CentOS:

sudo yum install epel-release
sudo yum install certbot
2. Erstellen eines Zertifikats

Wenn du noch kein Zertifikat hast, kannst du eines mit Certbot anfordern:

Für Nginx:

sudo certbot --nginx

Für Apache:

sudo certbot --apache
3. Automatische Erneuerung konfigurieren

Certbot richtet automatisch einen Cron-Job ein, der zweimal täglich ausgeführt wird, um zu prüfen, ob Zertifikate erneuert werden müssen. Du kannst dies überprüfen mit:

sudo systemctl list-timers | grep certbot

In den meisten Distributionen wird bereits eine automatische Erneuerung eingerichtet. Um sicherzustellen, dass der Webserver nach einer Zertifikatserneuerung neu geladen wird, füge einen Hook zur Certbot-Konfiguration hinzu.

4. Hooks für automatische Erneuerung konfigurieren

Certbot kann nach einer erfolgreichen Erneuerung einen Befehl ausführen. Dies ist nützlich, um den Webserver neu zu laden.

Erstelle oder bearbeite eine Konfigurationsdatei in /etc/letsencrypt/renewal-hooks/deploy/.

sudo nano /etc/letsencrypt/renewal-hooks/deploy/reload_webserver.sh

Füge den folgenden Inhalt hinzu:

Für Nginx:

#!/bin/bash
nginx -t && systemctl reload nginx

Für Apache:

#!/bin/bash
apachectl configtest && systemctl reload apache2

Stelle sicher, dass das Skript ausführbar ist:

sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload_webserver.sh

5. Manuelle Tests

Du kannst den Erneuerungsprozess manuell testen, um sicherzustellen, dass alles ordnungsgemäß funktioniert:

sudo certbot renew --dry-run

Dieser Befehl simuliert eine Erneuerung und führt alle entsprechenden Hooks aus, ohne tatsächlich das Zertifikat zu erneuern.

6. Log-Dateien prüfen

Überprüfe die Certbot-Logs, um sicherzustellen, dass die Erneuerungen erfolgreich durchgeführt wurden:

sudo less /var/log/letsencrypt/letsencrypt.log

7. Zusätzliche Konfiguration (optional)

Falls man mehrere Domains oder Subdomains verwendet, kann man sicherstellen, dass sie alle durch einen einzigen Certbot-Befehl erneuert werden. Man kann dazu die Domains beim ursprünglichen Anfordern des Zertifikats angeben:

sudo certbot certonly --nginx -d example.com -d www.example.com -d mail.example.com

Die automatische Zertifikatserneuerung ist somit abgeschlossen um eine kontinuierliche und sichere HTTPS-Verbindung auf dem Server zu etablieren.

c. grommunio-Domänen und Benutzer einrichten

Logge dich in die Grommunio Admin-Weboberfläche ein:

  • Domäne hinzufügen: Eine neue Domäne anlegen (example.com).
  • Benutzer erstellen: Neue Benutzer erstellen und ihnen Postfächer zuweisen.

Dazu gehen wir in der Weboberfläche auf Verwaltung > Domänen > Neue Domäne.

d. E-Mail-Routing und Postfachkonfiguration

Konfiguriere das E-Mail-Routing und stelle sicher, dass Postfächer korrekt eingerichtet sind. Dies erfolgt über die Weboberfläche:

  • Alias hinzufügen: Für jede E-Mail-Adresse können Aliase eingerichtet werden.
  • Weiterleitungen einrichten: Optional können Weiterleitungen und Filter eingerichtet werden.

4. Verwaltung von Benutzern und Gruppen

a. Benutzer hinzufügen

In der Web-Oberfläche kannst du neue Benutzer hinzufügen. Gehe zu Benutzerverwaltung und klicke auf Neuen Benutzer erstellen.

b. Gruppen erstellen

Ähnlich wie bei Benutzern kannst du Gruppen für das gemeinsame Arbeiten erstellen, um Kalendereinträge, Kontakte und Aufgaben zu teilen.

5. Synchronisation mit Mobilgeräten und Outlook

Grommunio unterstützt ActiveSync, was bedeutet, dass man seine E-Mails, Kontakte und Kalender einfach mit mobilen Geräten und Outlook synchronisieren kann.

a. ActiveSync einrichten

Grommunio unterstützt ActiveSync für die Synchronisation mit Mobilgeräten und Outlook:

  1. Mobilgeräte: Richte ein neues E-Mail-Konto auf deinem Gerät ein und verwende die ActiveSync-Einstellungen.
  2. Outlook: In Outlook ein neues Exchange-Konto einrichten und die Autodiscover-Funktion nutzen.

b. Autodiscover konfigurieren

Autodiscover vereinfacht die Einrichtung von E-Mail-Clients erheblich. Stelle sicher, dass die DNS-Einträge und SRV-Records korrekt sind, damit Autodiscover funktioniert.

6. Backup und Wiederherstellung

Für die Sicherung der Grommunio-Installation sollte man regelmäßige Backups der Datenbank, der Konfigurationsdateien und der E-Mail-Postfächer durchführen. Dies kann mit Standard-Tools wie rsync, mysqldump und ähnlichen Tools recht bequem automatisiert werden.

a. Regelmäßige Backups einrichten

  • MySQL/MariaDB: Sicherung der Datenbank mit mysqldump.
  • Konfigurationsdateien: Backups mit rsync oder tar.
  • Postfächer: Sicherung der Mailboxen, z.B. mittels doveadm backup.

Beispiel für ein MySQL-Dump:

mysqldump -u root -p grommunio_db > grommunio_db_backup.sql

b. Wiederherstellung

Im Falle eines Systemausfalls kann man dann die Backups wie folgt wiederherstellen:

  • Datenbank: mysql -u root -p grommunio_db < grommunio_db_backup.sql
  • Konfigurationsdateien: Einfach die gesicherten Dateien zurückkopieren.
  • Postfächer: Mittels doveadm oder ähnlichen Tools.

7. Erweiterungen und Plugins

Grommunio bietet eine flexible Plattform, die durch verschiedene Erweiterungen und Plugins angepasst werden kann. Über die Weboberfläche kannt man zusätzliche und nützliche Module hinzufügen, z. B. für Antivirus, Anti-Spam oder zusätzliche Kalenderfunktionen.

8. Monitoring und Wartung

a. Überwachung

Regelmäßige Überwachung des Systems ist wichtig, um die Leistung zu gewährleisten und mögliche Probleme frühzeitig zu erkennen:

  • Log-Dateien: Überprüfe regelmäßig die Logs unter /var/log/grommunio/ und /var/log/mail.log.
  • Systemüberwachung: Nutze Tools wie htop, iostat und vmstat zur Überwachung der Systemressourcen.

b. Automatische Updates

Konfiguriere dein System so, dass es regelmäßig Sicherheitsupdates erhält. Dies kann automatisiert werden, z.B. mit unattended-upgrades auf Ubuntu:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

Alternative Lösungen:

Neben grommunio gibt es noch andere Lösungen, die je nach Anwendungsfall ebenfalls interessant sein könnten:

  1. Zimbra Collaboration Suite: Eine sehr beliebte Open-Source-Groupware mit vielen Funktionen, ähnlich wie Grommunio, aber mit einer größeren Community und mehr verfügbaren Erweiterungen.
  2. Kopano: Ein direkter Nachfolger von Zarafa, der sich auf Kollaboration und Messaging spezialisiert hat.
  3. SOGo ist eine Open-Source-Groupware-Lösung, die E-Mail, Kalender, Kontakte und Aufgabenverwaltung bietet und sich als leistungsfähiger Ersatz für Microsoft Exchange eignet, insbesondere durch ihre Unterstützung für Web-, Desktop- und mobile Clients.
  4. OX App Suite: Bietet eine moderne, webbasierte Oberfläche und ist in der Open-Source-Community weit verbreitet.
  5. Nextcloud mit Groupware-Erweiterungen: Nextcloud ist vor allem für Dateisynchronisation bekannt, kann aber mit entsprechenden Apps (z.B. Mail, Kalender) zu einer umfassenden Groupware ausgebaut werden.

Dies ist mein Fazit

Grommunio ist eine leistungsfähige und moderne Alternative zu Microsoft Exchange, die alle wichtigen Groupware-Funktionen auf einer Linux-Plattform bereitstellt. Mit dieser Anleitung kann man ein voll funktionsfähiges Groupware-System auf einem Linux-Server einrichten, das E-Mails, Kalender, Kontakte und Aufgaben verwaltet und mit Mobilgeräten und Outlook synchronisiert werden kann. Die Installation und Einrichtung sind relativ einfach, und die umfangreichen Verwaltungs- und Synchronisationsmöglichkeiten machen es zu einer robusten Lösung für Unternehmen, die eine kosteneffiziente und offene Lösung suchen. Zimbra, Kopano und die OX App Suite bieten ebenfalls umfangreiche Funktionen, und Nextcloud ist besonders für diejenigen interessant, die eine flexible und erweiterbare Lösung bevorzugen.