Déployer Mailu sur Kubernetes : Guide étape par étape
Mailu est un serveur de messagerie conteneurisé optimisé pour Docker et Kubernetes. Contrairement aux configurations traditionnelles Postfix et Dovecot qui demandent un paramétrage lourd, Mailu se déploie facilement, idéal pour les labs maison ou les environnements de test. Ce guide vous accompagne pour installer Mailu dans un cluster Kubernetes avec Helm, configurer les politiques réseau, les enregistrements DNS et les mesures de sécurité.
Préparer l'infrastructure et le DNS
Avant d'installer Mailu, réalisez ces étapes essentielles d'infrastructure. D'abord, procurez-vous un domaine avec gestion DNS — prenons par exemple votre-domaine.com. Ensuite, obtenez une IP publique statique (ex. : 1.2.3.4) avec un enregistrement PTR configuré par votre FAI. Sans PTR, les grands fournisseurs de messagerie marqueront vos emails comme spam.
Enregistrements DNS clés à créer :
- Enregistrement A : mail.votre-domaine.com → 1.2.3.4
- Enregistrement MX : @ → mail.votre-domaine.com
Après configuration, vérifiez avec nslookup 1.2.3.4 — cela doit résoudre vers mail.votre-domaine.com, confirmant que votre PTR est correct.
Configurer Kubernetes et déployer Mailu
Pour la sécurité, isolez le serveur de messagerie dans son propre namespace afin de limiter les risques — nous utiliserons dmz-mail ici. Appliquez immédiatement une politique réseau pour bloquer par défaut tout trafic entrant et sortant, en autorisant seulement les ports essentiels.
Exemple de politique réseau (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
Ensuite, ajoutez le dépôt Helm de Mailu et créez un fichier values.yaml. Les paramètres clés incluent votre domaine, fuseau horaire, compte admin initial, options de stockage et interfaces réseau. Adaptez la StorageClass à votre cluster.
Paramètres essentiels de values.yaml :
hostnames: ["mail.votre-domaine.com"]domain: votre-domaine.cominitialAccountpour la configuration admin- Configs PostgreSQL ou MariaDB
- Paramètres de persistance (ex. :
size: 50Gi) - Configuration Ingress avec annotations cert-manager
- Frontend en type LoadBalancer
Installez le chart avec :
helm install mailu mailu/mailu -n dmz-mailu --values mailu_values.yaml
Résoudre les problèmes TLS et configurations avancées
Mailu peut rencontrer des erreurs SSL avec Ingress à cause de particularités TLS. Une solution consiste à créer un Service LoadBalancer dédié pour le frontend, déplaçant l'interface web sur sa propre IP et évitant les conflits TLS d'Ingress.
Exemple de manifeste (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
Appliquez-le, puis pointez mail-local.votre-domaine.com vers cette IP dans votre DNS local ou fichier hosts. Redirigez aussi le port 25 depuis votre passerelle vers l'IP LoadBalancer indiquée dans values.yaml pour les mails entrants.
Configurer DKIM, DMARC et SPF
Pour assurer la délivrabilité vers Gmail ou Outlook, mettez en place DKIM, DMARC et SPF. Ces protocoles d'authentification valident la légitimité de l'expéditeur et évitent les dossiers spam.
Étapes de configuration :
- Dans l'interface web admin de Mailu, allez à Administration → Domaines mail → sélectionnez votre domaine → Modifier.
- Cliquez Générer les clés en haut à droite.
- Copiez les enregistrements TXT pour DKIM, DMARC et SPF dans le DNS de votre domaine.
- Attendez la propagation (jusqu'à 48 heures).
Validez avec des outils comme mxtoolbox.com. Testez en envoyant vers des adresses externes — les premiers emails peuvent atterrir en spam, vérifiez les indésirables.
Optimisation des performances et de la sécurité
Mailu inclut des composants optionnels que vous pouvez désactiver pour économiser des ressources ou simplifier. ClamAV (antivirus), OleTools (scanner Office) et Tika (gestion métadonnées) ne sont pas indispensables pour les fonctions mail de base — passez-les à false dans values.yaml.
Recommandé pour un usage domestique :
clamav: falseoletools: falsetika: false
Gardez Rspamd (filtre antispam) activé — il gère efficacement mails entrants et sortants.
Points clés à retenir
- Un enregistrement PTR sur votre IP statique est crucial pour une délivrabilité fiable.
- Namespace dédié et politiques réseau renforcent la sécurité du déploiement.
- Utilisez un Service LoadBalancer séparé pour résoudre les problèmes TLS Ingress.
- DKIM, DMARC et SPF sont indispensables pour les envois externes.
- Désactivez les composants non essentiels comme ClamAV pour réduire la consommation de ressources.
— Editorial Team
Aucun commentaire pour le moment.