Zum Inhalt springen

Sicherheitseinstellungen

Die Seite Sicherheit enthält die API-Schlüssel Ihrer Organisation und alles, was Ihren öffentlichen Schlüssel vor Missbrauch schützt.

Die Seite Security mit Karten für den öffentlichen Schlüssel, private Schlüssel, erlaubte Websites, Schutz vor Missbrauch, die Blockliste, das Rate Limit pro IP und die Wahl, was bei aufgebrauchten Credits passiert

Rolle Zugriff
Inhaber, Admin Sehen und ändern alles.
Entwickler Nur Lesezugriff: sieht Schlüssel und Einstellungen, aber keine Schaltflächen, und alle Felder sind deaktiviert.
Betrachter, Abrechnung Kein Zugriff – die Seite zeigt einen Hinweis, dass Ihre Rolle das nicht erlaubt.

Die Schlüsselaktionen – Schlüssel erneuern, Neuer privater Schlüssel und Widerrufen – wirken sofort, nachdem Sie sie bestätigt haben.

Die Turnstile-Schlüssel in Bot-Schutz (Turnstile) speichern Sie mit der eigenen Schaltfläche Schlüssel speichern der Karte.

Alle anderen Einstellungen auf der Seite (erlaubte Websites, Schalter für den Schutz vor Missbrauch, mobile Apps, Blockliste, Rate Limit, erlaubte Link-Domains, E-Mails pro Empfänger und die Wahl für aufgebrauchte Credits) sind nur ein Entwurf, bis Sie oben rechts auf Speichern klicken. Die Schaltfläche ist nur aktiv, wenn sich etwas geändert hat. Jedes Speichern wird im Audit-Log als security.updated festgehalten.

Die Karte Öffentlicher Schlüssel zeigt Ihren pk_…-Schlüssel mit einer Kopier-Schaltfläche. Diesen Schlüssel bauen Sie in Ihre Website ein – er darf öffentlich sein, weil Anfragen damit gegen erlaubte Websites, CAPTCHA und Rate Limits geprüft werden. Siehe Öffentliche und private Schlüssel.

Erneuern Sie ihn, wenn Sie trotz der übrigen Schutzmaßnahmen Missbrauch feststellen.

  1. Klicken Sie auf Schlüssel erneuern.
  2. Bestätigen Sie im Dialog Öffentlichen Schlüssel erneuern? mit Schlüssel erneuern.
  3. Kopieren Sie den neuen Schlüssel und spielen Sie ihn auf Ihrer Website ein.

Der alte Schlüssel funktioniert noch 24 Stunden. Bis dahin zeigt die Karte einen Hinweis, welcher vorherige Schlüssel noch gilt und bis wann. Danach schlagen Anfragen mit dem alten Schlüssel mit invalid_public_key fehl.

Private Schlüssel sind ausschließlich für Server gedacht – das Node SDK, cURL, Ihr Backend. Die Tabelle zeigt für jeden Schlüssel den Namen (Name) mit Erstellungsdatum, die letzten vier Zeichen unter Schlüssel und wann er Zuletzt verwendet wurde (Nie, wenn er noch nicht benutzt wurde).

Eine Organisation kann höchstens 20 aktive private Schlüssel haben.

  1. Klicken Sie auf Neuer privater Schlüssel.
  2. Geben Sie unter Name einen Namen ein, aus dem hervorgeht, wo Sie ihn verwenden, z. B. „Produktiv-Backend“, und klicken Sie auf Erstellen.
  3. Der Dialog Ihr neuer privater Schlüssel zeigt den vollständigen Schlüssel. Kopieren Sie ihn jetzt und legen Sie ihn in den Secrets Ihres Servers oder in Ihrem Passwort-Manager ab.
  4. Klicken Sie auf Ich habe ihn sicher gespeichert.
  1. Klicken Sie in der Zeile des Schlüssels auf Widerrufen.
  2. Bestätigen Sie im Dialog mit Widerrufen.

Der Widerruf wirkt sofort – Anfragen mit dem Schlüssel werden umgehend mit invalid_private_key abgelehnt. Um einen Schlüssel ohne Ausfall zu ersetzen, erstellen Sie zuerst den neuen Schlüssel, spielen ihn ein, prüfen, dass sich Zuletzt verwendet beim alten Schlüssel nicht mehr ändert, und widerrufen ihn erst dann.

Nur die unter Erlaubte Websites eingetragenen Domains können mit Ihrem öffentlichen Schlüssel senden. Frontmail gleicht sie mit dem Origin-Header des Browsers ab. Details finden Sie unter Erlaubte Domains.

Erlaubte Formate:

Eintrag Passt auf
example.com Genau diese Domain.
*.example.com Jede Subdomain von example.com.
localhost:3000 Einen Host mit bestimmtem Port – praktisch für die lokale Entwicklung.

Wenn Sie eine vollständige URL wie https://example.com/contact einfügen, übernimmt das Dashboard nur den Host.

  1. Tippen Sie die Domain in Domain hinzufügen ein.
  2. Klicken Sie auf Hinzufügen (oder drücken Sie Enter). Die Domain erscheint als Tag über dem Feld.
  3. Klicken Sie auf Speichern.

Um eine Domain zu entfernen, klicken Sie auf das × in ihrem Tag und dann auf Speichern.

Diese Karte enthält die eigenen Cloudflare-Turnstile-Schlüssel Ihrer Organisation. Vorlagen mit aktivem CAPTCHA verlangen (Turnstile) nehmen Anfragen von Ihren Websites nur mit einem Turnstile-Token an, und Frontmail prüft diese Tokens mit dem Secret Key, den Sie hier hinterlegen. Ohne Schlüssel schlagen Anfragen von Websites an solche Vorlagen mit captcha_not_configured fehl.

Warum eigene Schlüssel: Der kostenlose Tarif von Cloudflare erlaubt nur 10 Hostnamen pro Widget, daher kann ein einziger Frontmail-Schlüssel nicht die Websites aller Kunden abdecken. Ihr Widget ist kostenlos und funktioniert nur auf Ihren Hostnamen.

  1. Öffnen Sie im Cloudflare-Dashboard Turnstile → Add widget, geben Sie einen Namen ein, tragen Sie die Hostnamen Ihrer Websites ein (z. B. example.com, www.example.com; localhost nur zum Testen), behalten Sie den Modus Managed bei und klicken Sie auf Create.
  2. Kopieren Sie den Site Key und den Secret Key.
  3. Fügen Sie zurück auf der Seite Sicherheit beide Schlüssel in die Karte Bot-Schutz (Turnstile) ein und klicken Sie auf Schlüssel speichern.
  4. Klicken Sie auf CAPTCHA für alle Vorlagen aktivieren, um es mit einem Klick für alle bestehenden Vorlagen einzuschalten. Vorlagen, die als automatische Antwort dienen, werden übersprungen.

Beim Speichern wird der Secret Key zuerst bei Cloudflare geprüft – ein falscher Schlüssel wird mit einer klaren Meldung abgelehnt und nichts wird gespeichert. Die Schlüssel werden sofort gespeichert (die Schaltfläche Speichern der Seite ist nicht nötig) und im Audit-Log als security.turnstile.updated festgehalten; das Aktivieren des CAPTCHA für alle Vorlagen wird als template.captcha_enabled erfasst.

  • Der Secret Key lässt sich nur schreiben: Er wird verschlüsselt gespeichert und nie wieder angezeigt – die Karte zeigt nur den Site Key und seit wann die Schlüssel eingerichtet sind. Zum Ändern klicken Sie auf Schlüssel ersetzen und fügen neue ein; um sie nicht mehr zu verwenden, klicken Sie auf Schlüssel entfernen und bestätigen Turnstile-Schlüssel entfernen? (security.turnstile.removed). Vorlagen behalten ihre CAPTCHA-Einstellung – nach dem Entfernen der Schlüssel schlagen Anfragen von Websites an sie also fehl, bis Sie wieder Schlüssel hinterlegen.
  • Sobald Schlüssel gespeichert sind, haben neue Vorlagen das CAPTCHA standardmäßig aktiviert. Bereits vorhandene Vorlagen behalten ihre Einstellung.
  • Der Tab Snippets im Vorlagen-Editor enthält dann das Widget mit Ihrem Site Key.
  • Für die lokale Entwicklung können Sie die Testschlüssel von Cloudflare verwenden – niemals in der Produktion.

Mobile Apps, die mit @frontmail/react-native gebaut sind, brauchen diese Schlüssel nicht – sie verwenden den gemeinsamen mobilen Schlüssel von Frontmail.

Ob eine Vorlage das Turnstile-CAPTCHA verlangt, stellen Sie pro Vorlage im Vorlagen-Editor ein, nicht hier – siehe Turnstile. Die Karte Schutz vor Missbrauch hat vier Schalter:

Schalter Was er bewirkt
Headless-Browser blockieren Lehnt Anfragen mit öffentlichem Schlüssel aus automatisierten Browsern wie Puppeteer ab. Standardmäßig aus. Siehe Bot-Schutz.
Strikte Parameter Lehnt Anfragen mit Parametern ab, die nicht im Schema der Vorlage stehen, statt sie zu ignorieren. Standardmäßig aus.
API mit privatem Schlüssel erlauben Ihre Server dürfen mit einem privaten Schlüssel senden; die Prüfung der Website entfällt dann. Standardmäßig an. Schalten Sie das aus, wenn Sie nur aus Browsern senden – Anfragen mit privatem Schlüssel werden dann mit 403 forbidden abgelehnt.
Private Schlüssel im Browser erlauben Nimmt Anfragen mit privatem Schlüssel an, die von einer Webseite kommen (mit Origin-Header). Standardmäßig aus – solche Anfragen werden mit 403 private_key_in_browser abgelehnt, weil jeder Besucher der Seite den Schlüssel kopieren könnte. Aktivieren Sie das nur für interne Tools; dabei erscheint eine Warnung. Siehe Schlüssel.

Denken Sie daran, nach dem Umschalten auf Speichern zu klicken.

Native Apps (React Native, Flutter, Swift, Kotlin) senden keinen Origin-Header. Ihre Anfragen werden daher – wie jede Anfrage mit öffentlichem Schlüssel ohne Origin und Referer – mit 403 origin_not_allowed abgelehnt, auch wenn keine erlaubten Websites eingetragen sind. Die Karte Mobile Apps hat einen Schalter, Mobile Apps erlauben (standardmäßig aus). Ist er an, werden Anfragen mit öffentlichem Schlüssel ohne Origin- oder Referer-Header angenommen und ihr CAPTCHA wird mit dem gemeinsamen mobilen Schlüssel von Frontmail geprüft. Anfragen von Websites werden weiterhin mit der Liste abgeglichen. Details unter Erlaubte Domains → Mobile Apps.

  1. Schalten Sie Mobile Apps erlauben ein.
  2. Lesen Sie die Warnung, die unter dem Schalter erscheint.
  3. Klicken Sie auf Speichern.

Die Blockliste stoppt bekannte Spammer, bevor ihre Anfragen Credits verbrauchen.

  • Blockierte Werte – ein Wert pro Zeile: E-Mail-Adressen, Domains (spam.example oder @spam.example) oder exakte Parameterwerte.
  • Zu prüfender Parameter – der Parameter, der zusätzlich zu den Empfängern mit der Liste abgeglichen wird, z. B. email für die Adresse des Besuchers in einem Kontaktformular.

Passende Anfragen schlagen mit recipient_blocked fehl. Mehr unter Bot-Schutz → Blockliste.

Rate Limit pro IP begrenzt, wie oft ein einzelner Besucher Ihre Formulare mit dem öffentlichen Schlüssel absenden kann. Legen Sie Anfragen (1–1.000) und Pro (Sekunden) (1–86.400) fest; der Satz unter den Feldern fasst das Ergebnis zusammen. Standard sind 10 Anfragen pro 60 Sekunden. Anfragen über dem Limit erhalten 429 rate_limited und verbrauchen keine Credits. Anfragen mit privatem Schlüssel werden nicht pro IP begrenzt – siehe Rate Limits.

Wenn eine Vorlage ihren Empfänger aus Parametern nimmt und mit dem öffentlichen Schlüssel gesendet wird – und bei jeder automatischen Antwort –, dürfen Links in der E-Mail nur auf Domains zeigen, denen Sie vertrauen. Direkt in der Vorlage geschriebene Links und Ihre erlaubten Websites sind immer erlaubt; weitere Domains tragen Sie unter Erlaubte Link-Domains ein, eine pro Zeile: example.com (genau dieser Host) oder *.example.com (nur Subdomains). Ungültige Zeilen werden markiert und blockieren Speichern. Anfragen mit einem Link woandershin schlagen mit link_not_allowed fehl. Siehe Link-Allowlist und Inhaltssperre.

E-Mails pro Empfänger und Tag (1–1.000, Standard 5) begrenzt, wie viele E-Mails mit dynamischem Empfänger (öffentlicher Schlüssel) und automatische Antworten eine Adresse pro Tag (UTC) erhält. Über dem Limit schlagen Anfragen mit 429 rate_limited (details.scope: "recipient") fehl und es wird keine automatische Antwort erzeugt.

Diese Karte legt fest, was mit neuen E-Mails passiert, wenn die Organisation keine Credits mehr hat:

Option Verhalten
E-Mails zurückhalten (Empfohlen, Standard) E-Mails werden angenommen und warten unter Zurückgehaltene E-Mails. Sobald Sie Credits aufladen, werden sie automatisch gesendet.
Anfragen ablehnen Die API antwortet mit 402 insufficient_credits und nichts wird gespeichert – Ihre Website entscheidet, was sie dem Besucher mitteilt.

Wählen Sie eine Option und klicken Sie auf Speichern. Das Gesamtbild, einschließlich der Freigabe zurückgehaltener E-Mails, finden Sie unter Warteschlange zurückgehaltener E-Mails.