Nasazení poštovního serveru Mailu v Kubernetes: praktický průvodce
Mailu je kontejnerizovaný poštovní server optimalizovaný pro prostředí Docker a Kubernetes. Na rozdíl od tradičních řešení založených na Postfix a Dovecot vyžaduje jeho nasazení minimální úsilí při konfiguraci, což ho činí atraktivním pro domácí laboratoře a testovací prostředí. Tento průvodce popisuje proces instalace Mailu v clusteru Kubernetes s využitím Helm, konfiguraci síťových politik, DNS záznamů a zajištění bezpečnosti.
Příprava infrastruktury a DNS
Před instalací Mailu je nutné provést několik povinných kroků přípravy infrastruktury. Za prvé je potřeba mít doménu s možností správy DNS záznamů. Jako příklad se používá doména yourdomain.ru. Za druhé je nezbytná "bílá" IP adresa (např. 1.2.3.4), pro kterou musí poskytovatel internetu nastavit reverzní (PTR) záznam. Bez PTR mnoho poštovních služeb odmítne zprávy jako spam.
Klíčové DNS záznamy, které je třeba vytvořit:
- Záznam typu A: mail.yourdomain.ru → 1.2.3.4
- MX záznam: @ → mail.yourdomain.ru
Po nastavení DNS ověřte, že příkaz nslookup 1.2.3.4 vrací mail.yourdomain.ru. To potvrdí správnost PTR záznamu.
Konfigurace Kubernetes a nasazení Mailu
Pro izolaci poštovního serveru a minimalizaci potenciálních bezpečnostních hrozeb se doporučuje vytvořit samostatný namespace. V tomto příkladu se používá dmz-mailu. Ihned po vytvoření namespace aplikujte síťovou politiku, která blokuje veškerý příchozí a odchozí provoz ve výchozím nastavení, povoluje pouze potřebné porty.
Příklad síťové politiky (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
Dále přidejte repozitář Mailu do Helm a připravte soubor values.yaml. Minimální konfigurace zahrnuje nastavení domény, časového pásma, počátečního účtu správce, parametrů úložiště a síťových rozhraní. Je důležité správně specifikovat StorageClass odpovídající vaší infrastruktuře.
Základní parametry values.yaml:
hostnames: ["mail.yourdomain.ru"]domain: yourdomain.ruinitialAccountpro vytvoření správce- Nastavení PostgreSQL nebo MariaDB
- Parametry persistence (např.
size: 50Gi) - Konfigurace Ingress s anotacemi pro cert-manager
- Nastavení frontendu s typem LoadBalancer
Po nastavení values.yaml proveďte instalaci chartu:
helm install mailu mailu/mailu -n dmz-mailu --values mailu_values.yaml
Řešení problémů s TLS a další konfigurace
Kvůli specifikám práce Mailu s TLS může dojít k chybě SSL při použití Ingress. Jako alternativní řešení se navrhuje vytvořit samostatný Service typu LoadBalancer pro frontend. To umožňuje vystavit webové rozhraní na samostatnou IP adresu, čímž se vyhne konfliktům s ukončením TLS na Ingress.
Příklad manifestu 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
Po aplikaci tohoto Service je nutné spojit záznam mail-local.yourdomain.ru s odpovídající IP adresou v lokálním DNS nebo souboru hosts. Také je třeba přesměrovat port 25 ze síťové brány na loadBalancerIP uvedený v values.yaml, aby se zajistil příjem příchozí pošty.
Nastavení DKIM, DMARC a SPF
Pro zajištění doručení zpráv na externí poštovní služby (jako je Gmail nebo Seznam.cz) je nutné nastavit DKIM, DMARC a SPF. Tyto autentizační mechanismy pomáhají potvrdit legitimitu odesílatele a snižují pravděpodobnost zařazení zpráv do spamu.
Postup nastavení:
- Ve webovém rozhraní správce Mailu přejděte do sekce Administration → Mail Domains → vyberte vaši doménu → Upravit.
- Klepněte na Generate Keys v pravém horním rohu.
- Zkopírujte vygenerované TXT záznamy pro DKIM, DMARC a SPF do DNS vaší domény.
- Počkejte na rozšíření DNS záznamů (může trvat až 48 hodin).
Správnost nastavení ověřte pomocí nástrojů jako mxtoolbox.com. Po úspěšném ověření můžete testovat odesílání zpráv na externí adresy. První zprávy mohou skončit ve složce "Spam", proto se doporučuje kontrolovat nevyžádanou poštu.
Optimalizace výkonu a zabezpečení
Mailu zahrnuje několik dalších komponent, které lze vypnout pro úsporu zdrojů nebo zjednodušení konfigurace. Například ClamAV (antivirus), OleTools (analyzátor kancelářských souborů) a Tika (zpracovatel metadat) nejsou pro základní fungování poštovního serveru povinné. Lze je vypnout v values.yaml nastavením příslušných parametrů na false.
Doporučená nastavení pro domácí použití:
clamav: falseoletools: falsetika: false
Rspamd (systém filtrování spamu) by měl zůstat zapnutý, protože zpracovává příchozí a odchozí poštu.
Co je důležité
- Přítomnost PTR záznamu pro "bílou" IP adresu je kritická pro doručení pošty.
- Použití samostatného namespace a síťových politik zvyšuje bezpečnost nasazení.
- Problémy s TLS mezi Ingress a Mailu lze řešit prostřednictvím samostatného Service typu LoadBalancer.
- Nastavení DKIM, DMARC a SPF je povinné pro odesílání zpráv na externí poštovní služby.
- Vypnutí volitelných komponent (ClamAV, OleTools, Tika) snižuje spotřebu zdrojů.
— Editorial Team
Zatím žádné komentáře.