Skip to main content

Mailserver Terminator

IT-Systemdokumentation
Mailcow mit zentralem Logging via Grafana / Loki / Promtail (UDP)

1. Übersicht & Zweck

Das System betreibt eine Mailserver-Umgebung auf Basis Mailcow für den Versand von Rechnungen und Lohnabrechnungen. Aufgrund der hohen Versandmenge ist die lückenlose Nachvollziehbarkeit von Zustellungen, Fehlern und Trends erforderlich. Zentralisierte Logs werden per UDP an Promtail geleitet, in Loki gespeichert und in Grafana visualisiert. Grafana ist ohne VPN erreichbar (öffentlicher Zugriff mit Härtung).

2. Hosting & Serverressourcen

AnbieterWebtropia (DE, ISO-27001 RZ)
CPU4 Kerne
RAM8 GB
Storage80 GB NVMe
RolleMailserver + Logging-Stack

3. Architektur & Datenfluss

  • Mailcow (Postfix, Dovecot, Rspamd) erzeugt Versand- und Statuslogs.
  • Promtail empfängt Logs per UDP (Syslog), labelt und pusht an Loki (HTTP).
  • Loki speichert Logs zeitbasiert und stellt Abfragen bereit.
  • Grafana visualisiert Kennzahlen & Status (Dashboards, Explore).

4. Verzeichnisse & Dateien

/opt/mailcow-dockerizedMailcow Docker-Umgebung
/opt/mailcow-dockerized/docker-compose.override.ymlEnthält UDP-Weiterleitung der Mailcow-Logs zu Promtail
/opt/obs-mailPromtail, Loki, Grafana (Stack)
/opt/obs-mail/loki_config.ymlLoki-Spezifikationen (Speicher, Index, Retention)

5. Netzwerk & Ports

DienstPort/ProtoZugriffHinweis
Mailcow Web-UI443/TCPInternTLS
Promtail Syslog1514/UDPNur internEingang der Logs
Loki API3100/TCPInternPush/Query
Grafana UI3000/TCPÖffentlichHärtung beachten (siehe §11)

6. Logging- & Monitoring-Konzept

  1. Mailcow erzeugt Versand-/Status-/Fehlerlogs.
  2. Weiterleitung per UDP → Promtail (Definition in docker-compose.override.yml).
  3. Promtail labelt, normalisiert und pusht via HTTP an Loki.
  4. Loki speichert zeitbasiert und bedient Abfragen.
  5. Grafana visualisiert (Dashboards, Explore, Alarme optional).

7. Mail-Status & Auswertung

sentE-Mail erfolgreich versendet
deferredZustellung verzögert (Zielserver nicht erreichbar o.Ä.)
bouncedZustellung fehlgeschlagen (Adresse ungültig, Mailbox voll)
rejectedAbgelehnt (Policy/SPAM-Gründe)

Zur Nachvollziehbarkeit von Massenversand (Rechnungen/Lohnabrechnungen) stehen in Grafana Übersichten und Detailabfragen bereit.

8. Aufbewahrung & Compliance

  • Logs in Loki: Aufbewahrung 120 Tage, danach automatische Löschung.
  • Dashboards in Grafana: persistent in Volumes, keine automatische Löschung.

9. Zugangsdaten & Passbolt

Sämtliche Zugangsdaten (Mailcow, Grafana, Server/Webtropia) werden ausschließlich in Passbolt verwaltet.

  • Passbolt-Instanz: [Passbolt-URL eintragen]
  • Zugriff nur für autorisierte Administratoren (Rollenbasiert).
  • Keine Klartext-Passwörter in BookStack oder Konfigurationsdateien.

10. Betrieb, Aufgaben & Verantwortlichkeiten

IntervallAufgabeRolle
TäglichGrafana prüfen (Fehler, Ausreißer, Zustellquote)Monitoring-Team
WöchentlichTestmail mit Status-KontrolleSysadmin
MonatlichUpdates (Mailcow, Promtail, Loki, Grafana)Sysadmin
QuartalsweiseSecurity-Review, Passwortrotation, IP-Whitelists prüfenSecurity Officer

11. Sicherheitsmaßnahmen

  • Grafana öffentlich: HTTPS erzwingen, starke Passwörter, individuelle Konten, optional IP-Whitelisting/Rate-Limiting.
  • Promtail (UDP 1514): nur intern freigeben.
  • Least Privilege: Rollen & Rechte regelmäßig prüfen.
  • Protokollprüfung: Zugriffslogs von Grafana & Reverse-Proxy regelmäßig auswerten.

12. Backup & Wiederherstellung

  • Relevante Pfade:
    • /opt/mailcow-dockerized
    • /opt/obs-mail
    • /opt/obs-mail/loki_config.yml
  • Tägliche, verschlüsselte Backups; Restore-Test mindestens quartalsweise.

13. Änderungs- & Versionskontrolle

  • Konfigurationsdateien (docker-compose.override.yml, loki_config.yml) in Git versionieren.
  • Change-Log mit Datum, Verantwortlichem, Kurzbeschreibung.

14. Anhang

14.1 ASCII-Architekturdiagramm

Mailcow (Postfix, Dovecot, Rspamd)
     │
     │  UDP 1514
     ▼
Promtail  ──HTTP Push──>  Loki  ──API──>  Grafana (öffentlich, HTTPS)
  

14.2 Beispielpfade (Referenz)

/opt/mailcow-dockerized/
  └── docker-compose.override.yml   # enthält UDP-Weiterleitung zu Promtail

/opt/obs-mail/
  └── loki_config.yml              # Loki-Spezifikationen (Index, Storage, Retention)
  

Hinweis: Zugangsdaten sind in Passbolt hinterlegt (siehe Abschnitt 9). Logs werden 120 Tage vorgehalten.