Postfix ist ein Mail Transfer Agent für Unix und Unix-Derivate. Die Software sollte zum Entwicklungszeitpunkt eine kompatible Alternative zu Sendmail sein.
sendmail implementiert die Kompatibilitätsschnittstelle von Postfix und ist in fast allen unixoiden Betriebssysteme enthalten, der Mail Transfer Agent, dessen Geschichte bis in die frühen 1980er Jahre zurückreicht.
sendmail versendet E-Mails über das Internet an einen bestimmten Empfänger. Dies kann durch Ausführen des Befehls sendmail in einer Linux-Kommandozeile erfolgen, und kann auch innerhalb eines Programmierskripts verwendet werden.
sendmail: fatal: open /etc/postfix/main.cf: No such file or directory
Vergewissere dich das sendmail auf dem Linux Host vorhanden ist, mit dem Befehl which sendmail oder man sendmail. Falls sendmail nicht gefunden wird, und kein MTA wie Postfix installiert ist, kann sendmail wie folgt bereitgestellt werden.
$ sudo apt install sendmail -y
sendmail in der Kommandozeile
Das folgende Beispiel zeigt ein Linux-Befehl zum Senden einer Nachricht aus der Kommandozeile mit sendmail unter verwendung des echo Befehl.
$ echo -e "Subject:Test Mail using sendmail \nThis is a Test Message\n" | sendmail youremail@example.tld
Der nächste Befehl sendet eine E-Mail mit Absender (From:) Adresse.
$ /usr/sbin/sendmail youremail@example.tld
From: nobody@example.tld
Subject: Test Mail using sendmail
This is a Test Message
.
Der Punkt (.) beendet den Editor und die E-Mail wird versendet.
Mit dem oben gezeigten Beispiel wird interaktiv mit jeder Zeile eine E-Mail erstellt, es soll eine Nachricht mit dem Betreff „Test Mail using sendmail“ im Posteingang von youremail@example.tld zugestellt werden. Die Empfänger E-Mail Adresse entsprechend ändern, vergewissere dich, das sendmail auf dem Host vorhanden ist, und es dem Host erlaubt ist, E-Mails zu versenden.
Weiter eraubt sendmail die Pipeline Anweisung, dabei ist es möglich eine Nachricht mit einer Textdatei zu versenden.
Der Inhalt der Textdatei message.txt hier in diesem Beispiel wie folgt.
From: nobody@example.tld
Subject: Test Mail using sendmail
This is a Test Message
Die sendmail Option -i behandelt das lesen der Nachricht aus der Standard Eingabe ohne Punkt (.) am Zeilenende. Die Option-t Extrahiert die Empfänger aus den Nachrichtenkopfzeilen und wird allen in der Befehlszeile angegebenen Empfängern hinzugefügt.
Datei mit sendmail versenden
Administratoren stehen oft vor der Aufgabe, eine E-Mail direkt von einem Host zu versenden, in diesem Beispiel wird mit sendmail eine Datei als Anhang versendet. Der Zweck hierbei ist es, auf einem Postfix MTA die als SPAM abgewiesenen Zustellversuche „blocked using“ herauszufiltern, und als GZ-Archive zu versenden, dazu muss Postfix auf dem Host konfiguriert sein, es kann auch ein anderer autorisierter MTA sein, oder es wird ein externes SMTP-Relay verwendet.
Option -t extrahiert die Empfänger aus der Nachrichtenkopfzeile. Mit der Option -i ohne . (Punkt) am Ende der Eingabe.
Fazit
Dieses Beispiel zeigt die Anwendung von sendmail, um eine E-Mail mit Anhang aus der Linux Shell direkt zu versenden. Durch ändern der einzelnen Zeilen können viele weitere Anwendungszwecke zum Zug kommen, dabei die Base64 Kodierung durch openssl vorgenommen wird, die echo Anweisungen erzeugen den MIME-MessageBody.
Realtime Blackhole Lists (RBL) sind öffentlich verfügbare Listen im Internet, mit Adressen und Servern, von denen kürzlich schädliche und unerwünschte E-Mails oder verdächtige Aktivitäten ausgegangen sind, wie etwa der Versand von Spam- oder Phishing-E-Mails.
SPAM und Phishing E-Mails eindämmen
Blacklists entstanden, um die Flut unerwünschter E-Mails einzudämmen. Dabei werden in Spamtraps entdeckte IP-Adressen die auf Auffälligkeiten zurückführen auf Schwarzen Listen gesammelt. E-Mail-Server gleichen bei empfangenen Nachrichten ab, ob der Absender auf einer Blacklist enthalten ist. Bei positiver Klassifizierung wird die E-Mail direkt in den Junk-E-Mail-Ordner verschoben oder gar nicht erst angenommen und vom E-Mail-Server verworfen.
Die weitverbreiteten Open-Source Spam Filter SpamAssassin aus dem Apache Projekt, und der Postfix MTA (Mail Transfer Agent) für Unix und Unix-Derivate, eignen sich besonders gut für die Integration. In diesem Tutorial wird auf die Anwendung von Realtime Blackhole Lists (RBL) und DNS Based Realtime Blocklists (DNSBL) mit Postfix eingegangen.
DNS-based Blackhole List mit Postfix
Die Abfrage einer DNSBL ist, wie der Name bereits vermuten lässt, aus technischer Sicht eine DNS-Abfrage. Bei Postfix werden DNS-based Blackhole Lists in nahezu Echtzeit abgefragt, die DNSBLs werden in der Hauptkonfiguration/etc/postfix/main.cfeingetragen, meist untersmtpd_recipient_restrictionswie folgendes Beispiel zeigt.
Bei dieser Überprüfung erfolgt die DNSBL Abfrage noch vor schreiben in den Mail-Spool, dabei wird ein NOQUEUE: reject: zurückgegeben. Der Vorteil ergibt sich daraus, dass hier die Systemressourcen weniger beansprucht werden.
Wie nach jeder Änderung muss Postfix die Aktualisierung übernehmen.
$ postfix reload
Der Blacklist-Testeintrag 127.0.0.2 ist die Loopback-Adresse der SBL-DNS-Zone wie „sbl.spamhaus.org“, die zum Testen der SBL-Konfiguration auf Mailservern verwendet wird. Diese werden auch in den meisten anderen DNSBL-Systemen als Standard-Testadresse für diese Zonen aufgeführt, wie von RFC5782 und RFC6471 empfohlen.
Hinweis: Bei der verwendung von „Public DNS-Resolver“ wie Google Public DNS (8.8.8.8), werden diese in den meisten Fällen mit „not listed“ (NXDOMAIN) antworten. Es wird empfohlen, den eigenen DNS-Server zu verwenden, wenn DNSBL-Anfragen an Spamhaus gestellt werden.
$ host 2.0.0.127.bl.0spam.org
Die Abfrage mit Reverse Loopback Adresse von bl.0spam.org.
$ host -tTXT 2.0.0.127.bl.0spam.org
Die Abfrage des TXT Records von 0spam.org gibt folgendes aus.
2.0.0.127.bl.0spam.org descriptive text "This listings is for RFC Compliance. See RFC 5782. For support and listing removal go to https://0spam.org Possible Values: 127.0.0.1(General Listings), 127.0.0.2(depreciated) 127.0.0.3(can-spam violators) 127.0.0.4(non RFC compliant) 127.0.0.5(repeat of" "fender) 127.0.0.6(bouncing email to the wrong server) 127.0.0.7(open relay) 127.0.0.8(bouncing spoofed emails) 127.0.0.9(fraud/scam, malware or illegal/abusive content)"
Einige DNSBL liefern nützliche Informationen, wie mehrere Loopback Adressen um die Abfragen gezielt zu testen.
$ dig +short TXT 2.0.0.127.hostkarma.junkemailfilter.com @8.8.8.8
"Black listed at hostkarma http://ipadmin.junkemailfilter.com/remove.php?ip=127.0.0.2"
"Black listed (authentication hacker) at hostkarma http://ipadmin.junkemailfilter.com/remove.php?ip=127.0.0.2"
"White listed 127.0.0.2 See http://wiki.junkemailfilter.com/index.php/Spam_DNS_Lists"
"Yellow listed 127.0.0.2 See http://wiki.junkemailfilter.com/index.php/Spam_DNS_Lists"
$ dig +short ANY 2.0.0.127.multi.surbl.org
127.0.0.254
"wild.surbl.org permanent test point"
$ dig +short ANY 2.0.0.127.psbl.surriel.com
"Listed in PSBL, see http://psbl.org/listing?ip=127.0.0.2"
127.0.0.2
$ dig +short ANY 2.0.0.127.dnsbl.sorbs.net
127.0.0.10
"Dynamic IP Addresses See: http://www.sorbs.net/lookup.shtml?127.0.0.2"
127.0.0.5
"Open SMTP Relay See: http://www.sorbs.net/lookup.shtml?127.0.0.2"
127.0.0.7
"Exploitable Server See: http://www.sorbs.net/lookup.shtml?127.0.0.2"
127.0.0.2
"HTTP Proxy See: http://www.sorbs.net/lookup.shtml?127.0.0.2"
127.0.0.3
"SOCKS Proxy See: http://www.sorbs.net/lookup.shtml?127.0.0.2"
$ dig +short ANY 2.0.0.127.bl.nordspam.com
"RFC5782 TEST-record."
127.0.0.2
$ dig +short ANY 2.0.0.127.truncate.gbudb.net
127.0.0.2
"Test Record"
Die Abfragen können eingegrenzt werden, um zum Beispiel nur die RBL-Adressen aus Deutschland zu erhalten mit de.bl.blocklist.de
$ host -t any 2.0.0.127.de.bl.blocklist.de
2.0.0.127.de.bl.blocklist.de has address 127.0.0.2
2.0.0.127.de.bl.blocklist.de descriptive text "Infected System, see http://www.blocklist.de/en/view.html?ip=127.0.0.2"
Mit bruteforcelogin.bl.blocklist.de werden IPs abgefragt, welche Joomla, WordPress und andere Web-Logins per Brute-Force angreifen, oder ftp.bl.blocklist.de fragt nur IPs ab, von welchen FTP-Angriffe verzeichnet wurden. Die einzelnen RBL Zonen und Abfragen findet man auf den Webseiten der jeweiligen DNSBL Anbieter. Auch werden Whitelist wie DNSWL genutzt um false-positives zu vermeiden.
DNSWL.ORG
E-Mail Reputation Protect against false positives
DNS-based Blackhole List (DNSBL) erlauben nicht mehr als 1.000 Anfragen pro Sekunde, werden die Anfragen 1.000 pro Sekunde überschritten, sollte die rsync Methode angewendet werden.
DNSBLs sind im Allgemeinen die erste Verteidigungslinie gegen Spam. Die DNSLB Anbieter verfolgen dabei eigene Ansprüche auf Kriterien und Qualität, dabei müssen die Ergebnisse ermittelt werden, um die Wahl der DNSBLs treffen zu können, diese den eigens gesetzten Kriterien entsprechen. Die meisten Postmaster setzen auf Echtzeit DNS-basierte Blocklisten (DNS Based Realtime Blocklists; DNSBL). Unerwünschte E-Mails werden abgewiesen oder es lassen die Informationen aus einem Listing in das eigene Spamscoring übernehmen. Diese Verfahren sind technisch von der IETF beschrieben: https://tools.ietf.org/html/rfc5782