Mailu-Mailserver auf Kubernetes bereitstellen: Schritt-für-Schritt-Anleitung
Mailu ist ein containerisierter Mailserver, der speziell für Docker- und Kubernetes-Umgebungen optimiert ist. Im Gegensatz zu klassischen Postfix- und Dovecot-Setups, die aufwendige Konfigurationen erfordern, lässt sich Mailu mit minimalem Aufwand deployen – ideal für Homelabs und Testumgebungen. Diese Anleitung führt Sie durch die Installation von Mailu in einem Kubernetes-Cluster mit Helm, inklusive Netzwerkrichtlinien, DNS-Einträge und Sicherheitsmaßnahmen.
Infrastruktur und DNS vorbereiten
Bevor Sie Mailu installieren, richten Sie die grundlegende Infrastruktur ein. Zuerst benötigen Sie eine Domain mit DNS-Verwaltung – für dieses Beispiel verwenden wir beispiel-domain.de. Zweitens sichern Sie sich eine statische öffentliche IP (z. B. 1.2.3.4) mit einem Reverse-DNS-Eintrag (PTR-Record), den Ihr Provider einrichtet. Ohne PTR-Record landen Ihre E-Mails bei großen Anbietern wie Gmail direkt im Spam.
Wichtige DNS-Einträge anzulegen:
- A-Record: mail.beispiel-domain.de → 1.2.3.4
- MX-Record: @ → mail.beispiel-domain.de
Nach der Einrichtung prüfen Sie mit nslookup 1.2.3.4 – es sollte zu mail.beispiel-domain.de auflösen und Ihren PTR-Record bestätigen.
Kubernetes einrichten und Mailu deployen
Aus Sicherheitsgründen isolieren Sie den Mailserver in einem eigenen Namespace, um Risiken zu minimieren – hier verwenden wir dmz-mailu. Legen Sie sofort eine Netzwerkrichtlinie an, die allen eingehenden und ausgehenden Traffic standardmäßig blockiert und nur notwendige Ports freigibt.
Beispiel-Netzwerkrichtlinie (network-policy-dmz-mail.yaml):
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-dmz-mail-deny
namespace: dmz-mail
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-mailu-ports
namespace: dmz-mail
spec:
podSelector: {}
egress:
- to:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: kube-system
ports:
- protocol: UDP
port: 53
- protocol: TCP
port: 25
- protocol: TCP
port: 465
Fügen Sie als Nächstes das Mailu-Helm-Repository hinzu und erstellen Sie eine values.yaml-Datei. Wichtige Einstellungen umfassen Ihre Domain, Zeitzone, initiales Admin-Konto, Speicheroptionen und Netzwerkschnittstellen. Passen Sie die StorageClass an Ihr Cluster an.
Kernparameter in values.yaml:
hostnames: ["mail.beispiel-domain.de"]domain: beispiel-domain.deinitialAccountfür die Admin-Einrichtung- PostgreSQL- oder MariaDB-Konfigs
- Persistenz-Einstellungen (z. B.
size: 50Gi) - Ingress-Konfig mit cert-manager-Annotationen
- Frontend als LoadBalancer-Typ
Installieren Sie das Chart mit:
helm install mailu mailu/mailu -n dmz-mailu --values mailu_values.yaml
TLS-Probleme beheben und erweiterte Konfiguration
Mailu stößt bei Ingress oft auf SSL-Fehler durch TLS-Spezifika. Eine Lösung ist ein dedizierter LoadBalancer-Service für das Frontend, der die Weboberfläche auf eine eigene IP auslagert und Ingress-TLS-Konflikte umgeht.
Beispiel-Manifest (svc-mailu-front-web.yaml):
apiVersion: v1
kind: Service
metadata:
name: svc-mailu-front-web
namespace: dmz-mail
spec:
externalTrafficPolicy: Local
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
app.kubernetes.io/component: front
app.kubernetes.io/instance: mailu
app.kubernetes.io/name: mailu
type: LoadBalancer
loadBalancerIP: 192.168.10.201
Wenden Sie es an, dann weisen Sie mail-local.beispiel-domain.de diese IP in Ihrer lokalen DNS oder hosts-Datei zu. Leiten Sie außerdem Port 25 vom Gateway zur loadBalancerIP in values.yaml für eingehende Mails weiter.
DKIM, DMARC und SPF konfigurieren
Für zuverlässige Zustellung bei Gmail oder Outlook richten Sie DKIM, DMARC und SPF ein. Diese Authentifizierungsprotokolle bestätigen die Echtheit des Absenders und halten E-Mails aus dem Spamordner.
Schritte:
- Im Mailu-Admin-Webinterface zu Administration → Mail-Domains → Domain auswählen → Bearbeiten.
- Schlüssel generieren oben rechts klicken.
- TXT-Records für DKIM, DMARC und SPF in die DNS Ihrer Domain kopieren.
- Auf Propagation warten (bis zu 48 Stunden).
Validieren Sie mit Tools wie mxtoolbox.com. Testen Sie durch Versand an externe Adressen – erste Mails landen ggf. im Spam, prüfen Sie Junk-Ordner.
Performance- und Sicherheitsoptimierung
Mailu enthält optionale Komponenten, die Sie deaktivieren können, um Ressourcen zu sparen oder die Einrichtung zu vereinfachen. ClamAV (Antivirus), OleTools (Office-Dateiscanner) und Tika (Metadaten-Handler) sind für Kern-Mailfunktionen nicht zwingend – setzen Sie sie in values.yaml auf false.
Empfohlen für Heimnutzung:
clamav: falseoletools: falsetika: false
Rspamd (Spamfilter) behalten Sie aktiviert – es filtert eingehende und ausgehende Mails effektiv.
Wichtige Erkenntnisse
- PTR-Record für die statische IP ist essenziell für zuverlässige Zustellung.
- Separater Namespace und Netzwerkrichtlinien erhöhen die Sicherheit.
- Separater LoadBalancer-Service löst Ingress-TLS-Probleme.
- DKIM, DMARC und SPF sind Pflicht für externe Zustellung.
- Nicht benötigte Komponenten wie ClamAV deaktivieren, um Ressourcen zu sparen.
— Editorial Team
Noch keine Kommentare.