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

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.
- Login: Verwende die Standardanmeldeinformationen (
admin
/admin
), um dich anzumelden. - 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:
- Mobilgeräte: Richte ein neues E-Mail-Konto auf deinem Gerät ein und verwende die ActiveSync-Einstellungen.
- 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
odertar
. - 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
undvmstat
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:
- 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.
- Kopano: Ein direkter Nachfolger von Zarafa, der sich auf Kollaboration und Messaging spezialisiert hat.
- 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.
- OX App Suite: Bietet eine moderne, webbasierte Oberfläche und ist in der Open-Source-Community weit verbreitet.
- 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.