In ungewohnt nebulösen Worten fabuliert das beliebte Batbook um das in Sendmail 8.14 neu eingeführte Feature 'badmx' herum. Es werden Windows PCs angeführt, die per DHCP ihre IP-Adresse beziehen und deshalb oder weil sie gekapert wurden keinen MX-Record publizieren. Öh...?
Die Funktionsweise wird so erklärt, dass ein Sendmail Server für den sich verbindenden Client den Hostnamen per Reverse Lookup ermittelt, auf den Domain-Anteil reduziert und daran MX Lookups vornimmt. Das ist natürlich Quatsch für 'badmx'. Die Prüfungen des Features beziehen sich auf die Domain der Absender-Adresse. (Die IP der Gegenstelle benutzt das in Sendmail 8.14 ebenfalls neu eingeführte Feature 'require_rdns'.)
Die Release Notes von Sendmail 8.14.0 bringen es auf den Punkt:
CONFIG: New FEATURE(`badmx') to reject envelope sender addresses
(MAIL) whose domain part resolves to a "bad" MX record.
Based on contribution from William Dell Wisner
Der Aufruf des Rulesets 'BadMX' erfolgt am Ende von 'check_mail'. Zunächst ermittelt Sendmail darin die MX-Records für die Domain des Absenders mit Hilfe der Map 'bestmx' und führt den ersten Check auf Basis einer 'regex' Map durch:
1. Zeigt einer der MX-Records nicht auf einen Full Qualified Domainname, sondern auf eine IP-Adresse, ist er "bad" und die Mail wird abgelehnt mit der Meldung:
550 5.1.2 <user@domain>... Illegal MX record for host <domain>
Im zweiten Schritt werden die A-Records zu allen MX-Records ermittelt und mit Hilfe einer weiteren 'regex' Map geprüft:
2. Ist eine der IPs Loopback (beginnt mit 127.), nicht route-fähig (beginnt mit 10.) oder die 0.0.0.0, wird die Mail abgelehnt mit der Meldung:
550 5.1.2 <user@domain>... Invalid MX record for host <domain>
Referenzen:
1. Costales, Jansen, Aßmann with Shapiro. sendmail 4th Edition. a.k.a. "bat book", S. 291-292