Files
0012/HOSTING.md
T
Frank Schwenk e5dca0e9c0 docs: DMARC p=quarantine and Tutanota blacklist note
Document upgraded DMARC policy and known delivery failure to Tuta-hosted
addresses from the 0012.de mail server; no remediation planned yet.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-12 10:06:31 +02:00

192 lines
7.2 KiB
Markdown

# Hosting — wint.global Classic 1.0
Stand: Willkommens-Mail vom 11.06.2026. Credentials **nicht** in diesem Repo — nur in `.env`.
## Produkt
| | |
|---|---|
| Paket | Classic 1.0 / 100% CO2-neutral |
| Speicher | 15 GB |
| Traffic | unlimitiert |
| Domain inkl. | `0012.de` |
| Abrechnung | jährlich, nächste Zahlung 11.06.2027 |
| Kundennummer | 26064 |
| Anbieter | [wint.global GmbH](https://wint.global) |
## Zugang
| Zweck | URL / Host |
|-------|------------|
| Plesk (direkt) | `https://ha01s019.org-dns.com:8443/` |
| Plesk (bequem) | Kundenbereich → Aktive Services → Produkt → „Weiter zur Plesk Administration“ |
| FTP | Host `ha01s019.org-dns.com`, gleicher User/Passwort wie Plesk |
**Hinweis:** Port 8443 kann in Firmennetzwerken blockiert sein — alternativen Anschluss testen.
## Server
| | |
|---|---|
| Servername | `ha01s019.org-dns.com` |
| Server-IP | `62.108.32.139` |
## DNS (Nameserver bei wint.global)
| NS | IP |
|----|-----|
| `ns1.org-ns.com` | `62.108.32.9` |
| `ns2.org-ns.com` | `89.107.70.9` |
DNS-Einträge nur für Domains mit Bezug zum Paket oder über wint.global bestellt.
Domain-Delegation kann nach Registration bis zu **24 Stunden** dauern. Bis dahin ggf. temporäre URL aus dem Kundenbereich nutzen.
### DNS bearbeiten (wint Kundenbereich)
DNS ist **nicht** in Plesk, sondern im **wint.global Kundenlogin**:
| | |
|---|---|
| URL | [https://login.wint.global/clientarea.php](https://login.wint.global/clientarea.php) |
| Navigation | Domain `0012.de` → DNS-Einträge / DNS verwalten |
| Nameserver | `ns1.org-ns.com`, `ns2.org-ns.com` (vom Hoster) |
Propagation nach Änderungen: üblicherweise Minuten bis **24 h**.
#### Mail-DNS für 0012.de (Stand 2026-06-12)
| Host / Name | Typ | TXT-Wert (nur Inhalt, keine Anführungszeichen im UI) |
|-------------|-----|------------------------------------------------------|
| `0012.de` | TXT | `v=spf1 a mx include:spf-a.org-dns.com -all` |
| `_dmarc.0012.de` | TXT | `v=DMARC1; p=quarantine;` |
| `default._domainkey.0012.de` | TXT | `v=DKIM1; p=…` (Public Key aus Plesk → „Externe DNS konfigurieren“) |
| `_domainkey.0012.de` | TXT | `o=-` (DKIM-Policy aus Plesk) |
**Plesk:** Mail → Mail-Einstellungen → DKIM aktiv, Selektor **`default`** → „Konfiguration des externen DNS“.
**Wichtig beim Eintragen:** In den wint-Maske **nur den TXT-Inhalt** einfügen — nicht die komplette Zone-Zeile (`… IN TXT "…"`). Für `_domainkey.0012.de` muss der Wert z. B. `o=-` sein, nicht `_domainkey.0012.de. IN TXT "o=-"`.
Prüfung (wenn propagiert):
```bash
dig +short TXT default._domainkey.0012.de @ns1.org-ns.com
dig +short TXT _domainkey.0012.de @ns1.org-ns.com
```
Stand DNS-Abfrage direkt nach Eintrag: noch leer → **24 h abwarten**, dann erneut prüfen und Testmail an Tuta.
## TLS / HTTPS
Konfiguration in Plesk (Stand 2026-06-11):
| | |
|---|---|
| Zertifikat | Let's Encrypt (`CN=0012.de`) |
| Gültig | 2026-06-11 — 2026-09-09 (Auto-Renewal in Plesk) |
| HTTP → HTTPS | 301 Permanent Redirect |
| HSTS | `Strict-Transport-Security: max-age=15768000; includeSubDomains` (~182 Tage) |
Prüfung:
```bash
curl -sI http://0012.de/ # → 301 Location: https://0012.de/
curl -sI https://0012.de/ # → 200, HSTS-Header
```
**PHP (Web):** 8.3.31 (laut Response-Header). Cron-Aufgaben können abweichende Version wählen (z. B. 8.5.x).
## E-Mail (Plesk)
| | |
|---|---|
| POP3/IMAP | `ha01s019.org-dns.com` |
| SMTP | `ha01s019.org-dns.com` |
| Benutzername | vollständige E-Mail-Adresse |
| Passwort | bei Einrichtung des Postfachs gesetzt |
**Sicherheit:** Nach 5 fehlgeschlagenen Login-Versuchen wird die Client-IP für 10 Minuten gesperrt (FTP, Webmail, E-Mail).
### Postfächer 0012.de (Stand 2026-06-11)
| Adresse | Rolle |
|---------|--------|
| `admin@0012.de` | Hauptpostfach, **SMTP-Login** für Skripte |
| `monitor@0012.de` | Alias — Absender Monitoring (`SMTP_FROM`) |
| `alert@0012.de` | Alias — optional alternativer Absender |
Webmail / SMTP-Auth: immer die **Hauptadresse** + Postfach-Passwort, nicht den Alias-Namen allein.
### Authentifizierung (SPF / DKIM / DMARC)
| | Status |
|---|--------|
| **SPF** | ✅ gesetzt (Hoster) — nichts tun |
| **DKIM** | In Plesk aktiv; DNS in [wint Kundenbereich](https://login.wint.global/clientarea.php) gesetzt (2026-06-12) — Propagation abwarten |
| **DMARC** | ✅ `v=DMARC1; p=quarantine;` (wint DNS, 2026-06-12) |
DMARC-Policy seit 2026-06-12 auf `p=quarantine` (fehlgeschlagene Auth → Spam/Quarantäne beim Empfänger). Optional später `p=reject` und `rua=mailto:admin@0012.de` für Aggregate-Reports.
Prüfung: [mail-tester.com](https://www.mail-tester.com) oder Test mit `php scripts/test-mail.php`.
### Bekannte Einschränkung: Tutanota-Blacklist
Ausgehende Mails vom 0012.de-Mailserver (`ha01s019.org-dns.com`) werden von **Tutanota** mit Absender-IP-Blacklist abgewiesen:
```
<admin@schwenk.online>: host mail.tutanota.de[185.205.69.213] said: 554 5.7.1
<admin@schwenk.online>: Recipient address rejected: Sender address rejected
(blacklisted) (in reply to RCPT TO command)
```
**Stand:** bekannt, vorerst **kein Fix** geplant (Delisting beim Hoster/Tuta prüfen, wenn Mail an `@tutanota.de` / Tuta-gehostete Adressen nötig wird).
**Workaround:** `ALERT_EMAIL` und Testempfänger auf Provider ohne diese Sperre legen (z. B. Gmail) — siehe [`todo/02-email-smtp.md`](todo/02-email-smtp.md).
### Geplante Nutzung
1. **Monitoring-Alerts** — `monitor@0012.de` → `ALERT_EMAIL` via `sendAlert()` in `config/mail.php`
2. **SMTP von boka** — siehe [`todo/11-boka-smtp-relay.md`](todo/11-boka-smtp-relay.md)
3. **Mail-Hosting** — Postfächer für Domains ohne eigenen Mailserver (MX auf 0012.de bzw. wint-NS)
## Geplante Aufgaben (Cron)
Plesk: **Websites & Domains → Geplante Aufgaben → Aufgabe planen**
| Einstellung | Empfehlung |
|-------------|------------|
| Aufgabentyp | PHP-Skript ausführen |
| Skriptpfad | `httpdocs/monitor.php` (nach Deployment) |
| PHP-Version | aktuelle verfügbare (z. B. 8.5.x) |
| Ausführen | Cron-Stil |
| Schedule Pull-Checks | `*/10 * * * *` (alle 10 Min) |
| Schedule Heartbeat-Check | `*/5 * * * *` (Push-Stale-Prüfung, ggf. in monitor.php) |
| Benachrichtigen | „Nur Fehler“ für Cron-PHP-Fehler; App-Alerts über eigenes SMTP |
Screenshot-Referenz: Plesk „Aufgabe planen“ (PHP-Skript, Cron-Stil, PHP-Version).
Weitere Plesk-Funktionen (Git, Composer, Hosting-Einstellungen): [`PLESK.md`](PLESK.md)
## Beziehung zu boka
```
Internet
│
┌──────────────┼──────────────┐
│ │ │
0012.de schwenk.online andere Sites
(wint/Plesk) (boka/VPS) (boka/VPS)
│ ▲ ▲
│ │ │
└── Pull HTTPS checks ───────┘
└── Push POST ingest.php ◄── boka Cron
└── SMTP alerts ──────────► du
```
Der Webspace ist **physisch und administrativ getrennt** — fällt boka komplett aus, kann 0012.de noch alarmieren (sofern der Hoster läuft).
## Support
- E-Mail: support@wint.global
- Tel: +49 211 972660-30