Da war er wieder der Überraschende Anruf eines Kunden, dass er uns
keine Mails zustellen kann und ich solle doch bitte mal schauen was da los ist. Also wurde als erstes mal geschaut, ob überhaupt schon mal Mails von der Kundendomain bei uns aufgelaufen sind. Treffer, es gab E-Mails die zugestellt wurden auch noch kurz vor dem Anruf. Also mal schnell geschaut was da los ist... Blacklist - negativ also muss es was anderes sein.
Und siehe da,
Mails an die .de Domain kommen an und Mails an die .com Domain kommen nicht an.
Weiteres rumsuchen hat mich erstmal nicht weiter gebracht, außer, dass es
unterschiedliche MX Records in der DNS gibt, was ja aber
kein Problem darstellen sollte, da ja Mails ankommen und nur der Kunde ein Problem damit hat.
Heute dann mal ein wenig rumgesucht, wie denn eigentlich der
Ablauf einer solchen Verbindung zwischen zwei Mailservern ist. Und schon war auch das Problem gefunden.
Ablauf einer Mailübertragung (soweit hier interessant):
- Der sendende Mailserver fragt im DNS nach den MX-Records für in der Mailadresse angegebene Domain.
- Gibt es keinen MX-Record, so wird die Existenz eines MX-Records mit Priorität 0 angenommen, der auf die nachgefragte Domain zeigt (d.h. der Domainname ist der Zielrechner, zu dem eine Verbindung aufgebaut werden muss).
- Gibt es MX-Records, so werden diese nach Priorität sortiert. Zeigt einer der MX-Records auf den anfragenden Mailserver selbst, so wird dieser MX-Record und alle anderen gleicher oder niedrigerer Priorität ignoriert und nur die MX-Records mit höherer Priorität beachtet.
- Für den Rechner aus dem MX-Record mit der höchsten Priorität wird eine Anfrage nach dem A-Record und damit nach der IP-Adresse des Rechners gestellt. Dieser A-Record muss existieren, sonst ist kein Mailaustausch möglich.
- Zu dieser IP-Adresse wird eine (SMTP-)Verbindung aufgebaut und die E-Mail übertragen.
- Kann zu der IP-Adresse keine Verbindung aufgebaut werden, so wird der MX-Record mit der nächstniedrigeren Priorität genommen, der A-Record abgefragt und eine Verbindung aufgebaut (Backup-Fall).
- Kommt zu keinem der Rechner aus den MX-Records eine Verbindung zustande, so bleibt die Mail am absendenden Mailserver liegen und der ganze Ablauf beginnt nach einiger Zeit von neuem.
Da unsere
MX Record mit der höchsten Priorität (kleinste Präferenz) ein Fakeeintrag ist, kann natürlich mit dieser IP
keine Verbindung aufgebaut werden. Da der Mailserver des Kunden scheinbar die
weiteren MX Records nicht abfragt bzw. einfach
ignoriert werden Mails nicht zugestellt.
Was hat das für einen Sinn einen Fake MX Record anzulegen werden sich jetzt einige Fragen. Ganz einfach.. Mailserver die nicht richtig konfiguriert sind, wie es bei Spammern oder infizierten Rechnern der Fall ist, können so keine Mails zustellen, da diese selten alle MX Records abfragen. Es wird also der Fake MX Record verwendet.
Eine simple Art um Spamattacken abzuwehren.