Zitat von alex handle alex.handle@gmail.com:
Hallo Liste!
Bin gerade dabei ein Mailgateway für ein paar externe Domains aufzubauen. Leider habe ich nicht die Möglichkeit die Accountdaten zu synchronisieren, deshalb habe ich mir gedacht ich löse das Problem mittels Recipient Verification. Möchte nämlich kein Backscatter-Source sein ;)
Jetzt besteht leider nur das Problem die richtigen Einstellungen für das Caching der Empfängeradressen zu finden.
Die Standardeinstellungen zum positiv Caching finde ich ziemlich gut, jedoch beim negativ Caching gibts noch Probleme.
Generell wollte ich das negativ Caching deaktivieren, da ich denke, dass die Datenbank ziemlich schnell zugemüllt ist, und die meisten Spammer immer neue Adressen generieren, jedoch bei der Einstellung "address_verify_negative_cache = no" wird immer beim 1. Versuch ein temporärer Fehler zurück gegeben, dies möchte ich jedoch vermeiden.
Sollte nicht so sein, eventuell ist der smtp timeout zu kurz eingestellt oder der "verify" Eintrag in master.cf hat ein process limit welches zu niedrig ist.
Ich habe mir auch den Parameter "address_verify_negative_refresh_time = 3h" angesehen. Wenn ich das richtig verstanden habe prüft Postfix jede nicht existierende Adresse alle 3 Stunden am Backend-Server. Falls es die Adresse auf einmal doch gibt wird die expire-time abgwartet ansonsten wird die expire-time erneuert?
Nein, refresh meint aber diesem Zeitpunkt geht Postfix davon aus das der Eintrag erneut geprüft werden müsste. Falls dies nicht funktioniert wird er einfach weiter verwendet. Die expire time gibt an ab wann der Eintrag aus der Cache Datenbank enfernt wird d.h. danach gar nicht mehr verwendet werden kann.
Bei einer dictionary attack würde das ja bedeuten, dass erstmal alle nicht gültigen Adressen in der Verfify DB landen, und dann noch alle 3 Stunden auf dem Backend-Server verifiziert werden. Das würde ja heißen, dass die Attacke den Backend-Server mehrmals belastet.
Die Adressen werden nur dann erneut verifiziert wenn die gleiche Adresse nach über 3h erneut angefragt wird. Bei Spam Einmaladressen fallen sie einfach nach der expire time aus der DB.
Hab ich hier was komplett falsch verstanden?
Nicht komplett, aber in Details...
Wie löst ihr das Problem in der Praxis? Was wären hier die optimalen Einstellungen um die DB nicht zuzumüllen und die Backend-Server nicht zu sehr zu belasten.
Generell ist es nur bei Servern mit sehr geringer Connect Rate sinnvoll einen "langsamen" Adressen lookup durchzuführen. Die Probleme sind folgende:
- Eine Dictionary Attack übersteht so etwas nicht bzw. diese wir an die eigentlichen Zielserver durchgereicht.
- Das System ist Abhängig von der Verfügbarkeit der externen System die Abgefragt werden.
- Es verdoppelt die Anzahl der benötigten Prozesse.
Mein Idee wäre folgende:
address_verify_negative_expire_time = 2h address_verify_negative_refresh_time = 3h
Alle negativ Einträge werden nur 2 Stunden gecached, dann autom. gelöscht. Die refresh_time ist größer als die expire_time und ein Refresh kommt deshalb nie zustande.
Macht keinen Sinn. Wie oben erklärt wird ein refresh eh nur bei erneutem auftauchen der Adresse durchgeführt. Also einfach expire auf einen etwas niedrigeren Wert stellen und gut ist. Eventuell Postfix 2.7 in betracht ziehen, dort kann eine dateibasierte DB verwendet werden die dann auch deutlich größer werden darf.
Gruß
Andreas