Inhaltsverzeichnis
- Voraussetzungen
1.1 Hostsystem (z. B. Ubuntu/Debian mit LXC-Support)
1.2 Rootserver/VPS mit öffentlicher IP
1.3 DNS-Zugriff auf Mail-Domain - LXC-Container vorbereiten
2.1 Container erstellen
2.2 Netzwerkzugriff vialxcbr0
odermacvlan
2.3 Container absichern (Memory, CPU, Autostart) - Mailcow installieren
3.1 Git-Repository klonen
3.2.env
undmailcow.conf
anpassen (inkl. HTTP_BIND/HTTPS_BIND auf10.x.x.x
)
3.3 Docker & Docker Compose installieren
3.4 Mailcow starten - Reverse Proxy auf dem Host einrichten
4.1 Nginx oder Traefik auf dem Host
4.2 Portweiterleitung 80/443 an LXC:8080/8443
4.3 Let’s Encrypt-Zertifikate (ggf. automatisiert) - Firewall- und iptables-Konfiguration
5.1 UFW oder iptables-Regeln setzen
5.2 NAT-Regeln für Port 25, 587, 465 (SMTP) an Container weiterleiten
5.3 Regelpersistenz mitiptables-persistent
- DNS richtig konfigurieren
6.1 A- und MX-Records
6.2 SPF-Record
6.3 DKIM & DMARC
6.4 PTR-Record (Reverse DNS) - Testen & Debugging
7.1telnet
,curl
,openssl s_client
7.2docker compose logs
für einzelne Container
7.3doveadm
-Kommandos für Postfächer prüfen
7.4tcpdump
zur Netzwerkverfolgung - Typische Probleme & Lösungen
8.1 Mail kommt an, aber ist im Spam
8.2 SMTP von außen nicht erreichbar
8.3 Port 25 durch Provider blockiert
8.4 Posteingang im UI leer trotz erfolgreicher Zustellung
8.5 Konflikt mit anderen Diensten auf Port 443/80 - Best Practices für Produktivbetrieb
9.1 TLS-Härtung
9.2 Fail2Ban aktivieren
9.3 Backups (MySQL, Mailvolumes, Konfiguration)
9.4 Monitoring (z. B. mit Uptime Kuma, Prometheus) - Erweiterungen & Integrationen
10.1 Mailcow-API nutzen
10.2 Chatwoot- oder CRM-Systeme anbinden
10.3 Webmail-Weiterleitung oder Aliasdomains konfigurieren
1. Voraussetzungen
Ein funktionierender Mailcow-Server benötigt einige grundlegende Voraussetzungen. Diese betreffen sowohl die Infrastruktur als auch die Konfiguration deiner Domain. Nachfolgend findest du eine Übersicht der notwendigen Bedingungen:
1.1 Hostsystem
Das Hostsystem sollte ein aktuelles Linux-Betriebssystem mit LXC-Support sein. Empfohlen wird:
- Ubuntu 22.04 LTS oder neuer
- Debian 11 (Bullseye) oder neuer
- Installierte Pakete:
lxc
,lxd
,bridge-utils
,iptables
,ufw
- Konfiguration eines funktionierenden LXC-Netzwerks, z. B. über
lxcbr0
Hinweis: LXD kann separat installiert werden, sollte aber konfiguriert sein, um Container starten zu können. Du solltest wissen, wie man Container erstellt, startet und Netzwerkanbindungen prüft.
1.2 Rootserver oder leistungsfähiger VPS
Du benötigst einen Server mit öffentlicher IPv4-Adresse, auf dem du ohne Einschränkungen durch Firewalls oder NAT-Regeln Standard-Mailports (25, 465, 587, 993, 995, 443, 80) verwenden kannst.
Empfehlungen:
- mindestens 2 vCPU / 4 GB RAM
- 20–40 GB SSD
- Volle Root-Zugriffsrechte
- Zugriff auf UFW oder iptables
Wenn dein Provider Port 25 blockiert, ist der Empfang von E-Mails nicht möglich. Alternativen wie SMTP-Relays (nur für ausgehende Mails) helfen da nicht weiter.
1.3 DNS-Zugriff auf die Mail-Domain
Für den Mailserver benötigst du vollen Zugriff auf die DNS-Zone deiner Domain, da du folgende Einträge setzen musst:
- A-Record:
mail.domain.tld → <deine Server-IP>
- MX-Record:
domain.tld → mail.domain.tld (Prio: 10)
- PTR-Record: muss beim Hoster auf
mail.domain.tld
zeigen - SPF-Eintrag: z. B.
v=spf1 mx -all
- DKIM und DMARC-Einträge: werden von Mailcow bereitgestellt
Bei vielen DNS-Anbietern kannst du das über ein Webinterface verwalten. Falls du keine Kontrolle über die Zone hast, kann der Mailserver nicht korrekt betrieben werden.