In den Kommentaren zu meinen Mailserver-Beiträgen wurde ich schon mehrmals darauf hingewiesen, dass man sich den Aufwand mit Spamassassin, Amavis und Co eigentlich sparen könne, weil Postscreen alleine schon mehr als ausreichend wäre. Spammails würden das System gar nicht mehr oder nur in seltenen Fällen erreichen. Kürzlich habe ich mein privates Mailsystem neu aufgesetzt und es einfach mal ausprobiert: Spamabwehr nur durch Postscreen alleine.
… das hat leider nicht wie erhofft funktioniert. Schon in der ersten Nacht sind auf einem einzigen Account 2 Spammails durch den Filter gegangen. Das war für mich schon Grund genug, wieder meinen Spamassassin zu aktivieren. Seitdem ist auch wieder Ruhe. Offenbar reicht ein Postscreen leider nicht in allen Fällen aus. Schade. Ich hätte gerne auf den Amavis-Apparat verzichtet und nur die schlanke Postscreen-Lösung genutzt.
Wie wehr ihr Spammails ab? Nutzt ihr Postscreen zusammen mit Spamassassin, oder reicht ersteres bei euch alleine aus? Welche Postscreen-Einstellungen funktionieren bei euch zuverlässig?
Manchmal ist es sinnvoll, E-Mails von einem Server aus nicht direkt in das Internet zu verschicken, sondern ein E-Mail Gateway / einen Postfix-Relayserver zu nutzen. Der absendende Server funktioniert dann wie ein normaler E-Mail Client und schickt seine E-Mail zuerst an einen zentralen Mailserver, der diese dann an das Ziel weiterleitet. Das kann z.B. aus folgenden Gründen sinnvoll sein:
Ein Server an einem DSL-Anschluss soll E-Mails versenden. Ein direkter Versand wird aus verschiedenen Gründen nicht empfohlen (Dynamische IP-Adresse, kein passendes Reverse DNS, …)
Mehrere Server werden betrieben. Um nur einen einzigen Mailserver mit seinen Komponenten warten zu müssen, soll ein zentrales E-Mail Gateway genutzt werden. DKIM müsste dann z.B. nur für das Gateway eingerichtet werden, und nicht für jeden sendenden Server einzeln.
Ich beschreibe hier im folgenden, wie ihr einen bereits bestehenden Postfix-Mailserver zu einem Gateway erweitern könnt, und wie ihr Postfix auf allen anderen Servern einrichtet. Den bereits eingerichteten Postfix-Server nenne ich „Gateway“; alle anderen Server werden „Clients“ genannt (da sie hier nur eine Rolle als Mailclients spielen“).
Im Frühjahr 2014 habe ich meine erste ausführliche Anleitung zur Einrichtung eines einfachen Mailservers mit Postfix und Dovecot auf diesem Blog veröffentlicht. Viele Leser sind so erfolgreich zu ihrem privaten oder geschäftlichen Mailserver gekommen. Nachdem nun zwei Jahre vergangen sind und sich mittlerweile auch mein eigenes Setup geändert hat, will ich euch mit diesem Beitrag eine neue, aktualisierte Anleitung für einen Mailserver mit erweiterten Funktionen vorstellen.
Diese Anleitung wurde mehrmals im Ganzen auf einem neu installierten Ubuntu Server getestet und für funktionierend befunden. Solltest du dennoch einen Fehler finden oder einen Verbesserungsvorschlag haben, schreib‘ mir an: mailserver [ett] thomas-leister.de
Am Ende dieser Anleitung werdet ihr einen robusten Mailserver mit Spam-Abwehrmechanismen und weiteren Extras vor euch haben, den ihr so direkt verwenden und auf das Internet loslassen könnt. Außerdem liegt mir etwas daran, die grundlegende Funktionsweise des Mailsystems zu erklären, sodass ihr versteht, was Schritt für Schritt eingestellt wird. Ich betreibe selbst erst seit wenigen Jahren einen eigenen Mailserver und hätte mir zu Anfangszeiten gewünscht, zu verstehen, was ich da eigentlich konfiguriere. Wer einfach nur schnell zu einem Ergebnis kommen will, kann die Erklärungen natürlich überspringen und einfach nur Schritt für Schritt die Anweisungen befolgen. Ich rate aber trotzdem, sich mit dem Thema zumindest grundlegend auseinanderzusetzen: Wenn ein gewisses Verständnis vorhanden ist, können künftige Erweiterungen und Änderungen an der Software einfacher durchgeführt werden.
Tipp: Wer statt auf Handarbeit lieber auf eine fertige Lösung setzt, sollte sich einmal Mailcow ansehen.
Catch-All Aliase erlauben es, alle eingehenden E-Mails auf eine bestimmte Domain an ein oder mehrere einzelne Postfächer weiter zu leiten. Man kann sich das vorstellen wie einen Trichter: Egal an welches Postfach einer Domain eine E-Mail verschickt wird – sie landet letztendlich immer bei einer bestimmten definierten Adresse.
Das kann man sich zunutze machen, wenn man beispielsweise E-Mails an nicht (mehr?) existierende Postfächer abfangen und an ein einzelnes Sammelpostfach weiterleiten will.
Mit dem Standard-Mailserver-Setup nach meiner Anleitung können Benutzer des Mailservers E-Mails über einen falschen Namen verschicken. Das lässt sich z.B. über Mozilla Thunderbird und die „Identitäten“-Funktion in der Kontenverwaltung realisieren. Ein Benutzer user1@domain.de ist also in der Lage, eine E-Mail zu verschicken, die nicht seinen eigenen Benutzernamen als Absenderadresse trägt, sondern beispielsweise user2@domain.de. Dass dieses „Feature“ von den Benutzern missbraucht werden kann, ist selbstverständlich. Solcher Missbrauch kann dann nur doch eine entsprechende Analyse des Logfiles aufgeklärt werden. Der Empfänger der E-Mail hat aber selbst keine Möglichkeit, die Fälschung zu enttarnen.
Besser ist es, dem Missbrauch vorzubeugen und festzulegen, dass ein Benutzer als Absenderadresse nur seine eigene Mailadresse (oder ausgewählte andere Adressen) verwenden darf.
Wenn man schon längere Zeit einen eigenen Mailserver betreibt und schon die ein oder andere Spam-Mail eingetroffen ist, kommt schnell der Wunsch auf, Spam E-Mails zu erkennen und zu löschen oder in Quarantäne zu verschieben. Was die großen E-Mail Hoster können, kann auch im kleinen gemacht werden. Die Technik ist dieselbe.
Benötigt werden dazu folgende Komponenten: Ein Filtersystem, durch das die E-Mails „geschleift“ werden (Amavis), eine Spamerkennung (Spamassassin) und ggf. ein Filtersystem, das die als Spam erkannten E-Mails in einen anderen IMAP Ordner verschiebt (Sieve).
Vorgestern habe ich meine Mailserver auf einen neuen Server umgezogen. Weil die meisten großen E-Mail Anbieter inzwischen einen gültigen PTR Record für die IP-Adresse des Mailservers (Postfix) erfordern, habe ich für meine IPv4- und meine IPv6-Adresse jeweils einen solchen Reverse DNS Eintrag erstellen lassen. Mit dem Record hat dann schließlich auch der Mailversand zu Freenet funktioniert … bis mich heute ein User meines Servers darauf hingewiesen hat, dass es bei ihm zu einer Fehlermeldung komme, wenn er an einen Freenet-User Mails versende:
Das Spamhaus Projekt unterhält eine Blacklist mit IPs von Servern, die aktiv für den Versand von Spam E-Mails missbraucht werden. Diese Liste kann in den eigenen Postfix Server integriert werden. Auf diese Weise können E-Mail von den betreffenden Servern sofort geblockt werden und eine Zustellung findet gar nicht erst statt.
In der Postfix Konfigurationsdatei „main.cf“ wird dazu die Einstellung „smtpd_recipient_restrictions“ bzw „smtpd_relay_restrictions (Ab Postfix 2.10) wie folgt gesetzt: