Greylisting: die Wirkung messen statt sie zu behaupten
Zahlen aus dem Maillog statt Bauchgefühl: wie du ermittelst, welcher Anteil der abgewiesenen Zustellversuche nie wiederkommt – und was das über deine Filterkette aussagt.
Das Wichtigste
- Die aussagekräftige Kennzahl ist nicht die Spammenge im Postfach, sondern der Anteil verzögerter Triplets, die nie ein zweites Mal auftauchen.
- Ohne Messung vor der Einführung lässt sich der Effekt später keiner Massnahme zuordnen.
- Ein hoher Wiederkehr-Anteil bedeutet nicht, dass Greylisting nichts taugt – er bedeutet, dass der Spam über korrekt arbeitende Mailserver kommt.
Greylisting wird oft mit einer Zahl beworben, die aus einer bestimmten Zeit und einer bestimmten Konfiguration stammt. Für die eigene Installation sagt sie wenig. Die gute Nachricht: Der tatsächliche Effekt steht im eigenen Maillog.
Was gemessen werden soll
Die naheliegende Kennzahl – “weniger Spam im Postfach” – ist die unbrauchbarste. Sie vermischt alle Filterstufen, ändert sich mit dem allgemeinen Spamaufkommen und lässt sich keiner Massnahme zuordnen.
Aussagekräftig ist stattdessen: Welcher Anteil der verzögerten Triplets taucht nie ein zweites Mal auf? Genau das ist der Anteil, den Greylisting verhindert hat.
Auswertung mit Postgrey
#!/usr/bin/env bash
# Auswertung der letzten sieben Tage
LOG=/var/log/mail.log
# alle verzögerten Triplets
grep 'action=greylist' "$LOG" \
| grep -oE 'client_address=[^,]+, sender=[^,]+, recipient=[^ ]+' \
| sort -u > /tmp/verzoegert.txt
# alle später angenommenen Zustellungen
grep 'action=pass' "$LOG" \
| grep -oE 'client_address=[^,]+, sender=[^,]+, recipient=[^ ]+' \
| sort -u > /tmp/durch.txt
GESAMT=$(wc -l < /tmp/verzoegert.txt)
DURCH=$(comm -12 /tmp/verzoegert.txt /tmp/durch.txt | wc -l)
WEG=$((GESAMT - DURCH))
printf 'Verzögert: %6d\n' "$GESAMT"
printf 'Später zugestellt: %6d (%d%%)\n' "$DURCH" $((DURCH * 100 / GESAMT))
printf 'Nie wiedergekommen:%6d (%d%%)\n' "$WEG" $((WEG * 100 / GESAMT))
Die letzte Zeile ist die Antwort. Sie sagt, welcher Anteil der Zustellversuche durch Greylisting tatsächlich verhindert wurde.
Die Zahl richtig einordnen
Hoher Anteil “nie wiedergekommen”. Greylisting arbeitet wie vorgesehen. Der Grossteil der Zustellversuche stammt von Programmen ohne Wiederholungslogik.
Hoher Anteil “später zugestellt”. Das bedeutet nicht, dass Greylisting nichts taugt – es bedeutet, dass der Spam über Mailserver kommt, die sich an SMTP halten. Typisch für Versand über kompromittierte Konten bei echten Providern. In diesem Fall verschiebt Greylisting nur die Zustellzeit, und die eigentliche Arbeit muss eine Stufe höher passieren: bei der Absenderauthentifizierung und im Inhaltsfilter.
Beide Ergebnisse sind nützlich. Das zweite ist sogar wertvoller, weil es zeigt, wo weitere Massnahmen ansetzen müssen.
Zwei Kennzahlen, die dazugehören
Verzögerung für legitime Absender. Wie lange dauert die erste Mail eines neuen Kontakts wirklich?
# Abstand zwischen Erstversuch und Annahme, in Minuten
grep -E 'action=(greylist|pass)' /var/log/mail.log \
| awk '{print $1, $2, $3, $0}' | sort | head -200
Liegt der Median deutlich über der eingestellten Sperrfrist, wiederholen die Gegenstellen später als erwartet, und das Bestätigungsfenster sollte grosszügiger sein.
Whitelist-Kandidaten. Absender, die immer wieder verzögert werden, obwohl sie legitim sind:
grep 'action=greylist' /var/log/mail.log \
| grep -oE 'client_address=[^,]+' | sort | uniq -c | sort -rn | head -20
Wer hier oben steht und ein bekannter Dienst ist, gehört auf die Whitelist. Das sind typischerweise Versender, die zwischen den Versuchen die IP wechseln – für die passt das Triplet nie, und sie werden bei jeder Mail erneut ausgebremst.
Vorher messen
Der wichtigste Teil kommt zeitlich zuerst: Vor der Einführung eine Woche lang die Zustellversuche zählen. Ohne diesen Ausgangswert lässt sich später kein Effekt belegen – und man endet bei derselben Art von Behauptung, die man eigentlich prüfen wollte.
# Zustellversuche pro Tag, vor der Einführung
grep 'postfix/smtpd' /var/log/mail.log \
| grep -c 'connect from'
Die vollständige Erklärung von Funktionsweise, Zeitwerten und Whitelists steht im Greylisting-Guide.
Häufige Fragen
Welchen Zeitraum sollte ich auswerten?
Mindestens sieben Tage, damit Wochenend- und Werktagsmuster beide enthalten sind. Bei geringem Mailaufkommen eher vier Wochen, sonst schwanken die Zahlen zu stark.
Was ist ein guter Wert?
Es gibt keinen allgemeinen Zielwert. Aussagekräftig ist der Vergleich mit dem eigenen Vormonat und die Einordnung: Kommen über 80 Prozent der verzögerten Triplets wieder, arbeitet der Spam über echte Mailserver und die nächste Filterstufe muss die Arbeit übernehmen.
Passend dazu
- Greylisting: Funktionsweise, Nutzen und Grenzen
Warum ein temporäres Ablehnen den Grossteil des Bot-Spams stoppt, was es an Zustellverzögerung kostet und wie Whitelists den Ärger begrenzen.
- Greylisting: fünf Fehler, die Mails wirklich kosten
Falsche Reihenfolge der Restriktionen, fehlende Whitelists, zu enges Bestätigungsfenster: die Konfigurationsfehler, die aus einer harmlosen Verzögerung ein echtes Zustellproblem machen.