Ratelimiting

Die Ziele des Ratelimitings sind zusammengefasst:

  • Schutz der Allgemeinheit vor Spam/Phishing
  • Schutz der Reputation der eigenen Mailserver
  • Aufrechterhaltung des Maildienstes

Im ausgehenden Filtern ist ein Ratelimiting zwingend notwendig. Wir erlauben keinen unlimitierten Versand von Mails und lassen keinerlei Ausnahmen zu.

Hierzu möchten wir eine Reihe Argumente geben:

1. Man kann nicht ausschließen, dass Spam oder Phishing im eigenen Netz erzeugt wird

  • Nutzer sind auf Phishing hereingefallen und haben ihre Mailpasswörter weitergegeben oder Malware hat sich auf deren PCs eingenistet.
  • Webformulare oder CMS-Systeme haben Bugs, die von Spammern ausgenutzt werden.

2. Diese Mails werden unter Umständen nicht vom Spamfilter erkannt

  • Spammer/Phisher testen ihre Mails oft gegen bekannte Spamfilter und tunen diese, bis sie nicht mehr erkannt werden.
  • Reputations- und verhaltensbasierte Filter sind wirkungslos.

3. Die Anzahl versendeter Mails erreicht schnell sechsstellige Werte

  • Ein einzelner Client erreicht Raten von mehreren Mails/s, ebenso unsere Filtersysteme.
  • Die Reaktionszeit bis zum Abschalten des Clients liegt zwischen mehreren Stunden und mehreren Tagen (Wochenende). Spammer starten ihre Kampagnen daher gerne freitags abends.

4. Die Reaktion der Empfänger bzw. deren Mailserverbetreiber ist schnell und hart

  • Sind unter den Empfängern sogenannte Honeypots bzw. Spamtraps, werden solche Wellen innerhalb von Minuten erkannt und die IP-Adressen unserer Gateways auf Blacklisten aufgenommen.
  • Melden Empfänger den Spam ihrem Mailprovidern, so pflegen diese unter Umständen manuelle Blacklisten.
  • Der Versand von Mails ihrer Einrichtung wird dadurch innerhalb von Minuten bis Stunden effektiv blockiert, alle ihre Nutzer sind nicht mehr in der Lage, Mails zu versenden.

5. Die Blockade ist lang andauernd

  • Bei gut geführten Reputationsdiensten/Blacklisten wird nach Abstellung der Quelle die Blockade nach ein bis zwei Tagen automatisiert entfernt, auf Delisting-Anfragen wird innerhalb von Stunden reagiert.
  • Bei sonstigen Blacklisten und Mailprovidern müssen Sie das Delisting einzeln manuell und auf unterschiedlichsten Wegen anfragen (Mails, Webformulare), oft mehrmals wiederholt.
  • Die Reaktionszeiten auf die Delisting-Gesuche liegen zwischen Tagen und bis zu zwei Wochen.

 

1. Umsetzung

Das Ratelimiting wird im DFNMailSupport mit dem postfwd realisiert. Jede Mail wird gegen vier voneinander unabhängigen Raten geprüft:

  1. Absenderadresse pro Stunde
  2. Absenderadresse pro Tag
  3. einliefernder Host pro Stunde
  4. einliefernder Host pro Tag

Adressen, Hostnamen und IP-Adressen können in Form von Regular Expressions angegeben werden. Für nicht aufgeführte Adressen oder Hosts gelten anpassbare Default-Limits von 300 pro Stunde und 500 pro Tag (abgekürzt 300/h und 500/d).

2. Erstellung der Raten

Zum Erstellen der notwendigen Raten führt man am besten eine Zählung der Mails pro Absender und Host über mindestens einen Monat durch, besser länger. Die Default-Limits sollten für normale Nutzer ausreichend sein. Beispiele für Absender, die unter Umständen eigene Raten benötigen, sind:

  • Mailverteiler
  • Newsletter
  • Sekretariate
  • Prüfungsämter
  • Bibliotheken

Hierbei ist zu beachten, dass eine Mail viele Empfänger beinhalten kann. Der postfwd zählt also nicht die Anzahl der eingelieferten Mails, sondern die Anzahl Empfänger in diesen.

Da wir für Sie drei Instanzen an drei unterschiedlichen Standorten betreiben, bekommt jede Instanz ein Drittel der Gesamtrate; bei beispielsweise 500/h sind das dann 166/h pro Instanz. Normale Mailer (postfix, sendmail, exim) kommen damit zurecht und nutzen die Raten aller Instanzen aus, nicht jedoch Microsoft Exchange. Schickt dieses beispielsweise eine Mail über einen Mailverteiler mit 200 Empfängern, so kann es diese nicht auf mehrere Instanzen verteilen. Diese Mail kann also trotz einer Rate von 500/h nicht versendet werden. Im Fall von Exchange muss daher die Rate auf mindestens die dreifache Größe des Mailverteilers erhöht werden, in diesem Beispiel also 600/h.

3. Technische Details

Queueing

Wird eine Rate erreicht, so antworten unsere Mailserver mit dem SMTP-Returncode 421. Dies führt dazu, dass ihr Mailserver die Mail in seiner Queue zurückstellt und später weitere Zustellversuche unternimmt. Wird die Rate nach Ablauf der Sperrzeit wieder unterschritten, so werden die Mails auch wieder angenommen und zugestellt. Die Auslieferung der Mails wird also lediglich verzögert.

Algorithmus

  1. Von der ersten Mail merkt der postfwd sich Absender und Hostname/IP und den Zeitstempel in einem Cache, setzt einen Counter pro Absender und Hostname auf die Anzahl der Empfänger dieser Mail und schreibt vier Timeout-Zeitstempel (plus eine Stunde bzw. einen Tag).

  2. Bei jeder weiteren Mail erhöht er die Counter um die Anzahl Empfänger in dieser Mail. Wird eines der Limits überschritten, so wird abgelehnt.

  3. Alle 10 Minuten bzw. bei jeder eingehenden Mail checkt der postfwd, ob die Timeout-Zeitstempel erreicht wurden. Ist dies der Fall, so wird der zugehörige Counter aus dem Cache gelöscht. Diese bzw. weitere Mails werden dann wieder nach Punkt 1 behandelt.