Sicherheit
Mail Filter bietet verschiedene Sicherheitsfeatures, um den Betrieb sicher und kontrolliert zu gestalten.
Rate Limiting
Globale Limits verhindern zu viele Aktionen in kurzer Zeit.
Konfiguration
general:
max_actions_per_minute: 100 # Max. Aktionen pro Minute (global)
max_actions_per_hour: 1000 # Max. Aktionen pro Stunde (global)
rate_limit_cleanup_interval_hours: 1 # Intervall für Bereinigung alter Timestamps (Default: 1 Stunde)
Funktionsweise
max_actions_per_minute: Globales Limit für Aktionen pro Minute (Rate Limiting)max_actions_per_hour: Globales Limit für Aktionen pro Stunde (Rate Limiting)rate_limit_cleanup_interval_hours: Intervall, in dem alte Timestamps aus der Rate-Limit-Liste entfernt werden. Standard: 1 Stunde. Dies verhindert, dass die Liste unbegrenzt wächst.
Die Rate-Limit-Bereinigung läuft automatisch im Hintergrund und entfernt regelmäßig alte Timestamps, die älter als das konfigurierte Intervall sind.
Wenn ein Limit erreicht ist, werden weitere Aktionen übersprungen (mit Warnung im Log).
Limit pro Filter
Jeder Filter kann eine maximale Anzahl von Aktionen pro Durchlauf haben:
accounts:
- name: "work"
max_actions_per_filter: 50 # Max. 50 Aktionen pro Filter
Verhindert, dass ein einzelner Filter zu viele E-Mails auf einmal verarbeitet. Setze auf 0 für unbegrenzt.
Script-Whitelist
Nur explizit erlaubte Scripts werden ausgeführt:
general:
script_whitelist:
- "scripts/process_report.sh"
- "scripts/backup.sh"
- "/usr/local/bin/custom_script.sh"
Wichtig: Wenn script_whitelist leer ist, sind alle Scripts erlaubt. Für Produktionsumgebungen sollte immer eine Whitelist konfiguriert werden.
Script-Sicherheit
Scripts werden nur ausgeführt, wenn:
- Der Script-Pfad in der
script_whitelistingeneralsteht, ODER - Die
script_whitelistleer ist (alle Scripts erlaubt)
Best Practice: Konfiguriere immer eine Whitelist in Produktionsumgebungen.
Delete → Trash
E-Mails werden nicht wirklich gelöscht, sondern in einen Trash-Ordner verschoben:
accounts:
- name: "work"
trash_folder: "Trash" # Standard-Trash
- name: "gmail"
trash_folder: "[Gmail]/Trash" # Gmail-spezifischer Trash-Ordner
Falls kein trash_folder konfiguriert ist, wird die E-Mail wirklich gelöscht. Vorsicht: Echte Löschungen können nicht rückgängig gemacht werden.
Credentials-Sicherheit
Dateiberechtigungen
Credentials-Dateien sollten nur für den Besitzer lesbar sein:
chmod 600 config/credentials/*.cred
Separate Credentials
Verwende separate Credentials-Dateien für IMAP und SMTP, wenn möglich:
accounts:
- name: "work"
imap:
credentials_file: "work_imap.cred"
smtp:
credentials_file: "work_smtp.cred"
Error-Notifications
Automatische E-Mail-Benachrichtigung bei Fehlern:
general:
error_notifications:
enabled: true
to: "admin@example.com"
Benötigt einen Account mit SMTP-Konfiguration. Aktiviert dich über kritische Fehler.
Täglicher Report
Tägliche Zusammenfassung der Filter-Aktivitäten:
general:
daily_report:
enabled: true
to: "admin@example.com"
time: "08:00" # Zeit für Report (HH:MM)
Enthält Statistiken über alle Aktionen und erreichte Filter-Limits. Nützlich zur Überwachung und Erkennung von Anomalien.
Best Practices
- Script-Whitelist konfigurieren: In Produktionsumgebungen immer eine Whitelist für Scripts definieren
- Rate Limiting aktivieren: Setze angemessene Limits, um Überlastung zu vermeiden
- Filter-Limits setzen: Begrenze die Anzahl der Aktionen pro Filter
- Trash-Ordner konfigurieren: Verhindere echte Löschungen durch Konfiguration eines Trash-Ordners
- Credentials schützen: Setze Dateiberechtigungen auf 600
- Monitoring aktivieren: Nutze Error-Notifications und tägliche Reports
- Dry-Run testen: Teste neue Filter immer mit
--dry-runzuerst - Logs überwachen: Prüfe regelmäßig die Log-Dateien
Weitere Informationen
- Konfiguration - Konfigurationsoptionen
- Filter - Filterregeln
- Aktionen - Script-Aktionen
- Logging - Logging und Fehlerbehebung