Datenhaufen zu IT und Elektronik.

Autor: kernel-error (Seite 37 von 48)

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“

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“

 

 

SPF Records

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

Postifx und AMaViS – content-filter oder smtpd-proxy-filter?

Das amavisd-new eine sehr schöne Lösung ist um eingehende E-Mails nach Viren oder Spam zu filtern, muss ich kaum einem erklären. Dass es aber zwei verschiedene Lösungen zur Anbindung an Postfix gibt schon. In den meisten großen HowTo´s zu Postfix und Amavis wird fast immer der Weg über content_filter beschrieben. Daher ist es wohl der verbreitetste! Es gibt zusätzlich noch die Möglichkeit amavis per smtpd_proxy_filter mit Postfix zu verknüpfen, mein persönlicher Favorit. Natürlich haben beide Lösungen wieder Vor- und Nachteile…. Für mich wiegen die Vorteile der smtpd_proxy_filter Lösung schwerer. Eine kurze und grobe Beschreibung sollte ausreichen damit es nachvollziehbar wird! Am besten wir gehen einmal den Weg einer E-Mail, wenn amavis per content_filter angebunden und einmal wenn amavis per smtpd_proxy_filter arbeitet.

 

content_filter:

Im ersten Fall nimmt Postfix die Verbindung vom einsendenden Mailserver an und nimmt die komplette E-Mail entgegen. Der einsendende Mailserver bekommt also von unserem System ein: OK, ich habe die E-Mail komplett und ohne Fehler erhalten und bin nun für alles weitere verantwortlich. Der einsendende Mailserver baut die Verbindung ab und ist damit fertig und zufrieden 🙂 Unser Mailsystem hat diese E-Mail nun zwischengespeichert und schiebt sie weiter an amavis, welches sich um die Filterung und Bewertung der E-Mail kümmert. Hat amavis gerade alle Hände voll zu tun, versucht der lokale Postix es einfach immer wieder, bis die Mail durch ist. Erkennt amavis die E-Mail nun als Virus/Spam passiert (je nach Konfiguration) folgendes. Amavis sendet über Postfix eine Info an den Absender/Empfänger, schiebt die Nachricht in Quarantäne, Tag sie und gibt sie weiter an Postfix, oder lässt sie im schlechtesten Fall „verschwinden“. Verschwindet die E-Mail nicht, landet sie in jedem Fall erst einmal wieder bei Postfix. Dieser kümmert sich jetzt erst um die weitere Zustellung der Nachricht. Also lokal weiter in ein Postfach oder Dovecot, usw. oder an einen weiteren nachgeschalteten Mailserver.

 

smtpd_proxy_filter:

Arbeitet amavis als smtpd_proxy_filter, wird die E-Mail wieder vom einliefernden Mailserver von Postfix angenommen. Nun muss man sich vorstellen das Postfix dabei die E-Mail direkt durch amavis leitet und die Nachricht somit direkt Gefiltert/Bewertet werden kann. Der einliefernde Mailserver bekommt also zum Abschluss vom Postifx nicht einfach ein: OK, E-Mail ist angekommen“ sondern direkt die durchgereichte Nachricht von Amavis: „Ne, das ist SPAM, die lehnen wir ab.“ oder „Ne, da ist ein Virus im Anhang, die E-Mail nehmen wir nicht an!“. Unser Mailsystem nimmt die E-Mail also nur an, wenn amavis nichts dagegen hat. Das bringt uns rechtlich schon mal auf eine ganz andere Seite. Denn man kann uns nicht nachsagen, dass wir eine uns zur Übermittlung anvertraute Nachricht „unterdrückt“ oder dem Empfänger „vorenthalten“ hätten. Denn wir haben die Nachricht ja erst überhaupt nicht angenommen! Zusätzlich müssen wir die E-Mail nicht erst annehmen, zwischenspeichern, an amavis weiterleiten, dort wird die e-mail bearbeitet, dann wird sie wieder an postfix durchgereicht welcher sich erst nun um den weiteren Versand kümmert. Der größten Nachteile sind sicher: Amavis braucht zur Bewertung und Filterung der E-Mail etwas Zeit. Genau diese Zeit halten wir natürlich den Einliefernden Mailserver fest und auch die Verbindung offen. Zusätzlich braucht eine Bewertung/Filterung von E-Mails deutlich mehr Systemresoucen. Es werden also über diesen Weg deutlich weniger E-Mails gleichzeitig eingeliefert werden können, also wenn Postfix die E-Mails erst einmal nur annimmt und zwischenspeichert.
Um so mehr Leistung das System hat um so mehr gleichzeitig Amavis Prozesse sind natürlich möglich. Kann unser Mailserver eine E-Mail gerade nicht annehmen, da kein amavis Prozess frei ist, wird die E-Mail aber nicht einfach als unzustellbar abgewiesen. Nein es gibt einen temporären Fehler 4xx und der einliefernde Mailserver wird es einfach später noch einmal probieren.

 

Um nun amavis als smtpd_proxy_filter arbeiten zu lassen und nicht über die Funktion content_filter, müssen in der Datei: /etc/postfix/master.cf folgende Änderungen vorgenommen werden:

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

Postfix muss noch die Funktion content_filter genommen werden. Dazu müssen in der Datei /etc/postfix/main.cf noch die beiden folgenden Zeilen auskommentiert werden:

 

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

Wichtig ist, nicht zu vergessen auch die receive_override_options = no_address_mappings auszukommentieren. Denn sonst gibt es lustige Fehler… Zum Beispiel schaut dovecot bei der lokalen E-Mail Zustellung nicht nach virtuellen alias Einträgen. Diese E-Mail werden einfach mit dieser Meldung zurückgewiesen:

 

Oct 28 00:00:12 postfix/pipe[18488]: 5FC6EE20C1: to=<kernel-error@kernel-error.com>;, relay=dovecot, delay=11, delays=10/0.01/0/1.3, dsn=5.1.1, status=bounced (user unknown)

 

Oct 31 16:00:47 dovecot: auth(default): master in: USER#0111#011kernel-error@kernel-error.com#011service=deliver
Oct 31 16:00:47 dovecot: auth(default): prefetch(kernel-error@kernel-error.com): passdb didn't return userdb entries, trying the next userdb
Oct 31 16:00:47 dovecot: auth-worker(default): sql(kernel-error@kernel-error.com): SELECT email as user, concat('*:storage=', quota_kb, 'K') AS quota_rule2, password, 5000 as uid, 5000 as gid, '/zpool/mailbox/kernel-error.com/kernel-error' as home FROM virtual_users WHERE email='kernel-error@kernel-error.com';
Oct 31 16:00:47 dovecot: auth-worker(default): sql(kernel-error@kernel-error.com): Unknown user
Oct 31 16:00:47 dovecot: auth(default): passwd(kernel-error@kernel-error.com): lookup
Oct 31 16:00:47 dovecot: auth(default): passwd(kernel-error@kernel-error.com): unknown user
Oct 31 16:00:47 dovecot: auth(default): master out: NOTFOUND#0111

 

 

IPv6 / Default Route / DNS /DHCP

Nun arbeite ich schon seit einigen Jahren, privat wie im Berufsleben, mit IPv6. Was mir bei vielen Schulungen, Einführungen, Netzumstellungen usw… auffällt ist dass es vielen Admins schwer fällt zu verstehen wie der Client nun an seine Netzwerkkonfiguration kommt. Da in der letzten Zeit immer mehr Fragen zu dem Thema bei mir landen (scheinbar müssen viele jetzt noch „auf den letzten Drücker“ IPv6 lernen), versuche ich es hier mal grob aufzuschlüsseln.

Im Grunde ist es ganz einfach:
–    Bei IPv6 verteilt der DHCPv6 Server keine Default Route, das macht der Router!
–    Der DHCPv6 kann DNS Server, NTP-Server usw. verteilen und für eine automatische Eintragung des Clients am DNS Server sorgen. Er kann natürlich auch zusätzliche IPv6 Adressen verteilen.
–    Der Router verteilt sein Präfix per RA (Router Advertisment).
      o    Der Client kümmert sich um die Generierung einer IP-Adresse.
      o    Im RA kann der Client aufgefordert werden einen DHCPv6 Server nach weiteren Informationen zu fragen.
      o    Im RA kann ein DNS Server an den Client übergeben werden (RDNSS)

Erst einmal ist also für eine vollständige Autokonfiguration des Clients kein DHCPv6 Server mehr nötig. Denn der Client hat immer und direkt eine IPv6 Adresse vom scope link (fe80:….). Diese Adresse hat der Client sobald er einen Netzwerklink hat und wird aus der eigenen MAC-Adresse per EUI (Extended Unique Identifier) erstellt. Nun sendet der Client im einfachsten Fall ein RS (Router Solicitation) an die Multicast Adresse, auf welche ALLE Router hören, ins Netzwerk (ff02::2). Der Router antwortet dann mit einem RA und übermittelt dem Client das IPv6-Präfix. Der Client baut dann aus diesem Präfix und EUI wieder eine Adresse vom scope global. Sowie bei aktivierten Privacy Extensions eine gewürfelte Adresse. Der Client hat nun mindestens zwei IPv6 Adressen bei aktivierten Privacy Extensions sogar bereits drei IPv6 Adressen, sowie eine Default Route über den Router welcher uns den RA verpasst hat.

Ist am Router die Option RDNSS gesetzt wird dem Client zum Präfix auch noch ein DNS Server übergeben. Dieses ~verstehen~ leider noch nicht alle Clients. Damit wäre der Client schon in der Lage vollständig am „Internetleben“ teil zu nehmen.
Ist am Router das Other Config Flag gesetzt, wird der Client angewiesen einen DHCPv6 Server nach weiteren Einstellungen/Informationen zu fragen.

Nun kommt der DHCPv6 Server ins Spiel. Wird dieser vom Client nach weiteren Einstellungen/Informationen gefragt wird er die gewünschten Informationen an den Client übermitteln. Was nicht bedeutet dass der Client damit eine weitere IPv6 Adresse bekommen muss. Es ist auch möglich nur wins, ntp, dns usw.. an die Client zu übermitteln. Der Client muss dazu über einen DHCPv6-Client verfügen. Dieser ist bisher noch nicht bei allen Clientsystemen per Default vorhanden bzw. aktiviert!

Natürlich kann man seinen DHCPv6 Server auch so konfigurieren dass er zusätzlich noch eine dritte bzw. vierte (oder mehr) IPv6 Adresse an den Client übermittelt. Damit wäre der DHCPv6-Server zusätzlich in der Lage diese IPv6 Adressen einem DNS Server bekannt zu machen.

Wie auch beim Thema NAT bei IPv6 gibt es Vorschläge dem DHCPv6 Server wieder die Option Route zu spendieren, ich denke es ist nicht nötig / sinnvoll… Hier kann man sich streiten!

Die Idee bei IPv6 möglichst viel Arbeit auf den Client zu verlagern ergibt meist erst auf den zweiten Blick Sinn. Bei IPv4 war es bisher so dass der Client als erstes ins Netzwerk herumbrüllt ob den ein DHCP Server da ist, dann gab es einen regen Austausch zwischen diesen Systemen und am Ende hatte der Client alle seine Informationen. Denkt man aber nun daran dass im größten IPv4 Netzausbei maximal (24^2)-2 Hostadressen herausspringen und beim IPv6 im kleinsten Netzausbau minimal (64^2)-2 Hostadressen herausspringen… Ja dann ahnt man schon, wenn sich hier ein Router noch ums Popo abwischen kümmern muss, dann ist nicht mehr viel mit Netzwerk.

Noch Fragen? Dann fragen….

Legal Obst „klauen“

Ich habe da vor kurzem etwas interessantes gefunden…..

Nimmt man einem Landwirt einfach seine Produkte vom Feld, mag es für einen Selbst ein Kavaliersdelikt sein. Man nimmt ja auch nur einen Apfel mit…. Aber wenn sich 100 Leute dieses denken, dann ist mehr als nur ein Baum leer und der Landwirt kann nichts verkaufen.

Nun zu meinem Fund… Es gibt da eine Webseite in welcher jeder seinen oder öffentliche „Bäume“ eintragen kann. Hier kann nun jeder suchen welche Sorte es bei ihm in der Nähe gibt und dort hinflitzen und sich sein Eimerchen voll machen. Genau beschrieben ist dieses alles direkt auf der Seite und diese nennt sich Mundraub.org und hier ist zu finden:
http://www.mundraub.org/

So long….

 

Windows Server Backup mit Nagios überwachen

Möchte man die Windows Server Sicherung seines Microsoft Windows Server 2008 oder jünger per Nagios überwachen gibt es viele Wege….
Ich habe einen sehr einfachen gesucht und leider konnte Google mir auf Anhieb keinen nennen.
Auf den zu überwachenden Systemen ist jeweils eine voll (Bare Metal) Sicherung eingerichtet. Diese startet 1 bis x mal am Tag. Ist man auf dem Server angemeldet kann man einfach in der Management Console in die Windows Server-Sicherung schauen und den Zustand der letzten Sicherungen sehen. Natürlich auch ob gerade eine Sicherung läuft, wohin gesichert wird, wie viele Kopien vorhanden sind usw. usw…

Alles Dinge die mich erst einmal nicht interessieren. Der für mich spannende Punkt ist, wann war die letzte erfolgreiche Sicherung und ist diese älter als drei Tage? Warum, weshalb, wo, wie, was… Ist mir im ersten Schritt egal. Ich möchte nur informiert sein, wenn es keine aktuelle Datensicherung gibt.
Nun bin ich eher in der Unixwelt zuhause aber die Windows PowerShell sollte da doch was können, richtig?
Wie ich gesehen habe gibt es ein Snapin für das Windows ServerBackup. Wenn ich dieses hinzufüge kann ich über Get-WBSummary mir eine Art Zusammenfassung anschauen.
In dieser finde ich unter dem Punkt LastSuccessfulBackupTime das Datum der letzten erfolgreichen Sicherung. In meinem Fall also jeweils das Datum meiner letzten Vollsicherung. Daraus kann man doch sicher was basteln, oder?
Ich habe mir also ein kleines Script zusammengeworfen welches folgendes tut:
Es greift sich die Information über die letzte erfolgreiche Sicherung ab und vergleicht sie mit dem aktuellen Datum. Ist es gleich, war die letzte Sicherung heute und alles ist gut. Ist es von gestern, ist auch noch alles gut und Nagios bekommt ein OK zurück. Wenn es aber älter ist (2 – 3 Tage) gibt es eine Warnung an Nagios zurück und wenn es älter ist als 3 Tage gibt es die Meldung critical an Nagios weiter. Nagios kümmert sich dann wie gewohnt darum mich passend zu informieren.
Aktuell greift das Script keinerlei Exeptions ab und es ist nicht… sagen wir mal schön 😀 Ich werde es, je nach Zeit, immer mal etwas erweitern. Seine eigentliche Aufgabe erfüllt es denn noch jetzt schon!

Download:
>>Das Script kann hier in der letzten Version heruntergeladen werden<<

Damit einem nicht schon beim ersten Start des Scriptes die folgende Fehlermeldung anspringt:

Das Windows PowerShell-Snap-In „Windows.ServerBackup“ ist auf diesem Computer nicht installiert.

Muss über den Server-Manager ein weiteres Feature hinzugefügt werden. Hier sind unter Windows Server-Sicherungsfeatures noch die Befehlszeilentools zu installieren. Zusätzlich muss die Policy so geändert werden, dass dieses Script auch ausgeführt werden darf. Dazu einfach in die PowerShell folgendes eingeben:

# Set-ExecutionPolicy RemoteSigned

Ich lege das Script nun im Root des primären Filsystems in den Ordner c:\scripte\
Nun kann ich im NSClient++ die Sektion NRPE Handlers erstellen und dort ein Kommando für den Aufruf des Scriptes erstellen. Möchte man über den NSClient++ Windows PowerShell Scripte ausführen, schaut der Aufruf beim ersten hinschauen etwas seltsam aus:

[NRPE Handlers]
command[check_windowsbackup]=cmd /c echo C:\scripte\backuptest.ps1 | powershell.exe -command -

Natürlich muss der NSClient++ so konfiguriert sein, dass er auch als NRPE arbeitet:

[modules]
NRPEListener.dll
NRPEClient.dll
.....

[NRPE]
port=5666
command_timeout=120
allowed_hosts=1.2.3.4
socket_timeout=120
....

Nach einem Neustart des Clientdienstes sollte man nun auch schon vom Nagiossystem aus einen Test starten können:

$ check_nrpe -H 4.3.2.1 -p 5666 -t 120 -c check_windowsbackup
OK: Backup von gestern

Die restliche Einrichtung in Nagios sollte bekannt sein, sonst fragen 🙂


* UPDATE *

Die Version 0.2 fängt nun zusätzlich den Fehler ab, wenn die Befehlzeilentools nicht installiert sind. Ich dachte erst wäre nicht so wichtig… Aber nachdem ich es auf 10 Systeme gepackt hatte und immer nachgeschat habe 😛 Nun greift es dieses also ebenfals ab und gibt eine CRITICAL Meldung an Nagios weiter!


* UPDATE *

Die Version 0.3 fängt nun auch ab ob eine Sicherung über einen Tageswechsel hin noch läuft.

MOTDstat

Habe ich überhaupt schon von meinem neusten Lieblingsgimmik berichtet? Nein? Nö nö nö….. Es nennt sich MOTDstat und „ersetzt“ die bekannte Message of the Day.

Im Grunde ist es ein kleines bash Script welches einem ausgewählte Systeminformationen beim Login anzeigt. Es hat sogar die Möglichkeit einem im Fall der Fälle eine E-Mail zu schicken, dieses überlasse ich dann aber doch lieber Nagios 🙂

Nach dem Download installiert sich alles fast von allein.

$ make install

Damit alles regelmässig aktualisiert wird folgt man am besten dem Vorschlag der README und wird den folgenden Aufruf in seine crontab.

$ crontab -e
*/5 * * * * root /usr/bin/motdstat --generate 1>/dev/null 2>/dev/null

Damit wird der Zustand alle 5 Minuten aktualisiert und alle Infos zum CronJob landen im Nirwana!

Bei einem motdstat -g schiebt MOTDstat die eigentliche Datei /etc/motd in /etc/motd.ori und wirft den generierten Systemzustand in /etc/motd. Bei einem neuen Login wird diese nun gefolgt von der /etc/motd.ori augegeben. Testen lässt sich dieses mit einem:

$ motdstat -s

Einstellungen zum Script lassen sich unter /etc/motdstat vorneheme. Da ich meine Message of the Day so oder so immer anfasse um dort möglichst auffällig den Systemnamen erscheinen zu lassen (ich komme sonst mal schnell durcheinander), passt es ganz gut dazu. Es kann natürlich keine echte Überwachung ersetzten,ist aus meiner Sicht denn noch ein ganz nettes „Programm“.

So long…..

 

 

Die vergessenen abuse und postmaster Adressen

Was oft übersehen wird, ist dass es für jede Domain die Adressen postmaster@domain.tld sowie abuse@domain.tld geben muss. E-Mails an diese Adressen müssen angenommen werden und sollten auch gelesen werden!

 

Geregelt ist dieses im RFC5321 und im RFC2142 (ich verlinke hier mal auf http://www.rfc-ignorant.org , die haben es schön bunt gemacht, das ist ja für viele so wichtig)!

 

Hat man nun technische Fragen zum Mailsystem einer Domain, oder technische Anmerkungen, dann sendet man eine E-Mail an: postmaster@domain.tld
Im schlechtesten Fall sollte dort ein Mensch sitzen welcher in der Lage ist, diese E-Mail an den „echten“ Administrator weiter zu leiten.

 

Jetzt kommen immer mal wieder ~Beschwerden~ bei mir an, weil E-Mails Externer an gehostete Domains abgewiesen werden. Also macht man sich auf die Suche nach dem Grund. Der eigentliche Absender hat diesen zwar mit einer 5xx Meldung zusammen bekommen…. Die Nachricht war aber leider auf Englisch und Fehlermeldungen – vor allem in englischer Sprache – werden gerne und schnell gelöscht! Hat man den Grund also gefunden, schreibt man den Grund an den „Beschwerdeführer“ und natürlich den Postmaster der Absenderdomain. Das die E-Mail abgewiesen wurde weil sie auf eine Blockliste steht, der R-DNS nicht stimmt, alles von einer dynamischen IP kommt usw. usw…. Sehr oft hat man dann 4 – 5 Sekunden nach dem Absenden der E-Mail auch schon eine Antwort: – Sorry, Postfach nicht gefunden. / – Mailbox voll.
Es hängt ja mal schnell zusammen 😛

 

Eine E-Mail an die Abuse Adresse schreibt man immer, wenn auf einen Missbrauch hingewiesen werden soll. Wird also die Domain zum verschleudern von Spam und Viren missbraucht oder ähnliches. Eine Abuse Adresse findet sich auch im Whois der meisten IP Adressen/Netze. Sie erfüllt hier den gleichen Auftrag. Man sollte denn noch folgendes beachten. Wird eine Domain als Absender einer Spam oder Virenmail missbraucht und dieses läuft nicht über den Mailserver der Domain… Dann sind die Verantwortlichen der Domain in gewissem Umfang machtlos. Zwar kann man versuchen sich gegen so etwas mit Techniken wie SPF zu schützten. Dieses muss denn noch beim Empfänger ausgewertet werden.

 

Nun reicht es nicht nur die beiden Adressen postmaster@domain.tld sowie abuse@domain.tld anzulegen. Sondern die Absender sollten diese Adressen erreichen können. Hat jemand also ein Problem damit E-Mails an unsere Domain zu schicken, da sie immer von irgendwelchen Filtern abgewiesen wird, dann versucht er ggf. sich an den Postmaster der Domain zu wenden. Wird diese E-Mail nun ebenfalls gefiltert – dann hat der Absender verloren?!?! So könnte den Postmaster ein Hinweis auf ein echtes Problem mit seinem Mailsystem nicht erreichen. Das wäre schlecht, diese Adressen sollten also unabhängig von den Filtern immer durchgelassen werden.

 

Dieses geht über Whitelisting des jeweiligen Empfängers im Postfix und AMaViS. Denn Postfix sowie AMaViS dürfen ihre Filter nicht auf E-Mails an diesen Empfänger anwenden.

 

Hier nun ein kleines Beispiel dazu:

Postfix access-Tables

Für eine einfache Konfiguration erstellt man am einfachsten die Datei recipient-access unter /etc/postfix, der Inhalt besteht dann aus den jeweiligen Empfängeradressen und der Information was damit gesehen soll.

$ cat /etc/postfix/recipient-access
#Empfänger
postmaster@kernel-error.de    OK
abuse@kernel-error.de        OK

OK ist dabei immer erlauben

REJECT lehnt immer mit einem Error 5xx ab
In der Version 2.0 von Postfix wurde dieses Thema komplett überarbeitet. Es gibt noch viele weitere Möglichkeiten der access-tables. Hier einfach mal RTFM oder fragen.

Damit Postfix am Ende mit den Daten etwas anfangen kann fehlt noch ein:

$ postmap /etc/postfix/recipient-access

 Als letzten Schritt weisst man nun Postfix an, diese Daten auch auszuwerten. Dabei ist die Stelle ganz wichtig! Warum? Ganz einfach… Postfix hat die Möglichkeit verschiedene Filter an verschiedenen Stellen des Ablaufes zu nutzen. Die Filter werden immer von oben nach unten abgearbeitet und sobald einer passt, greift auch dieser. Sehr ähnlich wie bei einer Firewall.

So lassen sich Prüfungen an folgenden Stellen konfigurieren:

smtpd_client_restictions
nach connect

smtpd_helo_restrictions
nach helo

smtpd_sender_restrictions
nach mail from

smtpd_recipient_restrictions
nach rcpt to

smtpd_data_restrictions
nach data

smtpd_end_of_data_restrictions
nach mailübertragung

Ein solches Vorgehen ergibt schnell einen Sinn, wenn man darüber nachdenkt, wie man Last von seinem Mailserver fernhalten kann. Erwartet man zum Beispiel im HELO einen fqdm, kann man dieses direkt nach dem HELO prüfen (smtpd_helo_restrictions) und die Verbindung ggf. ablehnen. Der Mailserver nimmt also nicht noch dem Absender, den Empfänger oder gar die ganze E-Mail entgegen, bevor die Verbindung zurückgesetzt wird. Für einfache Systeme reicht es meist seine Prüfungen nach der Übergabe des Empfängers (smtpd_recipient_restrictions) zu setzten. Erst ganz am Ende (smtpd_end_of_data_restrictions) zu prüfen halte ich für gefährlich. Zwar sollte dieses Vorgehen kleinere Mailsysteme nicht weiter stressen… Denn noch hat man ja schon die komplette E-Mail angenommen, bevor man etwas damit tut. Rechtlich sicherer wäre es die Nachricht abzulehnen, noch bevor sie ganz übertragen ist.

Ich trage daher soweit oben wie möglich meine Whitliste ein:

/etc/postfix/main.cf

smtpd_recipient_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        check_recipient_access hash:/etc/postfix/recipient-access,
        ...........,

Nachdem Postfix die neuen Einstellungen übernommen hat, greifen alle nachfolgenden Filter nicht mehr auf alle Empfänger mit einem OK in der /etc/postfix/recipient-access.

AMaViS spam_lovers_maps

Postfix lässt nun zwar die E-Mails durch, AMaViS wird sie denn noch grillen. Es sei denn wir sagen AMaViS dass diese Empfänger Spam Liebhaber sind 🙂

Folgender Eintrag in /etc/amavis/conf.d/50-user erfüllt dieses:

@spam_lovers_maps = (
  [
        "postmaster\@kernel-error.de",
        "abuse\@kernel-error.de",
  ]
  );

 

AMaViS testet die E-Mail nun zwar noch immer, sie wird denn noch druchgewunken. Nun gibt es nicht nur Spam Liebhaber „spam_lovers_maps“ sondern auch Viren Liebhaber „virus_lovers_maps“ oder Liebhaber gesperrter/verdächtiger Dateianhänge „banned_files_lovers_maps„. Mir kommt nur gerade kein Grund in den Sinn, warum man dem Postmaster einen „verdächtigen“ Dateianhang oder gar einen Virus schicken sollte. Daher fische ich in der Regel diese E-Mails weiterhin raus. Nur Werbung lasse ich für diese beiden Adressen passieren. So sollten mich alle E-Mails an Postmaster oder Abuse erreichen. Selbst wenn sie von einem falschen Absender per Telnet über eine dynamische und gesperrte Adresse versucht mir Viagra zu verkaufen *schnief*.

« Ältere Beiträge Neuere Beiträge »

© 2025 -=Kernel-Error=-

Theme von Anders NorénHoch ↑