IT security, FreeBSD, Linux, mail server hardening, post-quantum crypto, DNS, retro computing & hands-on hardware hacks. Privater Tech-Blog seit 2003.

Kategorie: E-Mail & Mailserver (Seite 6 von 7)

Mailserver-Praxis mit Postfix und Dovecot — SPF, DKIM, DMARC, DANE, MTA-STS und Spam-Abwehr mit Rspamd.

Postfix nach hause telefonieren

Ich war mal wieder auf so einem lustigen Postfixvortrag… Die verschiedenen Möglichkeiten der Spamabwehr waren natürlich wieder Thema. Der Vortragende ist dabei tierisch auf sender adress verification abgegangen. Er hat es quasie als Lösung aller Probleme verkauft. Puhh, ich habe mich bald an der Mate verschluckt. Ich mein… OK in ganz besonderen Fällen kann es möglicherweise helfen (mir fallen zwar gerade keine ein aber…) und früher ging da vielleicht mal was. Im Grunde macht diese Art der „Spamabwehr“ nur Stress.

Sender adress verification / callback verification / callout verification???

Versucht jemand eine E-Mail einzuliefern, versucht Postfix vor der Annahme der E-Mails zuerst selbst eine E-Mail an den Absender zuzustellen. Klappt dieses nimmt er die E-Mail an und wenn es nicht geht, dann nicht. Kommt also eine E-Mail vom Absender: spam@spamgott.net versucht Postfix diesem Absender eine E-Mail zuzustellen. Es wird also geprüft ob es die Domain überhaupt gibt, dann wird geschaut ob es einen MX-RECORD gibt, dann wird versucht eine Verbindung zu diesem Server aufzubauen. Ist es nicht möglich würde Postfix die jeweilige Meldung an den einliefernden „durchreichen“. Damit würden E-Mails nicht abgewiesen nur weil der Maileingangsserver des vermeintlichen Absenders gerade Stress hat oder dort Greylisting aktiviert ist. Wäre es möglich eine E-Mail einzuliefern wird die E-Mail erst überhaupt angekommen und die Absenderadresse in folgender Datei abgelegt:

/var/lib/postfix/verify_cache.db

Aktiviert wird der ganze Foo in der Postfix Konfigurationsdatei /etc/postfix/main.cf:

smtpd_recipient_restrictions =
….........,
reject_unverified_sender,
….........,

Klingt alles erst einmal ganz gut, oder? Ne überhaupt nicht…. Die Idee ist nett aber wenn man sich nun mal vorstellt eine Domain wird zum versenden von Spam missbraucht, dann schlagen bei diesem Server nicht nur die ganzen Bounce E-Mails auf, sondern zusätzlich noch der ganze Verification Krims. Es soll auch Absender geben die man wirklich nicht erreichen kann (sinnfrei, ist mir auch klar). Diese E-Mails kommen natürlich nicht an…. Versucht immer mal wieder jemand E-Mails an Empfänger zuzustellen, welche es nicht gibt, machen Mailserver gerne mal für eine gewisse Zeit dicht. Was ebenfalls nicht gut ist.

Und mal im Ernst, niemand will wirklich Strom, Traffic und Hardwareleistung bezahlen für den Mist. Wenn man sich einfach nur unnötige Last auf sein System ziehen will, wäre SETI@home mein Tipp! Mit etwas Hirnschmalz in seine Konfiguration gibt es deutlich bessere und effektivere Möglichkeiten. Dieser Weg ist einfach mal wieder der Versuch die Arbeit anderen aufzuhalsen.

Siehe auch: SPF-Record einrichten

Fragen? Einfach melden.

Zu pingelig?

Klar, nach RFC müssen bestimmte Dinge bei einem Mailserver zusammenpassen.

Nach RFC1912 – Section 2.1 muss der Rückwärts aufgelöster Hostname zu dessen Vorwärtsauflösung passen.

Als Beispiel:
Wenn ich nachfrage welcher DNS Name zur IPv4 Adresse 10.2.3.4 gehört und darauf die Antwort bekomme, es ist: test.example.com…. Ja dann muss auf die Frage welche IPv4 Adresse zum DNS Namen test.example.com gehört auch die Antwort kommen: 10.2.3.4

Aus Sicht des testenden ist die Wahrscheinlichkeit schon höher dass beide Systeme unter der gleichen Kontrolle stehen. Zusätzlich haben Bots in einem Botnetz extrem selten die Möglichkeit diese Einträge passend zu setzten und der Administrator des Systems hält sich nicht nur die RFCs sondern konfiguriert zudem ordentlich. Es ist daher ebenfalls wahrscheinlich dass er sich bei seinen sonstigen Konfigurationen auch Mühe gegeben hat. Dieses lässt sein System zusätzlich sicherer gegen Missbrauch erscheinen.

Weiter im Text…
Denn nach RFC 2821, Section 3.6 muss der im HELO/EHLO angegebene DNS Name nicht nur ein gültiger Fully Qualified Domain Name (FQDN) sein, sondern er muss zusätzlich zum Hostname des einliefernden Mailservers passen. So lässt sich nun ersehen dass nicht nur IP und DNS unter der gleiche Kontrolle zu sein scheinen, sondern gleichfalls das Mailsystem.

Der Admin scheint also zu wissen was er tut und hat auch die Kontrolle über das System.

Ich prüfe dieses nun bei jeder einzuliefernden E-Mail. Ist nicht alles korrekt, wird die E-Mail abgelehnt. In den letzten Wochen tauchen genau hier gehäuft Unstimmigkeiten auf und dieses nicht bei kleinen „Wurstbuden“ sondern auch bei den ganz Großen! Natürlich ist es kein zwingender Grund E-Mails auf dieser Basis abzuweisen…. Da die Sysadmins der Mailserver, vor allem der ganz GROSSEN, ja Fachleute sind… Sollte man von diesen erwarten können sich an diese einfachen Vorgaben zu halten, oder? — Oder ist es wirklich zu pingelig?

 

 

 

Siehe auch: DMARC einrichten

Fragen? Einfach melden.

DKIM Schüssel getauscht

Nachdem nun alle etwas nervös wegen zu kurzer DKIM Keys sind (512Bit), diese lassen sich wohl bei Amazon in knapp 72 Stunden knacken. Habe ich dann meine Schlüssel auch einmal getauscht. Diese hatten bisher eine Länge von 1024 Bit, mit diesen wäre ich also noch locker auf der sicheren Seite denn noch kann es ja nicht schaden sie auf 2048Bit aufzubohren. Fast alle Systeme können mit diesen inzwischen umgehen. Die Leistung aktueller Systeme sollte heute ebenfalls nicht sonderlich unter diesen Schlüssellänge leiden.

Die Schlüssel sind schnell erstellt:

$ dkim-genkey -b 2048 -s kernel-error.de -d kernel-error.de

Wie gewohnt habe ich dann den TXT-RECORD in mein Zonenfile gekippt. Beim signieren der Zone per DNSsec sprang mich aber folgende Fehlermeldung an:

dnssec-signzone: error: dns_rdata_fromtext: kernel-error.de:25: ran out of space

Na nu? Ach so… ja klar! Der TXT-RECORD ist zu lang. Da gibt es ja eine Beschränkung…. Fast vergessen! Mehr als 255 Zeichen sind ja nicht zulässig. Ich musste den DKIM TXT-RECORD also in ein multi-line TXT-RECORD umwandeln. Nicht weiter kompliziert, einfach Klammer auf, Klammer zu und alles brav mit Anführungszeichen trennen. Damit sieht mein Zoneneintrag nun wie folgt aus:

kernel-error.de._domainkey IN TXT ( "v=DKIM1; g=*; k=rsa; "
                    "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1V7WG+ZchvAxfJ2wi9jn7vWVs2mDkk66cqrKjTETdbuPwL"
                    "CX4N4IXTemT7SMS2Z+gTxcPNnUCorcMsXigNlGJK4Oq8GNx0fcxbXB+vq522FpM6FY8FVTfhL7bqLg5ajp9k0boJnSRv"
                    "F4wY3nci6E7CYCdP9XjHVoOciJdlrGFMo8rYGGiI9Ubgvue8etqgPCV2T8BKEZgys7kabPyaujSHmqrPbBkjb/F+QPJH"
                    "WqcyD7ywfT5vUkrj40Qiwsr7HxGk9aYCAHwyvdP4dvXd5xfMH2QlRKbrMjIQfKJfD5cfTiAl7YgFBFO1n7Wfj5syB6FE"
                    "bRZR9HO+rusv0hojiViQIDAQAB" )

Schnell noch mit einer Testmail an: check-auth@verifier.port25.com prüfen ob alles korrekt ist.

Fertig….

----------------------------------------------------------
DKIM check details:
----------------------------------------------------------
Result:         pass (matches From: kernel-error@kernel-error.com)
ID(s) verified: header.d=kernel-error.com
Canonicalized Headers:
    To:'20'<check-auth@verifier.port25.com>;'0D''0A'
    Subject:'20'check-auth@verifier.port25.com'0D''0A'
    MIME-Version:'20'1.0'0D''0A'
    Content-Type:'20'text/plain;'20'charset=UTF-8;'0D''0A'
    '20'format=flowed'0D''0A'
    Content-Transfer-Encoding:'20'7bit'0D''0A'
    Date:'20'Fri,'20'09'20'Nov'20'2012'20'11:33:48'20'+0100'0D''0A'
    From:'20'Sebastian'20'van'20'de'20'Meer'20'<kernel-error@kernel-error.com>;'0D''0A'
    Message-ID:'20'<c580aed4c89d48c1a93fea35ee80fe30@vandemeer.de>;'0D''0A'
    DKIM-Signature:'20'v=1;'20'a=rsa-sha256;'20'c=simple/simple;'20'd=kernel-error.com;'0D''0A'
    '09's=kernel-error.com;'20't=1352457228;'0D''0A'
    '09'bh=v55t4Oe0VsnE3Xa3exogjgnS10dkjG1rhPQxGz4STJo=;'0D''0A'
    '09'h=To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:'0D''0A'
    '09''20'Date:From:Message-ID;'0D''0A'
    '09'b=

Canonicalized Body:
    check-auth@verifier.port25.com'0D''0A'
    

DNS record(s):
    kernel-error.com._domainkey.kernel-error.com. 300 IN TXT "v=DKIM1; g=*; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtlhidIl+KZgelAOOVYiGHi+uGxEnpjmhXH2IVZNpH69ZsWYTYd1OgXIvWQnAiQ4rRCyvbjcrKaFnXJUpda9eGJeqlr3hE4YhOPLS34K86+8Gr17+WOofkdc3STmlqAI60r1+bQQh8rCWb1YPXIssinq3ll8GVDwAEmh3Bm8zSWz2Ntc+W/maURTlZbMGaRoi+lwhBzr+DnNYL+mPs3UVQoE9ei2Z/bjNQzdpzWeriFgfk56muVZNTvmn8LxkugMhoHMohCr/vkr99xTVmIeMFwMerB2B/JOpeADIf4Wsz6OJQR3GaBA91MX9T2nFncvW3pL03O4wYYVCGnFqz8gbcQIDAQAB"

NOTE: DKIM checking has been performed based on the latest DKIM specs
(RFC 4871 or draft-ietf-dkim-base-10) and verification may fail for
older versions.  If you are using Port25's PowerMTA, you need to use
version 3.2r11 or later to get a compatible version of DKIM.

 

Siehe auch: DKIM einrichten

Fragen? Einfach melden.

Das kann doch nicht sein, oder?!?!?

Da schicke ich doch heute eine E-Mail ab und bekommen Sekunden später etwas wie das Folgende zurück:

Ihre E-Mail wird aus Gründen der Spam- und Virenabwehr zurückgehalten bis ihr Absender bestätigt wurde. Klicken sie zur Bestätigung auf diesen Link oder antworten sie auf diese E-Mail mit dem Betreff: „Supperspamabwehr8857“

Double facepalm reaction to encoding problems

O_o ist das ein Scherz? Wie arm ist denn dieser Versuch? Ja, ok… Vor vielen vielen Jahren war es wohl eine erste Notlösung aber so etwas setzt man doch heute nicht mehr ein. Zumindest war ich davon überzeugt!

Jetzt mal im Ernst, dem durchschnittlichen User kann man so etwas nicht zumuten. Er wird es einfach nicht verstehen, selbst wenn man es in deutsch schreibt. Mailinglisten, Onlineshops oder ähnliches würden zusätzlich nicht auf so etwas reagieren. Ein ordentlich konfigurierter Mailserver sollte hier wohl besser funktionieren – oh ja, dann müssten hier nicht die User sonder der „Admin“ denken….

Ich halte dieses fast so überflüssig wie das Gefummel mit den E-Mail Adressen. Auf vielen Webseiten steht unter -Kontakt- oft etwas wie: E-Mail: wurstsuppe – at – wurstdomain.de

Davon mal abgesehen dass jeder Spamroboter dieses schon beim einlesen herausfiltern kann, steht ja oft im Link hinter dieser Adressverwurstung die korrekte E-Mail Adresse im mailto:

Selbst wenn es in einem Bild hängt, ganz ohne Link… Glaubt wirklich noch jemand dass diese Spamroboter kein OCR beherrschen? Den einzigen denen man mit so etwas das Leben schwer macht, sind User welche einem wirklich eine E-Mail schicken wollen.

Bei dem ganzen Thema sind, wie so oft, einfach mal die Admins gefragt. Diese sollten ihren Job machen und nicht versuchen es über Dinge wie Challenge-Response auf die User abzuwälzen! Wie war es noch gleich: „Früher war alles besser“

Fragen? Einfach melden.

SPF Records

Veraltet: Der dedizierte SPF-DNS-Record-Typ (Typ 99) wurde mit RFC 7208 im Jahr 2014 als deprecated eingestuft. SPF wird heute ausschließlich über TXT-Records veröffentlicht. Siehe den aktuellen SPF-Beitrag.

Es gibt seit einiger Zeit einen dedizierten SPF-Record. Dieser wird auch bereits von vielen SPF-Filtern sowie Bind seit Version 9.4 unterstützt. Dieses entlastet etwas die TXT Anfragen und sorgt für mehr Ordnung. Wird dieser SPF Record vom jeweiligen SPF Filter unterstützt, fragt dieser meist zuerst nach dem SPF-Record und wenn es keine Antwort gibt als nächstes nach einem TXT-SPF Record.

Um diesen Filtern etwas Arbeit zu ersparen, das DNS etwas aufzuräumen und auf lange Sicht RFC konform zu bleiben (es würde mich nicht wundern wenn der TXT-SPF Record bald ausstirbt). Sollte man ebenfalls bei seiner SPF geschützten Domain einen solchen Record erstellen.

Für meinen Bind und die Domain kernel-error.de würde ein Beispiel wie folgt aussehen:

kernel-error.de.    IN    SPF    "v=spf1 ip4:212.23.142.146 ip6:2001:7d8:8001:100::2 ptr:smtp.kernel-error.de mx a:smtp.kernel-error.de -all"

Geprüft werden kann alles schnell und einfach mit DIG:

# dig kernel-error.de IN SPF +short
"v=spf1 ip4:212.23.142.146 ip6:2001:7d8:8001:100::2 ptr:smtp.kernel-error.de mx a:smtp.kernel-error.de -all"

Sobald alle gängigen Filter die SPF-Records implementiert haben und alle Postmaster ihre Einführungszeit hatten, kann man dann sicher seinen TXT-SPF-Record entfernen. Dieses dauert sicher wieder ein paar Jahre! Ach ja, mein TXT SPF Record schaut so aus:

kernel-error.de.    IN    TXT    "v=spf1 ip4:212.23.142.146 ip6:2001:7d8:8001:100::2 ptr:smtp.kernel-error.de mx a:smtp.kernel-error.de -all"

 

 

Mehr zum Lesen:

SPF
SPF-RECORD
SPF-RECORD erkärt

Postfix und AMaViS: content_filter oder smtpd_proxy_filter?

AMaViS ist eine bewährte Lösung, um eingehende E-Mails nach Viren und Spam zu filtern. Was viele nicht wissen: Es gibt zwei grundverschiedene Wege, AMaViS an Postfix anzubinden. Die meisten HowTos beschreiben content_filter. Es gibt aber auch smtpd_proxy_filter, und der ist mein persönlicher Favorit.

content_filter: Erst annehmen, dann filtern

Postfix nimmt die Verbindung vom einliefernden Mailserver an und empfängt die komplette E-Mail. Der einliefernde Server bekommt ein „OK, E-Mail erhalten“ und baut die Verbindung ab. Postfix speichert die Nachricht zwischen und schiebt sie an AMaViS weiter. Hat AMaViS gerade alle Hände voll zu tun, versucht Postfix es einfach immer wieder.

Erkennt AMaViS die E-Mail als Spam oder Virus, passiert je nach Konfiguration: Info an Absender/Empfänger, Quarantäne, Tagging, oder die Nachricht verschwindet einfach. In jedem Fall hat Postfix die Nachricht zu diesem Zeitpunkt bereits angenommen und die Verantwortung übernommen.

smtpd_proxy_filter: Filtern vor der Annahme

Hier leitet Postfix die E-Mail während der SMTP-Session direkt durch AMaViS. Der einliefernde Server bekommt nicht einfach ein „OK“, sondern die durchgereichte Antwort von AMaViS: „Nein, das ist Spam“ oder „Virus im Anhang, abgelehnt“. Unser Mailsystem nimmt die E-Mail nur an, wenn AMaViS nichts dagegen hat.

Das bringt uns rechtlich auf eine andere Seite. Man kann uns nicht nachsagen, dass wir eine anvertraute Nachricht unterdrückt oder vorenthalten hätten. Wir haben die Nachricht nie angenommen.

Die Nachteile

AMaViS braucht zur Bewertung Zeit. Genau diese Zeit halten wir den einliefernden Mailserver fest und die Verbindung offen. Das kostet Ressourcen. Über diesen Weg können weniger E-Mails gleichzeitig angenommen werden als wenn Postfix sie erst zwischenspeichert. Mehr Leistung bedeutet mehr parallele AMaViS-Prozesse.

Ist gerade kein AMaViS-Prozess frei, wird die E-Mail nicht abgewiesen. Postfix liefert einen temporären Fehler (4xx), und der einliefernde Server probiert es später noch einmal. Das ist normales SMTP-Verhalten.

Konfiguration

In /etc/postfix/master.cf die Anbindung über smtpd_proxy_filter statt content_filter einrichten:

smtp inet n - - - 100 smtpd
    -o smtpd_proxy_filter=127.0.0.1:10024

amavis unix - - n - 6 smtp
    -o smtp_data_done_timeout=1800
    -o smtp_send_xforward_command=yes
    -o disable_mime_output_conversion=yes
    -o disable_dns_lookups=yes

127.0.0.1:10025 inet n - - - - smtpd
    -o content_filter=
    -o smtpd_proxy_filter=
    -o local_recipient_maps=
    -o smtpd_authorized_xforward_hosts=127.0.0.0/8
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_data_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks=127.0.0.0/8
    -o strict_rfc821_envelopes=yes
    -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks

In /etc/postfix/main.cf die alte content_filter-Anbindung auskommentieren:

#content_filter = smtp-amavis:[127.0.0.1]:10024
#receive_override_options = no_address_mappings

Stolperfalle: receive_override_options

Wichtig: Auch receive_override_options = no_address_mappings muss auskommentiert werden. Sonst schaut Dovecot bei der lokalen Zustellung nicht nach virtuellen Alias-Einträgen. Die E-Mails werden dann mit „user unknown“ zurückgewiesen:

postfix/pipe[18488]: 5FC6EE20C1:
  to=<kernel-error@kernel-error.com>, relay=dovecot,
  dsn=5.1.1, status=bounced (user unknown)

Dovecot findet den User nicht in der SQL-Tabelle, weil Postfix die Alias-Auflösung übersprungen hat. Ohne no_address_mappings löst Postfix den virtuellen Alias zuerst auf, und Dovecot bekommt den richtigen Usernamen.

Wer inzwischen auf rspamd umgestiegen ist: rspamd arbeitet standardmäßig als Milter, was die Proxy-vs-Content-Filter-Frage komplett eliminiert. Als Milter prüft rspamd die E-Mail während der SMTP-Session, genau wie smtpd_proxy_filter, aber ohne den Umweg über einen zweiten SMTP-Dienst.

Fragen? Einfach melden.

Die vergessenen abuse und postmaster Adressen

Für jede Domain, die E-Mail empfängt, muss es eine postmaster@ und eine abuse@ Adresse geben. E-Mails an diese Adressen müssen angenommen werden, und jemand sollte sie auch lesen. Geregelt ist das in RFC 5321 und RFC 2142.

Wofür die Adressen da sind

postmaster@domain.tld ist für technische Fragen zum Mailsystem. Wenn jemand Probleme hat, E-Mails an eine Domain zu schicken, wendet er sich an den Postmaster. Im schlechtesten Fall sitzt dort ein Mensch, der die Nachricht an den richtigen Admin weiterleiten kann.

abuse@domain.tld ist für Missbrauchsmeldungen. Wird die Domain zum Spam-Versand missbraucht, schreibt man an abuse. Eine Abuse-Adresse findet sich auch im WHOIS der meisten IP-Netze.

Warum das in der Praxis scheitert

Immer wieder kommen Beschwerden bei mir an, weil E-Mails an gehostete Domains abgewiesen werden. Also sucht man den Grund, findet ihn im Reject (Blockliste, fehlender Reverse-DNS, dynamische IP) und schreibt dem Postmaster der Absenderdomain. Vier Sekunden später kommt die Antwort: „Postfach nicht gefunden“ oder „Mailbox voll“.

Die Adressen existieren nicht, oder niemand liest sie. Das ist nicht nur ein Verstoß gegen die RFCs. Es macht die Fehlersuche für alle Beteiligten unmöglich.

Das eigentliche Problem: Filter

Selbst wenn die Adressen existieren, reicht das nicht. Wenn jemand Probleme hat, E-Mails an unsere Domain zu schicken, versucht er es über postmaster@. Wird diese E-Mail ebenfalls gefiltert, hat der Absender verloren. Ein Hinweis auf ein echtes Problem mit dem Mailsystem erreicht uns nicht.

Die Lösung: postmaster@ und abuse@ müssen an allen Filtern vorbei. Sowohl in Postfix als auch im Content-Filter.

Postfix: Empfänger whitelisten

In /etc/postfix/recipient-access die beiden Adressen mit OK eintragen:

# /etc/postfix/recipient-access
postmaster@kernel-error.de    OK
abuse@kernel-error.de         OK

Danach die Hash-Datei erzeugen:

postmap /etc/postfix/recipient-access

In /etc/postfix/main.cf muss check_recipient_access vor den Restrictions stehen. Die Reihenfolge ist entscheidend: Postfix arbeitet die Regeln von oben nach unten ab, die erste passende greift.

smtpd_recipient_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        check_recipient_access hash:/etc/postfix/recipient-access,
        reject_rbl_client zen.spamhaus.org,
        ...

Alle nachfolgenden HELO-Checks und RBL-Prüfungen greifen jetzt nicht mehr auf E-Mails an postmaster@ und abuse@.

Wo im SMTP-Dialog prüfen?

Postfix bietet mehrere Stellen für Restrictions:

smtpd_client_restrictions — nach connect
smtpd_helo_restrictions — nach HELO/EHLO
smtpd_sender_restrictions — nach MAIL FROM
smtpd_recipient_restrictions — nach RCPT TO
smtpd_data_restrictions — nach DATA
smtpd_end_of_data_restrictions — nach der Übertragung

Je früher man ablehnt, desto weniger Ressourcen verbraucht man. Wer im HELO prüft, nimmt erst gar keinen Empfänger entgegen. Wer erst nach DATA prüft, hat die komplette E-Mail schon angenommen. Für die meisten Setups ist smtpd_recipient_restrictions der sinnvolle Kompromiss.

Content-Filter: Spam durchlassen

Postfix lässt die E-Mails an postmaster@ und abuse@ jetzt durch. Aber der Content-Filter dahinter wird sie trotzdem filtern, wenn man ihm nicht sagt, dass er sie in Ruhe lassen soll.

In rspamd geht das über eine settings.conf Regel, die bestimmte Empfänger vom Spam-Filtering ausnimmt. In AMaViS (falls noch im Einsatz) über @spam_lovers_maps in /etc/amavis/conf.d/50-user:

# AMaViS: /etc/amavis/conf.d/50-user
@spam_lovers_maps = (
  [
    "postmaster\@kernel-error.de",
    "abuse\@kernel-error.de",
  ]
);

Das bedeutet nicht, dass die E-Mail nicht geprüft wird. AMaViS testet weiterhin, lässt die Nachricht aber durch. Viren und verdächtige Anhänge filtere ich an dieser Stelle weiterhin. Nur Spam darf passieren. Denn wenn mir jemand über eine dynamische IP per Telnet eine Nachricht an postmaster@ schickt, soll sie ankommen.

Wer sich grundsätzlich gegen Spoofing absichern will: SPF hilft dabei, festzulegen, welche Server für eine Domain senden dürfen.

Fragen? Einfach melden.

Postfix für sichere E-Mail-Auslieferung: Nur noch per TLS konfigurieren

Verschlüsselte E-Mail-Übertragungen sind meist ganz gut. Zumindest hält sie einem lästige Lauscher vom Hals. Besonders wichtig ist dabei der verschlüsselte Austausch zwischen Mail-Server und Mail-Client. Denn die User sitzen mit ihren Mail-Clients sehr schnell in einem „unsicheren“ Netzwerk. Daher wird inzwischen sehr oft und gut darauf geachtet diese Verbindungen zu sichern.

Die Verbindungen zwischen den Servern werden oft als nicht SO wichtig empfunden. Denn die Kisten stehen ja meist in gesicherten Bereichen (Serverraum, DMZ, Rechenzentrum) und dort zu lauschen ist schon aufwendiger – nicht unmöglich.
Es macht also Sinn seinem Postfix zu ermöglichen seine Server zu Server Verbindungen kryptisch zu gestalten.

Mit folgender Änderung sagt man seinem Postfix dass bei ausgehenden Verbindungen TLS benutzt werden kann, wenn möglich.

$ postconf -e smtp_tls_security_level=may

Wird Postfix nun ein Zertifikat gereicht, welches von Postfix mangels der Root-Zertifikate nicht geprüft werden kann… Ja, dann ist hier schon wieder Ende.

Sep 25 10:38:07 rootserver postfix/qmgr[2069]: D69471A2026: from=<kernel-error@kernel-error.com>;, size=38273, nrcpt=1 (queue active)
Sep 25 10:38:07 rootserver postfix/smtp[9454]: certificate verification failed for gmail-smtp-in.l.google.com[2a00:1450:400c:c05::1b]:25: untrusted issuer /C=US/O=Equifax/OU=Equifax Secure Certificate Authority

Auf Debian Systemen finden sich eine recht gepflegte Ansammlung im Paket: ca-certificates. Nachdem dieses installiert ist:

$ apt-get install ca-certificates

Sagt man Postfix noch wie er es findet:

$ postconf -e smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Schon sollte Postfix in der Lage sein, ausgehende Serververbindungen zu prüfen und zu verschlüsseln.

Siehe auch: Client-Initiated Renegotiation deaktivieren

Fragen? Einfach melden.

Mailserver – früher war alles besser…

Nein, nicht ganz. Früher war es nur noch nicht so wichtig, ob man sich nun an die RFCs oder Empfehlungen hält noch nicht. Solange man nur smtp spricht….
In den letzten Jahren hat sich dieses etwas geändert. Da immer mehr Benutzer und Server in Fluten von Viren- und SPAMMAILS ertranken. Wurden die Ansprüche an Filter, welche diesem Herr werden sollten, immer höher.

Eine Idee ist nun zu schauen ob der einliefernde E-Mail-Server überhaupt sauber konfiguriert ist. Denn jemand der keine genaue Ahnung hat was er da genau konfiguriert, der konfiguriert mal schnell Lücken für Spammer oder ist sogar selbst einer. Lässt ein Admin seine Konfiguration schleifen, dann schleift auch meist die Sicherheit des Systems. Möchte man als Mailserver ernst genommen werden, sollte man zumindest korrekt konfiguriert sein. Im normalen Leben erwarte ich ja von meinem Arzt auch eine gewissen Hygiene, sonst lasse ich mich nicht anfassen!

Jetzt testen diese Spamfilter also in gewissem Maße die korrekte Konfiguration des einliefernden Mailservers. Passt diese nicht zu den gängigen RFCs und/oder Empfehlungen, werden die E-Mails halt abgewiesen. Man glaubt überhaupt nicht, wie viele Spammails man damit schon erschlägt. Leider betrifft dieses nun auch die E-Mails der Mailserver, welche von „faulen“ Admins oder…. –interessierten Laien- betrieben werden.
Diese stöhnen nun natürlich, denn der -faule- Admin muss sich kümmern und der interessierte Laie versteht überhaupt nicht was los ist. Für diese war es früher „einfacher“.

Es wird leider sehr schnell unterschätzt was zum korrekten Betrieb eines E-Mail Servers alles nötig und zu beachten ist. Nur zu dumm dass man Mittlerweile sogar damit auffällt *lach*!

Ich habe selbst eine gewissen Zeit mal die RBL von https://web.archive.org/web/20171023192347/http://www.rfc-ignorant.org/ eingebunden. Dieses trifft leider nur die Benutzer. Die wollen und können dieses Problem nicht verstehen. Es kann denn noch sehr spannend sein, zu sehen wer dort hin und wieder gelistet ist.
Denkt also immer brav an RFC5321 https://web.archive.org/web/20171023192347/http://www.rfc-ignorant.org/policy-postmaster.php sowie an RFC2142 https://web.archive.org/web/20171023192347/http://www.rfc-ignorant.org/policy-abuse.php Was wird noch gleich oft vergessen? Ja genau…. PRT, A/AAAA-RECORD und HELO!

 

 

Siehe auch: MTA-STS einrichten

Fragen? Einfach melden.

Postfix

Zu beginn habe ich diese Seite nur mit dem Text: „Zeugs zu Postfix“ gefüllt!

Dieses erfüllt auch jetzt noch fast alles was es als Beschreibung zu sagen gibt. Aber auch nur fast! Postfix ist einer der besten und flexiebelsten MTAs die ich kenne. Hier werfe ich nun immer mal wieder Zeugs hin, welches vielleicht hilfreich sein könnte.

 

 

Fragen? Einfach melden.

« Ältere Beiträge Neuere Beiträge »

© 2026 -=Kernel-Error=-RSS

Theme von Anders NorénHoch ↑