# Mailversand

# Mailserver Terminator

# IT-Systemdokumentation  
<small style="font-weight: 400; color: #555;">Mailcow mit zentralem Logging via Grafana / Loki / Promtail (UDP)</small>

<div id="bkmrk-inhalt-%C3%9Cbersicht-%26-z" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;"><nav style="border: 1px solid #e5e7eb; border-radius: 12px; padding: 12px 16px; background: #fafafa; margin: 16px 0 28px;">**Inhalt**1. [Übersicht &amp; Zweck](#bkmrk-1.-%C3%9Cbersicht-%26-zweck)
2. [Hosting &amp; Serverressourcen](#bkmrk-2.-hosting-%26-serverr)
3. [Architektur &amp; Datenfluss](#bkmrk-3.-architektur-%26-dat)
4. [Verzeichnisse &amp; Dateien](#bkmrk-4.-verzeichnisse-%26-d)
5. [Netzwerk &amp; Ports](#bkmrk-5.-netzwerk-%26-ports)
6. [Logging- &amp; Monitoring-Konzept](#bkmrk-6.-logging--%26-monito)
7. [Mail-Status &amp; Auswertung](#bkmrk-7.-mail-status-%26-aus)
8. [Aufbewahrung &amp; Compliance](#bkmrk-8.-aufbewahrung-%26-co)
9. [Zugangsdaten &amp; Passbolt](#bkmrk-9.-zugangsdaten-%26-pa)
10. [Betrieb, Aufgaben &amp; Verantwortlichkeiten](#bkmrk-10.-betrieb%2C-aufgabe)
11. [Sicherheitsmaßnahmen](#bkmrk-11.-sicherheitsma%C3%9Fna)
12. [Backup &amp; Wiederherstellung](#bkmrk-12.-backup-%26-wiederh)
13. [Änderungs- &amp; Versionskontrolle](#bkmrk-13.-%C3%84nderungs--%26-ver)
14. [Anhang (Diagramm &amp; Pfade)](#bkmrk-14.-anhang)

</nav></div>## 1. Übersicht &amp; 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 &amp; Serverressourcen

<div id="bkmrk-anbieter-webtropia-%28" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;"><table style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="border: 1px solid #ddd; padding: 8px; width: 30%;">Anbieter</td><td style="border: 1px solid #ddd; padding: 8px;">Webtropia (DE, ISO-27001 RZ)</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">CPU</td><td style="border: 1px solid #ddd; padding: 8px;">4 Kerne</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">RAM</td><td style="border: 1px solid #ddd; padding: 8px;">8 GB</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">Storage</td><td style="border: 1px solid #ddd; padding: 8px;">80 GB NVMe</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">Rolle</td><td style="border: 1px solid #ddd; padding: 8px;">Mailserver + Logging-Stack</td></tr></tbody></table>

</div>## 3. Architektur &amp; Datenfluss

<div id="bkmrk-mailcow-%28postfix%2C-do" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;">- **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 &amp; Status (Dashboards, Explore).

</div>## 4. Verzeichnisse &amp; Dateien

<div id="bkmrk-%2Fopt%2Fmailcow-dockeri" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;"><table style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="border: 1px solid #ddd; padding: 8px; width: 40%;">`/opt/mailcow-dockerized`</td><td style="border: 1px solid #ddd; padding: 8px;">Mailcow Docker-Umgebung</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">`/opt/mailcow-dockerized/docker-compose.override.yml`</td><td style="border: 1px solid #ddd; padding: 8px;">Enthält **UDP-Weiterleitung** der Mailcow-Logs zu Promtail</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">`/opt/obs-mail`</td><td style="border: 1px solid #ddd; padding: 8px;">Promtail, Loki, Grafana (Stack)</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">`/opt/obs-mail/loki_config.yml`</td><td style="border: 1px solid #ddd; padding: 8px;">Loki-Spezifikationen (Speicher, Index, Retention)</td></tr></tbody></table>

</div>## 5. Netzwerk &amp; Ports

<div id="bkmrk-dienst-port%2Fproto-zu" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;"><table style="border-collapse: collapse; width: 100%;"><thead><tr><th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Dienst</th><th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Port/Proto</th><th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Zugriff</th><th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Hinweis</th></tr></thead><tbody><tr><td style="border: 1px solid #ddd; padding: 8px;">Mailcow Web-UI</td><td style="border: 1px solid #ddd; padding: 8px;">443/TCP</td><td style="border: 1px solid #ddd; padding: 8px;">Intern</td><td style="border: 1px solid #ddd; padding: 8px;">TLS</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">Promtail Syslog</td><td style="border: 1px solid #ddd; padding: 8px;">1514/UDP</td><td style="border: 1px solid #ddd; padding: 8px;">Nur intern</td><td style="border: 1px solid #ddd; padding: 8px;">Eingang der Logs</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">Loki API</td><td style="border: 1px solid #ddd; padding: 8px;">3100/TCP</td><td style="border: 1px solid #ddd; padding: 8px;">Intern</td><td style="border: 1px solid #ddd; padding: 8px;">Push/Query</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">Grafana UI</td><td style="border: 1px solid #ddd; padding: 8px;">3000/TCP</td><td style="border: 1px solid #ddd; padding: 8px;">**Öffentlich**</td><td style="border: 1px solid #ddd; padding: 8px;">Härtung beachten (siehe §11)</td></tr></tbody></table>

</div>## 6. Logging- &amp; Monitoring-Konzept

<div id="bkmrk-mailcow-erzeugt-vers" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;">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).

</div>## 7. Mail-Status &amp; Auswertung

<div id="bkmrk-sent-e-mail-erfolgre" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;"><table style="border-collapse: collapse; width: 100%; margin-bottom: 8px;"><tbody><tr><td style="border: 1px solid #ddd; padding: 8px; width: 25%;">**sent**</td><td style="border: 1px solid #ddd; padding: 8px;">E-Mail erfolgreich versendet</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">**deferred**</td><td style="border: 1px solid #ddd; padding: 8px;">Zustellung verzögert (Zielserver nicht erreichbar o.Ä.)</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">**bounced**</td><td style="border: 1px solid #ddd; padding: 8px;">Zustellung fehlgeschlagen (Adresse ungültig, Mailbox voll)</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">**rejected**</td><td style="border: 1px solid #ddd; padding: 8px;">Abgelehnt (Policy/SPAM-Gründe)</td></tr></tbody></table>

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

## 8. Aufbewahrung &amp; Compliance

<div id="bkmrk-logs-in-loki%3A-aufbew" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;">- **Logs in Loki:** Aufbewahrung **120 Tage**, danach automatische Löschung.
- **Dashboards in Grafana:** persistent in Volumes, keine automatische Löschung.

</div>## 9. Zugangsdaten &amp; Passbolt

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

<div id="bkmrk-passbolt-instanz%3A-%5Bp" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;">- Passbolt-Instanz: *\[Passbolt-URL eintragen\]*
- Zugriff nur für autorisierte Administratoren (Rollenbasiert).
- Keine Klartext-Passwörter in BookStack oder Konfigurationsdateien.

</div>## 10. Betrieb, Aufgaben &amp; Verantwortlichkeiten

<div id="bkmrk-intervall-aufgabe-ro" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;"><table style="border-collapse: collapse; width: 100%;"><thead><tr><th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Intervall</th><th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Aufgabe</th><th style="border: 1px solid #ddd; padding: 8px; text-align: left;">Rolle</th></tr></thead><tbody><tr><td style="border: 1px solid #ddd; padding: 8px;">Täglich</td><td style="border: 1px solid #ddd; padding: 8px;">Grafana prüfen (Fehler, Ausreißer, Zustellquote)</td><td style="border: 1px solid #ddd; padding: 8px;">Monitoring-Team</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">Wöchentlich</td><td style="border: 1px solid #ddd; padding: 8px;">Testmail mit Status-Kontrolle</td><td style="border: 1px solid #ddd; padding: 8px;">Sysadmin</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">Monatlich</td><td style="border: 1px solid #ddd; padding: 8px;">Updates (Mailcow, Promtail, Loki, Grafana)</td><td style="border: 1px solid #ddd; padding: 8px;">Sysadmin</td></tr><tr><td style="border: 1px solid #ddd; padding: 8px;">Quartalsweise</td><td style="border: 1px solid #ddd; padding: 8px;">Security-Review, Passwortrotation, IP-Whitelists prüfen</td><td style="border: 1px solid #ddd; padding: 8px;">Security Officer</td></tr></tbody></table>

</div>## 11. Sicherheitsmaßnahmen

<div id="bkmrk-grafana-%C3%B6ffentlich%3A-" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;">- **Grafana öffentlich:** HTTPS erzwingen, starke Passwörter, individuelle Konten, optional IP-Whitelisting/Rate-Limiting.
- **Promtail (UDP 1514):** nur intern freigeben.
- **Least Privilege:** Rollen &amp; Rechte regelmäßig prüfen.
- **Protokollprüfung:** Zugriffslogs von Grafana &amp; Reverse-Proxy regelmäßig auswerten.

</div>## 12. Backup &amp; Wiederherstellung

<div id="bkmrk-relevante-pfade%3A-%2Fop" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;">- **Relevante Pfade:**
    - `/opt/mailcow-dockerized`
    - `/opt/obs-mail`
    - `/opt/obs-mail/loki_config.yml`
- Tägliche, verschlüsselte Backups; *Restore-Test mindestens quartalsweise*.

</div>## 13. Änderungs- &amp; Versionskontrolle

<div id="bkmrk-konfigurationsdateie" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;">- Konfigurationsdateien (`docker-compose.override.yml`, `loki_config.yml`) in Git versionieren.
- Change-Log mit Datum, Verantwortlichem, Kurzbeschreibung.

</div>## 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)
  
```

<div id="bkmrk-" style="font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; line-height: 1.5; color: #111;">---

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