Greylisting: Funktionsweise, Nutzen und Grenzen
Wie Greylisting Bot-Spam abweist, was es an Zustellverzögerung kostet, wie Whitelists und Triplet-Zeiten sinnvoll gesetzt werden und wo die Methode heute an ihre Grenzen stösst.
Das Wichtigste
- Greylisting weist den ersten Zustellversuch mit einem temporären Fehler (
4xx) ab. Ein echter Mailserver wiederholt, viele Spam-Programme nicht. - Es entscheidet nicht über den Inhalt. Falsch-positive im Sinne eines Inhaltsfilters gibt es deshalb nicht – nur Verzögerung.
- Der Preis ist Wartezeit: typisch fünf bis dreissig Minuten für die erste Mail eines neuen Absenders.
- Grosse Versender rotieren die Absender-IP zwischen den Versuchen. Ohne Whitelist verzögert das jede Mail erneut statt nur die erste.
Greylisting ist eine der wenigen Spam-Massnahmen, die den Inhalt einer Mail gar nicht ansieht. Sie nutzt stattdessen einen Unterschied im Verhalten: Ein regulärer Mailserver hält sich an SMTP und wiederholt einen fehlgeschlagenen Zustellversuch, ein schlankes Versandprogramm zieht weiter zur nächsten Adresse.
Der Ablauf
- Ein fremder Server will eine Mail zustellen.
- Dein Server merkt sich das Triplet aus Absender-IP, Envelope-Absender und Empfänger und antwortet mit einem temporären Fehler:
451 4.7.1 Greylisted, try again later. - Ein echter Mailserver stellt die Mail nach seinem Wiederholungsintervall erneut zu – je nach Konfiguration nach 1 bis 30 Minuten.
- Beim zweiten Versuch ist die Sperrfrist abgelaufen, das Triplet ist bekannt, die Mail wird angenommen.
- Das Triplet bleibt für eine längere Zeit gespeichert, meist 30 bis 60 Tage. Weitere Mails desselben Absenders kommen sofort durch.
Der entscheidende Punkt: 4xx ist im SMTP-Standard ein temporärer Fehler. Wer ihn als endgültig behandelt, verletzt den Standard. Genau das tun viele Versandprogramme, weil Wiederholungslogik Zustand und Zeit kostet.
Die drei Zeitwerte, die zählen
| Wert | typisch | Wirkung |
|---|---|---|
| Sperrfrist (delay) | 5 Minuten | zu kurz lässt einfache Bots durch, zu lang verärgert Nutzer |
| Bestätigungsfenster | 4 bis 8 Stunden | in dieser Zeit muss der zweite Versuch erfolgen |
| Lebensdauer (lifetime) | 30 bis 60 Tage | wie lange ein bekanntes Triplet ohne Verzögerung durchkommt |
Fünf Minuten sind ein guter Startwert. Darunter fangen einfache Bots an durchzukommen, die inzwischen einen zweiten Versuch machen. Deutlich darüber merkt der Nutzer die Verzögerung bei jeder ersten Mail eines neuen Kontakts.
Einrichtung mit Postfix und Postgrey
apt install postgrey
In der main.cf wird Postgrey als Policy-Dienst hinter die schnelleren Prüfungen gehängt:
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unknown_recipient_domain,
reject_rbl_client zen.spamhaus.org,
check_policy_service inet:127.0.0.1:10023,
permit
Die Reihenfolge ist wichtig. Greylisting gehört hinter die günstigen Ablehnungen: Was ohnehin abgewiesen wird, muss nicht erst in die Triplet-Datenbank. Und es gehört hinter permit_sasl_authenticated, damit deine eigenen Nutzer nie verzögert werden.
Startparameter in /etc/default/postgrey:
POSTGREY_OPTS="--inet=127.0.0.1:10023 --delay=300 --max-age=45 \
--auto-whitelist-clients=5"
--auto-whitelist-clients=5 nimmt eine IP nach fünf erfolgreichen Zustellungen dauerhaft aus – das reduziert die Verzögerung im Alltag deutlich.
Whitelists sind kein Zusatz, sondern Pflicht
Grosse Versender verteilen ihre Zustellungen über Serverfarmen und benutzen für den zweiten Versuch oft eine andere IP. Das Triplet passt dann nicht mehr, und die Mail wird erneut verzögert – im Extremfall so lange, bis das Bestätigungsfenster abläuft.
Postgrey liefert eine gepflegte Standardliste unter /etc/postgrey/whitelist_clients mit. Ergänze sie um:
- deine Zahlungs- und Shop-Systeme
- Systeme, die Zwei-Faktor-Codes oder Passwort-Resets verschicken
- Monitoring- und Ticketsysteme
- Absender, die dir Geschäftspost schicken und deren Verzögerung Kunden kostet
Ein Eintrag ist entweder eine IP, ein Netz oder ein regulärer Ausdruck auf den Reverse-DNS-Namen:
/^mail-[a-z0-9]+\.beispiel-versender\.de$/
203.0.113.0/24
Wo Greylisting heute an Grenzen stösst
Der Wirkungsgrad ist gesunken. Der Grund ist keine Schwäche der Methode, sondern eine Verschiebung im Spam-Versand: Ein wachsender Anteil läuft über kompromittierte Konten bei echten Providern. Deren Mailserver wiederholen selbstverständlich korrekt, und die Mail kommt beim zweiten Versuch durch.
Greylisting ist deshalb heute die erste Stufe, nicht die einzige. Sinnvoll darüber:
- SPF, DKIM und DMARC prüfen und durchsetzen – siehe die eigene Anleitung dazu.
- RBL-Abfragen vor dem Greylisting, damit bekannte Botnetz-IPs gar nicht erst in die Datenbank wandern.
- Inhaltsfilter wie rspamd oder SpamAssassin für alles, was die Verhaltensprüfungen passiert.
Wirkung messen statt schätzen
Ob Greylisting bei dir etwas bringt, steht im Log:
# abgewiesene Erstversuche
grep -c 'Greylisted' /var/log/mail.log
# davon Absender, die nie wiedergekommen sind
grep 'Greylisted' /var/log/mail.log \
| grep -oE 'client=[^ ]+' | sort | uniq -c | sort -rn | head -20
Interessant ist das Verhältnis: Wie viele der verzögerten Triplets tauchen ein zweites Mal auf? Kommen fast alle wieder, kostet Greylisting bei dir nur Wartezeit und der Filter muss eine Stufe höher ansetzen. Bleibt ein grosser Teil weg, arbeitet es wie vorgesehen.
Wichtig ist, diese Zahl vor und nach der Einführung zu erheben. Ein Rückgang der Spammenge im Postfach beweist für sich noch nicht, welche Stufe ihn verursacht hat.
Häufige Fragen
Wie stark senkt Greylisting das Spamaufkommen?
In dokumentierten Praxisberichten aus Zeiten hoher Botnetz-Aktivität lagen die Rückgänge im Bereich von 80 bis 90 Prozent der Zustellversuche. Heute ist der Effekt kleiner, weil Spam zunehmend über kompromittierte Konten echter Mailserver läuft, die korrekt wiederholen. Als erste, sehr günstige Stufe lohnt es sich trotzdem.
Gehen durch Greylisting Mails verloren?
Nicht, wenn die Gegenstelle sich an den Standard hält: Ein 4xx ist ein temporärer Fehler, und jeder korrekt arbeitende Mailserver wiederholt die Zustellung. Verloren gehen können Mails von schlecht implementierten Versandsystemen, die einen temporären Fehler wie eine endgültige Ablehnung behandeln.
Was ist ein Triplet?
Die Kombination aus Absender-IP, Envelope-Absender und Empfänger. Nur wenn dieselbe Kombination nach der Sperrfrist erneut auftaucht, wird zugestellt. Manche Implementierungen prüfen statt der vollen IP nur das Netz, um IP-Rotation grosser Versender abzufangen.
Warum kommen Bestätigungsmails plötzlich verspätet an?
Das ist der typische Nebeneffekt. Transaktionsmails von Shops, Passwort-Resets und Zwei-Faktor-Codes kommen von Absendern, die dein Server noch nie gesehen hat. Solche Versender gehören auf eine Whitelist, sonst wartet der Nutzer minutenlang auf seinen Code.
Weiterlesen
- SPF, DKIM und DMARC einrichten
Die drei Einträge in der richtigen Reihenfolge, typische Syntaxfehler und wie du von p=none auf p=reject kommst, ohne Mails zu verlieren.
- Postfix-Grundkonfiguration für kleine Server
main.cf-Einstellungen, die wirklich zählen: Restriktionen, TLS, Limits und ein Setup, das kein offenes Relay wird.
- Mailadressen auf Webseiten vor Harvestern schützen
Was gegen automatisiertes Absammeln wirkt, was nur Barrierefreiheit kostet, und warum das Kontaktformular meist die bessere Antwort ist.
- PHP-Mailformulare gegen Header-Injection absichern
Eingaben validieren, Header-Zeilen filtern, Rate-Limits setzen und Spam abfangen, ohne echte Anfragen zu blockieren.