Mailmanagement / Spam Protection
Ich hasse SPAM. Man sieht es vermutlich an der Anzahl an Blogposts (man könnte fast meinen, der ganze Blog bezieht sich nur auf das Thema Spam). Inzwischen habe ich aber eine relativ perfekte Möglichkeit gefunden, SPAM zu vermeiden, und möchte alle daran teilhaben lassen.
Meine Webdomain ist - wie unschwer zu erkennen - devdave.de. Diese leitet via DNS Eintrag zu einem Mailserver, der bei Uberspace gehostet wird. Bei Uberspace habe ich ein Catch-All eingerichtet und lasse alle E-Mails an meinen privaten Mailaccount bei Googlemail weiterleiten.
Das führt zu der Situation, dass ich für jedes Online-/Offline-Formular, das ich ausfülle, eine dedizierte Mailadresse angeben kann.
Ein gutes Beispiel ist kickstarter. Dort war lange Zeit kickstarter@devdave.de hinterlegt.
E-Mails, die Kickstarter an mich gesendet hat, wurden also zunächst über meinen DNS an den Uberspace MX weitergeleitet. Uberspace hat die Mails an meinen privaten Account weitergeleitet.
Jetzt kam es, wie es kommen musste. Nachdem ich ein, zwei Projekte gebacked hatte kam die Mail in falsche Hände. Für mich wurden Accounts bei BackerRock angelegt und auf einmal kam auch seltsamer Spam an diese Mailadresse von dubiosen, chinesischen (Schrott)händlern. So konnte ich direkt rückverfolgen, woher der Spam kommt bzw. welche Mailadresse kompromitiert wurde.
Glücklicherweise unterstützt Uberspace auch Qmail. Mit Qmail können einzelne Filterregeln auf Dateisystemebene erstellt werden. Um den Spam an kickstarter@devdave.de zu blocken, habe ich einfach eine Qmail-Datei angelegt, welche das Postfach kickstarter@devdave.de als #5.1.1 (Mailbox not found) deklariert und eine entsprechende Antwort an den versendenden Mailaccount zurückgibt. Bei kickstarter habe ich meine Mailadresse auf eine valide geändert und konnte so die "kompromitierte" Mailadresse loswerden.
Weiterhin hat das ganze noch den Vorteil, dass - sobald wirklich ein Anbieter mal anfängt Spam zu verschicken - ich sofort herausfinden kann, woher der Spam kommt, da jeder Anbieter ja seine eigene, dedizierte Mailadresse von mir bekommen hat.
But, how to do this?
Schritt 1: Eine Domain besorgen
Das sollte relativ klar sein. Ihr braucht eine eigene Domain für das Vorgehen. Wir nennen sie jetzt einfach mal "myfancymaildomain.at"
Schritt 2: Uberspace Account anlegen
Es muss natürlich nicht Uberspace sein, aber mit 5€/Monat (bzw. dem Pay-What-You-Want-Prinzip) sind sie relativ günstig und für diesen Zweck optimal, da hier der MX schon komplett eingerichtet ist und Qmail Unterstützung geboten wird.
Schritt 3: Domain bei Uberspace hinzufügen
Ihr loggt euch jetzt via SSH in den Uberspace ein und führt folgenden Befehl aus, welcher eure Domain als Maildomain bei Uberspace hinterlegt.
uberspace mail domain add myfancymaildomain.at
Der Befehl gibt euch Werte zurück, welche ihr bei eurem Domainprovider hinterlegen müsst. Die Dokumentation von Uberspace zum Befehl findet ihr hier: manual.uberspace.de/web-domains
Schritt 4: DNS Eintrag anpassen
Die von Uberspace genannten Werte müssen jetzt bei eurem Domainprovider (in meinem Fall ist das Namecheap.com) hinterlegt werden. Auch an den DKIM und SPF Eintrag denken! Ohne DKIM und SPF Eintrag werden eure Mails, die ihr sendet, höchstwahrscheinlich als SPAM deklariert.
Siehe: DomainKeys Identified Mail und Sender Policy Framework
Schritt 5: Catch-All bei Uberspace einrichten
In eurem Uberspace Dashboard geht ihr auf Mail, fügt eine neue Adresse hinzu und gebt als Weiterleitungsziel euren (privaten) Mailaccount an. Als Adresse muss ein
+
eingetragen und gespeichert werden.
Schritt 6: E-Mails versenden
Um auch Mails von eurer Domain zu versenden, richtet ihr ein weiteres Postfach ein. Dazu wie in Schritt 4 ein Postfach einrichten, diesmal aber keine Weiterleitung, sondern ein Passwort angeben. Die Mails an dieses Postfach werden nicht weitergeleitet (!) aber ihr könnt via webmail.uberspace.de auf euren Mailaccount zugreifen. Das ist nicht immer so komfortabel, da ihr wahrscheinlich nicht zwei Accounts (euren Privaten) und den neu eingerichteten abrufen wollt. Aber auch dafür gibt es eine Lösung! Die meisten Mailprovider bieten das Abrufen von E-Mails via POP an. Ihr könnt also wahrscheinlich euren (privaten) Mailanbieter anweisen, E-Mails von dem neu angelegten Account remote via POP abzurufen. Das gleiche gilt auch für SMTP. Bei GMail wählt ihr Einstellungen -> Alle Einstellungen anzeigen -> Konten und Import (mail.google.com/mail/u/0/#settings/accounts) Unter "Senden als" könnt ihr einrichten, dass ihr Mails mit eurem neu angelegten Account senden könnt. Unter "Nachrichten von anderen Konten abrufen" könnt ihr Mails remote via POP abrufen lassen.
Schritt 7: Aber was ist jetzt, wenn ich Spam bekomme?
Einfach. Du gehst wieder in dein Uberspace Dashboard unter Mails. Angenommen, du bekommst Spam an compromised@myfancymaildomain.at
Dann legst du eine .qMail Adresse an (ganz unten auf der Seite). Die Adresse ist der Mailboxname (ohne Domain) der kompromitiert ist, in unserem Fall also compromised. Als Zustellungsregel trägst du
|preline /usr/bin/exit 67
ein. Das führt dazu, dass Mails, die an diese Adresse gesendet werden, mit dem Statuscode #5.1.1 - Mailbox not found beantwortet werden. Für den Mailabsender sieht es also so aus, als würde die Mailbox nicht existieren (und er gibt hoffentlich auf :-))