Reverse DNS Lookup bei Mails

web updates kmu GmbH-wuk-WordPress und SEO Agentur Reverse DNS

Ohne DNS würde heute Internet noch in den Kinderschuhen stecken und nicht so benutzerfreundlich daherkommen.

Der DNS Dienst sorgt dafür, dass eine Anfrage nach www.google.ch auch einen Google Server mit einer 127.152.39.223 Nummer findet. Wer könnte sich denn einfach für jeden Dienst eine IP Adresse merken?

Wenn ein Land gewisse Seiten blockieren möchte, leitet es einfach die DNS Anfragen auf eine andere IP Adresse um und die Seite scheint “verschwunden” zu sein. Hätte man aber die direkte IP Adresse, könnte man die Seiten weiterhin öffnen. Eine Blockade wie im Moment in Lybien wäre dadurch nutzlos.

Dennoch sind DNS Namen einfacher zu merken und werden daher immer vorgezogen. Eine gute Beschreibung zu DNS findet man bei Wikipedia.

Bei E-Mails nutzt man zusätzlich den Reverse DNS (RDNS). Was ist das? Man fragt nach einer IP Adresse an und bekommt die Domain zurückgeliefert. Eben das umgekehrte Vorgehen einer DNS Abfrage. Warum?

Sagen wir dies mal so, ich gehe mit einem SpamServer online und verschicke gleich im Namen von Google Spammails.
Die Empfänger Server schauen nun welche IP mein Server hat und machen ein Reverse DNS lookup und bekommen als Antwort ‘hanswurst.ch’ geliefert. Die Mailserver wissen so sehr schnell das dies ein Spamserver ist, denn die Rückmeldung müsste auf ‘irgednwas.google.ch’ lauten. Die Einträge in den Maildienst ist daher wichtig (z.B. in Postfix).

Sind die Einträge falsch, findet man im mail.info Log solche Einträge:

Feb 23 19:47:16 vserver3149 postfix/smtp[28214]: B4B5C12A967: to=<blubber@werimmer.de>,
relay=mail.deinedimain.ch[xx.xx.xx.xx]:25, delay=0.36, delays=0.06/0.03/0.24/0.04, dsn=5.5.2, status=bounced
(host mail.deinedimain.ch[xx.xx.xx.xx] said: 504 5.5.2 <www-data@server1111>:
Sender address rejected: need fully-qualified address (in reply to RCPT TO command))

Wie findet man seine Reverse DNS Namen raus?
Ich pinge mein Server mal an um an die IP Adresse zu kommen.

ping murawski.ch
Ping wird ausgeführt für murawski.ch [94.126.17.223] mit 32 Bytes Daten:

Meine IP Adresse ist also 94.126.17.223.
Diese kehre ich nun um: 223.17.126.94 und hänge .in-addr.arpa. an: 223.17.126.94.in-addr.arpa.
Mit der Abfrage:

dig +trace +additional -t PTR 223.17.126.94.in-addr.arpa.

Bekomme ich nun eine grössere Rückmeldung, wobei der interessante Teil am Ende ist:

; <<>> DiG 9.6-ESV <<>> +trace +additional -t PTR 223.17.126.94.in-addr.arpa.
;; global options: +cmd
.                       410985  IN      NS      a.root-servers.net.
.                       410985  IN      NS      b.root-servers.net.
.                       410985  IN      NS      c.root-servers.net.
.                       410985  IN      NS      d.root-servers.net.
.                       410985  IN      NS      e.root-servers.net.
.                       410985  IN      NS      f.root-servers.net.
.                       410985  IN      NS      g.root-servers.net.
.                       410985  IN      NS      h.root-servers.net.
.                       410985  IN      NS      i.root-servers.net.
.                       410985  IN      NS      j.root-servers.net.
.                       410985  IN      NS      k.root-servers.net.
.                       410985  IN      NS      l.root-servers.net.
.                       410985  IN      NS      m.root-servers.net.
b.root-servers.net.     491717  IN      A       192.228.79.201
c.root-servers.net.     14770   IN      A       192.33.4.12
d.root-servers.net.     491721  IN      A       128.8.10.90
e.root-servers.net.     14770   IN      A       192.203.230.10
g.root-servers.net.     14770   IN      A       192.112.36.4
i.root-servers.net.     14770   IN      A       192.36.148.17
i.root-servers.net.     437819  IN      AAAA    2001:7fe::53
j.root-servers.net.     293773  IN      A       192.58.128.30
j.root-servers.net.     410985  IN      AAAA    2001:503:c27::2:30
k.root-servers.net.     14770   IN      A       193.0.14.129
k.root-servers.net.     437819  IN      AAAA    2001:7fd::1
l.root-servers.net.     491748  IN      A       199.7.83.42
l.root-servers.net.     282084  IN      AAAA    2001:500:3::42
m.root-servers.net.     14770   IN      A       202.12.27.33
;; Received 500 bytes from 80.74.130.131#53(80.74.130.131) in 1 ms

in-addr.arpa.           172800  IN      NS      b.in-addr-servers.arpa.
in-addr.arpa.           172800  IN      NS      d.in-addr-servers.arpa.
in-addr.arpa.           172800  IN      NS      a.in-addr-servers.arpa.
in-addr.arpa.           172800  IN      NS      e.in-addr-servers.arpa.
in-addr.arpa.           172800  IN      NS      c.in-addr-servers.arpa.
in-addr.arpa.           172800  IN      NS      f.in-addr-servers.arpa.
a.in-addr-servers.arpa. 172800  IN      A       199.212.0.73
b.in-addr-servers.arpa. 172800  IN      A       199.253.183.183
c.in-addr-servers.arpa. 172800  IN      A       196.216.169.10
d.in-addr-servers.arpa. 172800  IN      A       200.10.60.53
e.in-addr-servers.arpa. 172800  IN      A       203.119.86.101
f.in-addr-servers.arpa. 172800  IN      A       193.0.9.1
a.in-addr-servers.arpa. 172800  IN      AAAA    2001:500:13::73
b.in-addr-servers.arpa. 172800  IN      AAAA    2001:500:87::87
c.in-addr-servers.arpa. 172800  IN      AAAA    2001:43f8:110::10
d.in-addr-servers.arpa. 172800  IN      AAAA    2001:13c7:7010::53
e.in-addr-servers.arpa. 172800  IN      AAAA    2001:dd8:6::101
f.in-addr-servers.arpa. 172800  IN      AAAA    2001:67c:e0::1
;; Received 420 bytes from 192.228.79.201#53(b.root-servers.net) in 180 ms

94.in-addr.arpa.        86400   IN      NS      ns-pri.ripe.net.
94.in-addr.arpa.        86400   IN      NS      tinnie.arin.net.
94.in-addr.arpa.        86400   IN      NS      ns2.lacnic.net.
94.in-addr.arpa.        86400   IN      NS      sec1.apnic.net.
94.in-addr.arpa.        86400   IN      NS      sec3.apnic.net.
;; Received 168 bytes from 203.119.86.101#53(e.in-addr-servers.arpa) in 268 ms

17.126.94.in-addr.arpa. 172800  IN      NS      ns.ch-meta.net.
17.126.94.in-addr.arpa. 172800  IN      NS      ns2.ch-meta.net.
;; Received 112 bytes from 193.0.0.195#53(ns-pri.ripe.net) in 18 ms

223.17.126.94.in-addr.arpa. 43200 IN    PTR     blutvampir.com.
17.126.94.in-addr.arpa. 43200   IN      NS      ns2.ch-meta.net.
17.126.94.in-addr.arpa. 43200   IN      NS      ns.ch-meta.net.
ns.ch-meta.net.         600     IN      A       80.74.130.30
ns.ch-meta.net.         600     IN      AAAA    2a00:1128:1:1::130:30
ns2.ch-meta.net.        600     IN      A       80.74.130.130
ns2.ch-meta.net.        600     IN      AAAA    2a00:1128:1:1::130:130
;; Received 206 bytes from 80.74.130.130#53(ns2.ch-meta.net) in 1 ms

Im letzten Abschnitt findet man den PTR Eintrag (oberste Zeile) welcher auf blutvampir.com zeigt, auch eine Domain von mir.
Normalerweise ist dort ein Eintrag wie server1234.deinhoster.ch zu finden, da ich ein eigener Root Server habe und auch gleich meine eigenen IP Adressen, liess ich den RDNS Eintrag bei ARPA in meine Domain ändern ;)
Pingt man den Eintrag, wird man die gleiche IP des eigenen Server bekommen.

Damit man nun den Fehler in einem Mailsystem beseitigen kann wie z.B. Postfix, öffnet man die Konfigurationsdatei /etc/postfix/main.cnf und sucht die Zeile:

myorigin = vserver1111

und ändere diese auf den RDNS Eintrag (nehmen wir an ich hätte server1111.deinhoster.ch gehabt) ab:

myorigin = server1111.deinhoster.ch

und startet anschliessend den Dienst neu, damit der Fehler beseitig ist:

/etc/init.d/postfix restart

Man lernt daraus, bei einem falschen RDNS Eintrag, können fremde Mailserver den eigenen Server als Spamquelle kennzeichnen und daher Mails ablehnen. RDNS Einträge sind daher wichtig und sollten beachtet werden!

PS: Damit man den RDNS einfacher abfragen kann, einfach folgende Zeilen auf der Shell ausführen:

touch /usr/sbin/rdns
chmod 700 /usr/sbin/rdns

Nun öffnet man die Datei /usr/sbin/rdns und fügt folgenden Inhalt ein:

#!/bin/bash
ip=`ping $1 -c 1 | grep data | awk '{print $3 " " }' | sed s/"("/""/ | sed s/")"/""/ |sed s/":"/""/`
IP=(${ip//./ });
Rev=${IP[3]}.${IP[2]}.${IP[1]}.${IP[0]}
output=`dig +trace +additional -t PTR $Rev.in-addr.arpa. | grep $Rev.in-addr.arpa. | grep IN | awk '{print $5 " " }'`
A=${output:0:${#output} - 2}
echo $A

Anschliessend kann man mit ‘rdns murawski.ch’ die Abfrage schneller ausführen und bekommt den RDNS Namen gleich zurückgeliefert ohne sonstige Informationen.