Desplegar Mailu en Kubernetes: Guía paso a paso
Mailu es un servidor de correo contenedorizado optimizado para entornos Docker y Kubernetes. A diferencia de las configuraciones tradicionales de Postfix y Dovecot que requieren ajustes pesados, Mailu se despliega con un esfuerzo mínimo, ideal para laboratorios caseros y entornos de pruebas. Esta guía te lleva de la mano para instalar Mailu en un clúster de Kubernetes con Helm, configurar políticas de red, registros DNS y medidas de seguridad.
Preparar la infraestructura y DNS
Antes de instalar Mailu, completa estos pasos esenciales de infraestructura. Primero, necesitas un dominio con capacidades de gestión DNS; en este ejemplo, usaremos tudominio.com. Segundo, asegura una IP pública estática (p. ej., 1.2.3.4) con un registro inverso (PTR) configurado por tu proveedor de internet. Sin un registro PTR, los principales proveedores de correo marcarán tus emails como spam.
Registros DNS clave a crear:
- Registro A: mail.tudominio.com → 1.2.3.4
- Registro MX: @ → mail.tudominio.com
Tras la configuración, verifica con nslookup 1.2.3.4 — debe resolver a mail.tudominio.com, confirmando que tu registro PTR está correcto.
Configurar Kubernetes y desplegar Mailu
Por seguridad, aísla el servidor de correo en su propio namespace para minimizar riesgos — aquí usaremos dmz-mailu. Aplica una política de red de inmediato para bloquear todo el tráfico entrante y saliente por defecto, permitiendo solo los puertos esenciales.
Ejemplo de política de red (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
A continuación, añade el repositorio Helm de Mailu y crea un archivo values.yaml. Configuraciones clave: tu dominio, zona horaria, cuenta admin inicial, opciones de almacenamiento e interfaces de red. Ajusta la StorageClass a la de tu clúster.
Parámetros principales de values.yaml:
hostnames: ["mail.tudominio.com"]domain: tudominio.cominitialAccountpara la configuración admin- Configs de PostgreSQL o MariaDB
- Ajustes de persistencia (p. ej.,
size: 50Gi) - Configuración de Ingress con anotaciones de cert-manager
- Frontend como tipo LoadBalancer
Instala el chart con:
helm install mailu mailu/mailu -n dmz-mailu --values mailu_values.yaml
Solucionar problemas TLS y configuración avanzada
Mailu puede tener errores SSL con Ingress debido a peculiaridades en el manejo de TLS. Una solución es un Service LoadBalancer dedicado para el frontend, moviendo la interfaz web a su propia IP y evitando conflictos de TLS en Ingress.
Ejemplo de manifiesto (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
Aplícalo y apunta mail-local.tudominio.com a esa IP en tu DNS local o archivo hosts. También redirige el puerto 25 desde tu gateway a la loadBalancerIP de values.yaml para el correo entrante.
Configurar DKIM, DMARC y SPF
Para asegurar la entrega en servicios como Gmail u Outlook, configura DKIM, DMARC y SPF. Estos protocolos de autenticación verifican la legitimidad del remitente y mantienen los emails fuera de las carpetas de spam.
Pasos de configuración:
- En la interfaz web admin de Mailu, ve a Administración → Dominios de correo → selecciona tu dominio → Editar.
- Haz clic en Generar claves en la esquina superior derecha.
- Copia los registros TXT para DKIM, DMARC y SPF en el DNS de tu dominio.
- Espera la propagación (hasta 48 horas).
Valida con herramientas como mxtoolbox.com. Prueba enviando a direcciones externas — los primeros emails podrían ir a spam, así que revisa las carpetas de correo no deseado.
Optimización de rendimiento y seguridad
Mailu incluye componentes opcionales que puedes desactivar para ahorrar recursos o simplificar la instalación. ClamAV (antivirus), OleTools (escáner de archivos Office) y Tika (gestor de metadatos) no son esenciales para las funciones básicas de correo — configúralos como false en values.yaml.
Recomendado para uso doméstico:
clamav: falseoletools: falsetika: false
Mantén Rspamd (filtro antispam) activado — maneja eficazmente el correo entrante y saliente.
Lecciones clave
- Un registro PTR en tu IP estática es crucial para una entrega fiable.
- Namespace dedicado y políticas de red mejoran la seguridad del despliegue.
- Usa un Service LoadBalancer separado para resolver problemas de TLS en Ingress.
- DKIM, DMARC y SPF son imprescindibles para envíos externos.
- Desactiva componentes no esenciales como ClamAV para reducir el uso de recursos.
— Editorial Team
Aún no hay comentarios.