Datenhaufen zu IT und Elektronik.

Kategorie: E-Mail & Mailserver (Seite 3 von 8)

Mailserver Test aus Holland

In den Niederlanden gibt es eine staatliche Initiative um das Internet Sicherer zu machen. Dazu gehören ebenfalls verschiedene Onlinetools zum Testen seiner Systeme.

Ganz gelungen finde ich dabei das Tool zum Testen seines Mailserver. Wenn ich da einfach mal eine Domain eintrage: https://en.internet.nl/mail/bechtle.de/201507/ Fällt mir auf, dass ich da mal fragen sollte warum SSLv3 mit RC4 hier anscheinend noch OK ist.

Viele Spaß beim Selbstscan! Bei Fragen natürlich wie immer einfach fragen 🙂


Als kleines Update… Die Jungs haben auf meine Frag/Hinweiß geantwortet:

Guten Tag,

vielen Dank für Ihre Anfrage und das damit verbundene Vertrauen in unser Unternehmen.

In der Bechtle Gruppe sind die Kundensegmente zwischen Bechtle direct GmbH und der ARP GmbH so aufgeteilt, das jeder Kunde gemäß seinen Bedürfnissen optimal betreut werden kann.

Während sich die BechtleAC direct GmbH ausschließlich auf Großkunden und Konzerne konzentriert, bietet die ARP GmbH allen Kundensegmenten ein großes Sortiment von IT-Hard- und Software sowie individuellen IT-Lösungen an. Neben der persönlichen Betreuung verfügt die ARP GmbH über einen preisgekrönten Online-Shop, der auf die individuellen Bedürfnisse jedes Kunden anpassbar ist.

Bitte wenden Sie sich mit Ihrem Anliegen direkt an die ARP GmbH. 

Hm… Ob sie das RFC beachten und ich den Postmaster erreiche?

*trommelwirbel*

Mar  6 08:14:49 smtp postfix/smtp[97730]: 5193FB4292: to=<postmaster@bechtle.com>, relay=mx.bechtle.com[178.249.84.24]:25, delay=17, delays=0.41/0.02/15/1.2, dsn=2.0.0, status=sent (250 2.0.0 2qygs8tdp2-1 Message accepted for delivery)

Zumindest nicht sofort abgewiesen 🙂

TLS 1.3 für Postfix & Dovecot: Einrichtung und Konfiguration​

Sowohl mein Postfix als auch der Dovecot sprechen nun sauber TLS 1.3.

Wenn Postfix sowie Dovecot sauber gegen OpenSSL 1.1.1 gebaut sind fehlen nur zwei Configänderungen.

Dovecot spricht es meist sofort wenn man hier die minimale TLS Version ind der 10-ssl.conf:

ssl_min_protocol = TLSv1.1

Beim Postfix setzt man einfach die zu nutzenden TLS Versionen in der main.cf:

smtpd_tls_protocols = TLSv1.3, TLSv1.2, !TLSv1.1, !TLSv1, !SSLv2, !SSLv3
smtp_tls_protocols = TLSv1.3, TLSv1.2, !TLSv1.1, !TLSv1, !SSLv2, !SSLv3
smtpd_tls_mandatory_protocols = TLSv1.3, TLSv1.2, !TLSv1.1, !TLSv1, !SSLv2, !SSLv3
smtp_tls_mandatory_protocols = TLSv1.3, TLSv1.2, !TLSv1.1, !TLSv1, !SSLv2, !SSLv3

Schon spricht Postfix TLS 1.3 mit anderen Server und beide Dienste sind in der Lage dieses mit Clients zu sprechen!

Test für smtp:

$ openssl s_client -starttls smtp -crlf -connect smtp.kernel-error.de:25
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 3944 bytes and written 404 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 4096 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---

Test für imap:

$ openssl s_client -connect imap.kernel-error.de:993 -crlf
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 3944 bytes and written 404 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 4096 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---

So sieht ein Logfile doch schon viel mehr nach 2019 aus, oder?

Feb 15 16:05:43 smtp postfix/smtp[7475]: Verified TLS connection established to mx1.freebsd.org[2610:1c1:1:606c::19:1]:25: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256

Bei Fragen, einfach fragen 🙂

Eigene DNSRBL & RHSBL in Postfix einrichten: Spam effektiv blockieren​

Hallo zusammen,

ich habe meine DNSRBL RHSBL RBL für Postfix angefasst. Wer sie also zum Test abfragen möchte (/etc/postfix/main.cf)):

# RECIPIENT restrictions:
smtpd_recipient_restrictions =
   permit_mynetworks,
   permit_sasl_authenticated,
   check_recipient_access hash:/etc/postfix/recipient-access,
   check_sender_access hash:/etc/postfix/sender-access,
   reject_unverified_recipient,
   reject_unauth_pipelining,
   reject_non_fqdn_recipient,
   reject_unknown_recipient_domain,
   reject_unauth_destination,
   reject_rbl_client imap.bl.blocklist.de,
   reject_rbl_client mail.bl.blocklist.de,
   reject_rbl_client b.barracudacentral.org,
   reject_rbl_client zen.spamhaus.org,
   reject_rbl_client bl.spamcop.net,
   reject_rbl_client cbl.abuseat.org,
   reject_rbl_client ix.dnsbl.manitu.net,
   reject_rbl_client virbl.dnsbl.bit.nl,
   reject_rbl_client abuse.rhsbl.kernel-error.de,
   reject_rbl_client postmaster.rhsbl.kernel-error.de,
   reject_rbl_client spam.rhsbl.kernel-error.de,
   reject_rbl_client spam.rbl.kernel-error.de,
   reject_unknown_recipient_domain,
   permit

B.t.w.: Ihr solltet das natürlich niemals produktiv einsetzten und macht es vollständig auf eure Verantwortung, denn ich würfle das nach meine ganz privaten Meinung 🙂

Ich fülle die Liste zum Teil von Hand, wenn ich irgendwas von einem System bekomme was ich nicht haben wollte landet es dort. Ebenfalls füllt es sich automatisch durch ein Postfach das „Werbung“ sammelt. Ich lasse Adressen/Systeme dort in der Regel für min. 6 Monate liegen. Es sei denn da ist was schief gelaufen, ich habe doch das Bedürfnis mit diesem System E-Mails zu tauschen oder sonst was.

Es bleibt aber dabei, es ist meine ganz private Liste damit nicht jedes meiner Mailsysteme einzeln lernen muss welche E-Mails ich nicht haben will. Wenn ihr es produktiv einsetzt wird es Probleme geben 😀

So long..

Postfix: Serverzertifikat nicht verifiziert – Fehlerbehebung

Da bekomme ich doch gerade eine E-Mail zurück mit der Begründung:

Reporting-MTA: dns; smtp.kernel-error.de
X-Postfix-Queue-ID: 30E4E7461347
X-Postfix-Sender: rfc822; kernel-error@kernel-error.com
Arrival-Date: Wed, 28 Jan 2015 11:50:00 +0100 (CET)

Final-Recipient: rfc822; mailer@domain.tld
Original-Recipient: rfc822;mailer@domain.tld
Action: failed
Status: 4.7.5
Diagnostic-Code: X-Postfix; Server certificate not verified

Dazu passend findet sich im Postfix Logfile folgendes:

Feb  2 12:15:21 postfix/smtp[1520]: Trusted TLS connection established to domain.tld[2001:1111:1:1111::1]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Feb  2 12:15:21 postfix/smtp[1520]: 30E4E7461347: Server certificate not verified
Feb  2 12:15:22 postfix/smtp[1520]: Trusted TLS connection established to domain.tld[1.2.3.4]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Feb  2 12:15:22 postfix/smtp[1520]: 30E4E7461347: to=<mailer@domain.tld>, relay=domain.tld[1.2.3.4]:25, delay=433522, delays=433521/0.09/0.63/0, dsn=4.7.5, status=deferred (Server certificate not verified)

Na? Schon eine Idee? Erst soll die TLS Verbindung trusted sein und dann doch wieder nicht? Ganz einfach 🙂 Es ist DANE…. Postfix würde ja selbst eine E-Mail zustellen, wenn er das Zertifikat nicht prüfen könnte. Hat der Empfänger aber einen TLSA-Record für sein Mailserver Zertifikat veröffentlicht und Postfix prüft dieses mit negativem Ergebnis, dann kann man wohl davon ausgehen, dass da etwas nicht stimmt. Entweder der Empfänger hat ein Problem mit seiner Konfiguration oder es versucht sich gerade jemand „dazwischen“ zu drängen.

Weiter prüfen konnte ich es mit posttls-finger:

$ posttls-finger -t30 -T180 -c -L verbose,summary domain.tld
posttls-finger: initializing the client-side TLS engine
posttls-finger: using DANE RR: _25._tcp.domain.tld IN TLSA 3 0 1 B3:E7:94:4A:CE:14:0D:CE:53:08:C6:D8:A5:D3:8C:EE:DD:94:FC:8A:B4:DD:8E:DD:DD:DD:DD:DD:DD:DD:DD:DD
posttls-finger: setting up TLS connection to domain.tld[2001:1111:1:1111::1]:25
posttls-finger: domain.tld[2001:1111:1:1111::1]:25: TLS cipher list "aNULL:-aNULL:ALL:!EXPORT:!LOW:+RC4:@STRENGTH:!aNULL"
posttls-finger: domain.tld[2001:1111:1:1111::1]:25: depth=1 verify=0 subject=/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 1 Primary Intermediate Server CA
posttls-finger: domain.tld[2001:1111:1:1111::1]:25: depth=1 verify=0 subject=/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 1 Primary Intermediate Server CA
posttls-finger: domain.tld[2001:1111:1:1111::1]:25: depth=0 verify=1 subject=/C=DE/CN=www.domain.tld/emailAddress=hostmaster@domain.tld
posttls-finger: domain.tld[2001:1111:1:1111::1]:25: subject_CN=www.domain.tld, issuer_CN=StartCom Class 1 Primary Intermediate Server CA, fingerprint=65:76:45:E3:50:1A:54:5D:BE:30:8F:DD:DD:DD:DD:DD:DD:DD:DD:DD, pkey_fingerprint=63:53:F8:60:76:8D:01:E8:57:93:EA:3C:DD:DD:DD:DD:DD:DD:DD:DD
posttls-finger: Untrusted TLS connection established to domain.tld[2001:1111:1:1111::1]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)

Passt also wirklich nicht… Gleicher Test auf verschiedenen Systemen, gleiches Ergebnis. Ebenfalls die einschlägigen Webseiten bringen diese Meldung (https://de.ssl-tools.net/mailservers/).

Ich muss zugeben, ist eine Premiere für mich. Also ein wirklich echt fehlgeschlagener DANE Test von Postfix, welcher die Mailzustellung verhindert hat. Natürlich hat postfix nicht nach dem ersten Versuch aufgegben, diese Prüfung führt zu einem temporären Fehler der 4xx Reihe. Postfix versucht es also ein paar Tage. In meinem Fall hat also alles genau so funktioniert, wie ich es mir gewünscht habe. Postfix testet die TLSA-Records, bemerkt einen Fehler, logt diese und probiert es noch einmal. Der Fehler bestand dauerhaft und Postfix gab mir die Mail zurück, mit der Info das etwas mit dem Zertifikat des Empfängers nicht stimmt. Das hat Postfix wirklich gut gemacht *tätschel*

So long…

DNSSEC, DANE und TLSA mit Postfix: Hintergründe und aktuelle Probleme

Man man man… Was ist denn da passiert? Seit 3 oder 4 Tagen scheint das Thema im Internet irgendwie besonders aktiv zu sein, oder? Nur warum?!?!

Plötzlich bekomme ich nicht nur jeden Tag einen Haufen Anfragen zu dem Thema, viel scheinen auch irgendwas testen zu wollen und pumpen E-Mails mit Random-Empfängern an meine Domains….

Im Grunde habe ich ja nichts gegen Tests. Nur grob abgesprochen wäre schon schön, mein Monitoring wird sonst immer so „wuschig“! 😀

Um noch mal ein paar Themen zusammen zu fassen:

1. Basis von allem ist DNSsec
2. TLSA Records „ist DANE“
3. Postfix kann TLSA Records auswerden, ohne selbst welche für sein System zu haben.

Mein kleines DNSSEC Howto

DNSSEC und DNS-based Authentication of Named Entities (DANE)

Postfix SSL/TLS gesichert mit TLSA / DANE und DNSSEC

DNSSEC fähiger Registrar

TLSA / DANE RECORD von Hand manuel prüfen.

So long…

Postfix: TLS-Protokoll und Cipher-Infos im E-Mail-Header anzeigen​

Als kleiner Postfix Tipp am Rande…. Wenn man gerade mit seinen TLS Einstellungen „herumspielt“, kann es helfen die groben Informationen für jede E-Mail nicht immer aus dem Logfile sammeln zu müssen.

Postfix bietet die schnelle Möglichkeit, genau diese Informationen einfach mit in den Mail Header zu packen.

Folgende Konfigurationserweiterung ist dafür nötig:

/etc/postfix/main.cf:
smtpd_tls_received_header = yes

Ab diesem Moment finden sich Informationen wie die unten stehende in eingehenden E-Mails.

So long….

Received: from mx01.domain.de (mx01.domain.de [1.2.3.4])
    (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits))
    (No client certificate requested)
    by smtp.kernel-error.de (Postfix) with ESMTPS id 245478112D9
    for <kernel-error@kernel-error.com>; Wed, 17 Dec 2014 05:15:10 +0100 (CET)

Postfix: EECDH mit 2048-Bit DH und spezifischen Kurven konfigurieren​

Kex exchange basierend auf EECDH (diese elliptischen Kurven nach DH Diffie-Hellmann), sollte ja inzwischen ein alter Hut sein. Ich gehe also mal von einer aktivieten und funktionsfähigen Konfiguration aus (irgendwo habe ich das wohl auch schon mal beschrieben).

Im Standard läuft dieses nun bei 1024bit also EECDH mit ca. 128bit (smtpd_tls_eecdh_grade=strong). Möchte man alles auf 2048bit EECDH mit ca. 192bit aufbohren… Was ca. die doppelte „Sicherheit“ zu EECDH mit 128bit bedeutet, dann ist folgendes zu erledigen.

Zuerst benötigen für eine große prime group:

$ cd /etc/postfix
$ openssl dhparam -out dh_2048.tmp 2048 && mv dh_2048.tmp dh_2048.pem
$ chmod 644 dh_2048.pem

Dann Postifix mitteilen, dass er sie bitte nutzten soll (ist kein Typo, gehört zur Option „smtpd_tls_dh1024_param_file„). 

/etc/postfix/main.cf:
    smtpd_tls_dh1024_param_file = /etc/postfix/dh2048.pem
    smtpd_tls_dh512_param_file = /etc/postfix/dh512.pem

Nun wechselt smtpd_tls_eecdh_grade von strong zu ultra und ich setzte noch die zu verwendende „Kurve“ fest.

/etc/postfix/main.cf:
    smtpd_tls_eecdh_grade = ultra
    tls_eecdh_strong_curve = prime256v1
    tls_eecdh_ultra_curve = secp384r1

Diese Aktion könne nicht ganz Schmerzfrei sein 🙂 Für privat und mein Testsystem sicher zu verantworten. Manche MSA (Mail SUbmission Agent) könnten damit Probleme bekommen. Hat also jemand ein Problem mit E-Mail zu senden, bitte melden 😀

So long….

TLS_FALLBACK_SCSV Debian 7 Wheezy OpenSSL 1.0.1e to 1.0.1j Upgrade

Wer bei seinem Debian TLS_FALLBACK_SCSV im Apache nutzen möchte, muss im Grunde nur auf eine OpenSSL Version >=1.0.1j wechseln.

Einen direkten Backport gibt es dafür leider nicht, also selbst übersetzten. Dazu nutzt man einfachsten direkt den „Debian-Weg“.

Vorbereiten fürs Kompilieren:

$ cd /usr/src
$ apt-get install build-essential fakeroot
$ apt-get build-dep openssl

Herunterladen der aktuellen Version:

$ wget http://ftp.de.debian.org/debian/pool/main/o/openssl/openssl_1.0.1j-1.dsc
$ wget http://ftp.de.debian.org/debian/pool/main/o/openssl/openssl_1.0.1j.orig.tar.gz
$ wget http://ftp.de.debian.org/debian/pool/main/o/openssl/openssl_1.0.1j-1.debian.tar.xz

Auspacken des Archives und mit den Patchen „verknüpfen“:

$ dpkg-source -x openssl_1.0.1j-1.dsc

Ins neue Verzeichnis wechseln:

$ cd openssl-1.0.1j

Kompilieren und deb Pakete erstellen:

$ dpkg-buildpackage -us -uc -rfakeroot

Die neuen Pakete installieren:

$ cd ..
$ dpkg -i libssl1.0.0_1.0.1j-1_amd64.deb libssl1.0.0-dbg_1.0.1j-1_amd64.deb libssl-dev_1.0.1j-1_amd64.deb libssl-doc_1.0.1j-1_all.deb openssl_1.0.1j-1_amd64.deb

Kontrolle der Version:

$ openssl version
OpenSSL 1.0.1j 15 Oct 2014

ACHTUNG… Ab diesem Moment ist man natürlich selbst dafür verantwortlich Pachte zu installieren 😀

So long…..


Selbstverständlich profitieren damit alle Anwendungen, die auf OpenSSL aufbauen, so auch Postfix, Dovecot usw:

$ openssl s_client -connect smtp.kernel-error.de:465 -fallback_scsv -no_tls1_2
CONNECTED(00000003)
140410198378152:error:1407743E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert inappropriate fallback:s23_clnt.c:770:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 215 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---

U-P-D-A-T-E

Denkt an die Updates 😀

$ openssl version
OpenSSL 1.0.1k 8 Jan 2015

IP Reverse Map Delegation: Einrichtung und Fehlerbehebung

Um zu verstehen was mit reverse map delegation von IPv4 und IPv6 Adressen nach RFC 2317 (http://tools.ietf.org/html/rfc2317) gemeint ist, hilft es zu verstehen warum man es überhaupt braucht. Daher versuche ich mit meiner kurzen Erklärung damit zu starten….

Wenn man in der „guten alten Zeit“ des Internets ein paar öffentliche IPv4 Adresse brauchte, ging man zu seiner RIR und bekam ein /24 in die Hand.

Als Beispiel: 1.2.3.0/24 also mit der Netzmaske 255.255.255.0

So hatte man ein Netz mit 256 Adressen. Wenn man nun in seinem DNS eine Zone für die PTR-Records anlegen wollte, war es kein Problem. Man konnte ja ohne große Probleme die Zone 3.2.1.in-addr.arpa. anlegen und die Zone konnte alle 256 Adressen beinhalten und beantworten.

Inzwischen sind die IPv4 Adresse aber knapp, oder sagen wir besser… verbraucht! Man bekommt, wenn überhaupt, nur noch so viele, wie man auch gut begründen kann 🙂

Als Beispiel: 1.2.3.0/29 also mit der Netzmaske 255.255.255.248

So hat man ein kleines Netz mit 8 Adressen. Will man nun in seinem DNS eine Zone für die PTR-Records anlegen gibt es ein Problem. Denn im DNS macht man die einzelnen Domains, Subdomains usw. am Punkt fest!

Als Beispiel: www.kernel-error.de.

de ist dabei die Subdomain von der Root-Domain (.)
kernel-error ist demnach die Subdomain der TLD (de)
www ist nun die Subdomain/Hostadresse von (kernel-error)

Möchte ich also eine Zone für ein IP Netz mit der Netzmaske /24 – 255.255.255.0 anlegen, ist ein kein Problem da ich ja einfach den letzten Punkt als Trenner für meine DNS-Zone nutzen kann. Alle 256 möglichen IPv4 Adressen würden dann von dieser Zone bedient werden können. Bei einem /29 habe ich aber keine Möglichkeit die Zone auf die 8 möglichen IP-Adressen zu beschränken…

Natürlich könnte ich nun denn noch eine Zone anlegen, wie auch bei einem /24 und halt nur meine 8 IP-Adressen (6 Hostadressen). Dann gibt es aber zwei Probleme! 1. Dieser DNS Server würde sich auch für die anderen Adressen zuständig fühlen und falsche Antworten liefern. 2. Wird ein Netz vergeben muss dort auch ein zuständiger DNS Server für das Netz eingetragen werden. Ihr seht schon… das wird nix!

Was macht man also? Ganz einfach und sicher vielen bereits bekannt… Der Provider/Hoster oder oder übernimmt die DNS-Zone für das Netz. Seine Kunden müssen also alle Wünsche über die zu setzenden RECORDS bei diesem anfragen oder über ein Webinterface eintragen. Dieses ist ein gangbarer Weg… Leider ist es hin und wieder etwas zu unflexibel und/oder zu zeitintensive. Ebenso gibt es ja Menschen die ihren DNS-Server gerne selbst unter Kontrolle haben, richtig?

Genau hier kommt dieses reverse map delegation ins Spiel. Zwar ist der im Netz eingetragene DNS Server noch immer der vom Provider… Dieser setzt aber keinen echten Hostename mehr zu den einzelnen IP Adressen, sondern einen CNAME zu einem in der DNS Domain des Kunden. So kann der Kunde die „PTR-RECORDS“ für seine IP Adressen über einen kleinen Umweg denn noch selbst setzten. Das ist schon die ganze Magie hinter diesem Begriff….

Wie sieht es nun in der Praxis aus? Ich bleibe bei meinem Beispiel des Netzes 1.2.3.0/29 und beschreibe wie ich es in er Regel einrichte….

Die Zone des /24 würde damit wie folgt aussehen:

$ORIGIN 3.2.1.in-addr.arpa.
$TTL 1D
@ 1D IN SOA ns1.kernel-error.de. hostmaster.kernel-error.de. (
              2014101701      ; serial
              6H              ; refresh
              30M             ; retry
              2W              ; expiry
              1D )            ; minimum

            IN NS  ns1.kernel-error.de.
            IN NS  ns2.kernel-error.org.

0/29        IN NS    ns1.vandemeer.de.
0/29        IN NS    ns2.vandemeer.de.
0           IN CNAME 0.0/29.3.2.1.in-addr.arpa.
1           IN CNAME 1.0/29.3.2.1.in-addr.arpa.
2           IN CNAME 2.0/29.3.2.1.in-addr.arpa.
3           IN CNAME 3.0/29.3.2.1.in-addr.arpa.
4           IN CNAME 4.0/29.3.2.1.in-addr.arpa.
5           IN CNAME 5.0/29.3.2.1.in-addr.arpa.
6           IN CNAME 6.0/29.3.2.1.in-addr.arpa.
7           IN CNAME 7.0/29.3.2.1.in-addr.arpa.

Wie zu erkennen, ist die Zone zuständig für 1.2.3.0-255… Die DNS Server sind dabei (ns1.kernel-error.de und n2.kernle-error.org). Das erste /29 aus diesem /24 gehört dem Kunden hinter der Domain vandemeer.de. Es wird also eine „Subdomain“ angelegt mit dem Namen 0/29. Die 0 steht dabei für die Netzadresse des Netzes und die 29 für die CIDR Suffix. Diese „Subdomain“ wird von den DNS Servern ns1.vandemeer.de und ns2.vandemeer.de bedient. Damit nun alle angefragten PTR-RECORDS für dieses Netz auch an den DNS-Server des Kunden weiter gehen, muss für jede IP Adresse ein CNAME für eine Adresse in der neuen Zone des Kunden erstellt werden.

Für die IPv4-Adresse 1.2.3.4 wäre es also:

4           IN CNAME 4.0/29.3.2.1.in-addr.arpa.

Eine Abfrage mit dig würde jetzt bereits folgende Antwort liefern:

$ dig -x 1.2.3.4

; <<>> DiG 9.10.1 <<>> -x 1.2.3.4
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47287
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;4.3.2.1.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
4.3.2.1.in-addr.arpa. 10799 IN    CNAME   4.0/29.3.2.1.in-addr.arpa.

;; Query time: 103 msec
;; SERVER: 192.168.10.1#53(192.168.10.1)
;; WHEN: Fr Okt 17 10:59:19 CEST 2014
;; MSG SIZE  rcvd: 106

Jetzt kann der Kunde auf seinem DNS Server die folgende PTR-Zone einrichten:

$ORIGIN 0/29.3.2.1.in-addr.arpa.
$TTL 1D
@ 1D IN SOA ns1.vandemeer.de. hostmaster.vandemeer.de. (
              2014101701      ; serial
              6H              ; refresh
              30M             ; retry
              2W              ; expiry
              1D )            ; minimum

            IN NS  ns1.vandemeer.de.
            IN NS  ns2.vandemeer.de.

0           IN PTR netzadresse.vandemeer.de.
1           IN PTR router.vandemeer.de.
2           IN PTR mailin.vandemeer.de.
3           IN PTR imap.vandemeer.de.
4           IN PTR webserver.vandemeer.de.
5           IN PTR frei.vandemeer.de.
6           IN PTR frei.vandemeer.de.
7           IN PTR broadcastadresse.vandemeer.de.

Startet man nun die gleiche dig Abfrage, bekommt man die vollständige und gewünschte Antwort:

$ dig -x 1.2.3.4

; <<>> DiG 9.10.1 <<>> -x 1.2.3.4
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47287
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;4.3.2.1.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
4.3.2.1.in-addr.arpa. 10799 IN    CNAME   4.0/29.3.2.1.in-addr.arpa.
4.0/29.3.2.1.in-addr.arpa. 14399 IN PTR  webserver.vandemeer.de.

;; Query time: 103 msec
;; SERVER: 192.168.10.1#53(192.168.10.1)
;; WHEN: Fr Okt 17 10:59:19 CEST 2014
;; MSG SIZE  rcvd: 106

Es klingt und sieht also mal wieder komplizierter aus als es ist!

Probleme?

Ja es gibt auch Probleme! Wäre ja zu schön, wenn nicht 😀

Laut RFC darf ein PTR-Record eigentlich kein CNAME sein. Nur halt für diesen speziellen Fall! Das RFC ist nun von 1998… Denn noch scheint es sich nicht sonderlich „herumgesprochen“ zu haben. Ich möchte damit sagen, dass es immer mal wieder bei Problemen dazu kommen kann, dass man seinem Gegenüber zuerst das RFC 2317 erklären muss, bevor es weiter geht 🙂

Ebenfalls macht Postfix ärger, wenn man folgende smtpd restrictions gesetzt hat: reject_unknown_client

Denn diese prüft ob helo / PTR und A/AAAA zueinander passen. Nutzt man reverse map delegation, werden diese nicht zueinander passen!

Oct  17 10:00:00 mx30 postfix/smtp[54786]: FFCC569824: host mx.example.org[4.5.6.7] said: 450 4.1.7 <super@maildomain.de>: Sender address rejected: unverified address: host mail.rennboot.de[3.4.5.6] said: 450 4.7.1 Client host rejected: cannot find your hostname, [4.5.6.7] (in reply to RCPT TO command) (in reply to RCPT TO command)

Betreibt man also einen größeren Mailserver, vermeidet es Arbeit und Ärger, wenn man auf dieser IPv4 Adresse kein reverse map delegation einsetzt.

Tja… Fragen? Dann wie immer: fragen! 😀

« Ältere Beiträge Neuere Beiträge »

© 2026 -=Kernel-Error=-RSS

Theme von Anders NorénHoch ↑