PDNS Recursor - Fragen zu config und security

rosenwelt

New Member
Hi.

Ich bin auf der Suche nach Informationen und Hilfen zum PowerDNS-Recursor und zu diesbetzüglich primär zu Sicherheits-relevanten Sachen. (Ich bin kein DNS "Profi", aber ein paar Grundlagen kenne ich.)

Ich habe eine "nette Spielerei" und diese wird derzeit mit einem zugriffsbeschränkten eigenen recursor genutzt. (pdns recursor)
Wenn ich dieses System "fremden" öffentlich zugänglich machen möchte, könnte ein "open Recursor" dabei sinnvoll nutzbar sein.
Bevor ich mich aber an Sachen wage mit denen ich mich noch nicht wirklich auseinandergesetzt habe, und wo mir dort die nötigte Erfahrung fehlt, suche ich erst einmal Basics / Informationen / KnoHow / Erfahrungen von anderen Anwendern in diesem Bereich.

Aus meiner Sicht:
- Ein "open recursor" oder "private recursor" einfach mal aufsetzen und basis-konfigurieren ist ansich ja kein problem.
Die Probleme fangen bei den Sicherheitsmechanismen an, die man extra implementieren sollte bzw die man beachten und nutzen sollte, um nicht als Angriffspunkt bzw als ANgreifer im Netz zu stehen.
... Und genau da fehlt mir sämtliche Erfahrung und einiges an Wissen.

Konkret geht es darum, eigene Namen über das Internet hinweg rekursiv aufzulösen. Natürlich kann man bei Freunden udn Bekannten usw... den Zugriff entsprechend auf deren genutzen IP's beschränken (was ich derzeit, mittels selbst gebauter API und push-pull updates für zonen und userlisten usw ... .) "Fremde" können jedoch diese Namen nicht auflösen und meine Recursor bei sich auch nicht einbinden/nutzen, da sie dem System nicht bekannt sind. Genau da hätte ich gerne einen "open Recursor" den auch "Fremde" nutzen können, um die Hosts hinter den Namen zu erreichen.

Falls Jemand Interesse hat mir da einige Sachen zu erklären und zu vermitteln wäre cih froh drüber.
Ich habe die letzten Wochen schon hier und da gefragt, sogar auf 2 freelancer plattformen - ausbeute = "use rate limiting" ... und ein angebot für eine umfänglcihe dns schulung für 1500 $US ^^ - thats all - und das ist mir zu mager, da gibts bestimmt mehr zu beachten ...
 

danton

Debian User
Du benötigst eine regulär registrierte Domain bei einem Domain-Anbieter deiner Wahl. Nur diese kann überhaupt allgemeine über das Internet aufgelöst werden. Dann benötigst du keinen Recursor, sondern einen autorativen Nameserver für diese Domain - abhängig vom Domainanbieter musst du seine Nameserver verwenden oder kannst eigene betreiben, die aber aus dem Internet erreichbar sein müssen. Da du schreibst, dass du deine DNS-Updates aktuell mit einer eigenen API steuerst, wäre die Überlegung, einen Anbieter zu nehmen, der selber eine API anbietet. Dann kannst du dir den Betrieb eines eigenen DNS-Servers sparen und sprichst die API des Anbieters an.
 

rosenwelt

New Member
Hi Danton.
Das ist alles absolut korrekt was du geschrieben hast.

Beimir geht es aber um "private" Namespaces (wie z.Bsp auch bei "open NIC")
 

d4f

Kaffee? Wo?
Ich glaube du vermischst authoritative und rekursive Nameserver. @danton scheint von der gleichen Annahme aus zu gehen.

Ein rekursiver Nameserver ist die Ansprechpartei für Endgeräte und geht im Hintergrund alles auflösen bis er die finale Antwort auf deine Anfrage kennt. Er verwaltet selber keine Zonen und leitet alle Anfragen nur stumpf weiter sofern er sie nicht aus dem Cache bedienen kann. Sprich; dein Gerät fragt "www.serversupportforum.de - Typ A/AAAA/CNAME" und der rekursive Server fragt in dieser Reihenfolge ab:
- Root (".") -> delegiert zu den NS von "de."
- "de." delegiert zu den NS von serversupportforum.de
- serversupportforum.de ist autoritativ und antwortet den A-Record von "www.serversupportforum.de" und dann

Ein autoritativer Nameserver ist Ansprechpartner für rekursive Nameserver (und Direkt-Auflösung, was aber selten ist).
Er verwaltet ausschließlich Zonen und gibt entweder delegierende Antworten oder autoritative Antworten.
Falls rosenwelt.de deine Domain ist, kannst du entweder entscheiden netzwerk.rosenwelt.de direkt auf zu lösen oder aber netzwerk.rosenwelt.de an einen anderen Nameserver um zu luten.

Zur Vollständigkeit: Weniger hier relevant aber verbreitet sind auch DNS-Forwarder wie bspw. in Router oder im Pihole vorkommend. Sie nehmen Verbindungen von Endgeräten an und benehmen sich wie rekursive Nameserver, aber sind selber nicht in der Lage Rekursion aus zu führen. Die Anfrage wird schlicht an einen oder mehrere "Upstream DNS" weitergereicht welche rekursiv arbeiten.

(Natürlich kann ein einzelner Nameserver auch alle Typen gleichzeitig durchführen, dies verkompliziert aber die Verwaltung und ist oft gar nicht sinvoll da die einzelnen Typen in unterschiedlichen Netzwerktypen zum Einsatz kommen)


Um nach der Basis nun auf OpenNIC zu kommen: im Grunde reden wir auch hier nur von normalen autoritativen/delegierenden Nameserver mit genau der gleichen Struktur und Funktionsweise wie das "klassische" DNS. Nur ist hier die Root-Zone nicht unter Kontrolle von ICANN sondern von OpenNIC.

Falls du eine OpenNIC/ICANN/Yeti/Namecoin/was-auch-immer DNS Domain betreiben willst, brauchst du also in jedem Fall einen autoritativen Nameserver. Es gibt ein paar Fallstricke - Stichwort die von dir erwähnten Angriffsmöglichkeiten, aka DNS-Amplification - aber eine vernünftige Basis-Konfiguration (Rate-Limiting, kein 'ANY', Zone-Transfer blockiert, ... ) schützt bereits recht effektiv.
Die Frage ist eher, ob der Aufwand sich lohnt. Eine DNS-Zone braucht mindestens 2 Nameserver in bestenfalls getrennten IP-Netzen und Rechenzentren während jeder Webhoster und Cloud-Anbieter DNS-Zonen nachschmeisst.
 

rosenwelt

New Member
Hi d4e :)
*erstmal nen Kaffee für Dich bereitstellen* ;)

Vielen Dank für deine Erklärung, das hilft mir schonmal deutlich weiter. Ein grosser Teil war mir bereits bekannt, aber nicht alles davon. (authorative Nameserver udn Recursor kenne ich vom Thema her, mit DNS Forwarder hatte ich mich noch nicht beschäftigt, und das könnte auch für mich mit interessant sein.)

Zu meinem "Vorhaben":
Ich habe bereits mehrre "authorative" Nameserver , 1 master und 3 replica in verschiedenen IP-Netzen bei verschiedenen Server-Anbietern in Europa.
Für meine eigenen "Spielereien" und "Freunde"/"Bekannte" war es für mich okay, wenn diese Personen die Nameserver direkt angesprochen haben. (Z.Bsp. per zusätzlichem DNS Eintrag im Betriebssystem.)
Über die Jahre hat sich nun doch einiges angesammelt. (Über 600 TLD's und die ca 3500 darauf aufgesetzten Domains verwalten die Nameserver derzeit.)
Mein Vorhaben ist, die gesamte Auflösung über einen zentralen DNS recursor laufen zu lassen, für das normale Internet und zusatzlich die privaten Zonen was mehrere Vorteile für mich hat.
Ich hab Bedenken, dass die authorativen Nameserver irgendwann doch "überlastet" werden, da das nur micro-VPS Server sind. Zusätzlich hätte ich dann den Zugriff auf die authorativen NS per Firewall eingeschränkt, sodass diesenur noch untereinander (AXFR .), via API vom Frontend-server und von den Recursor Servern aus erreichbar sind - was für die authorativen NS natürlich einen enormen Vorteil in Punkt "Sicherheit" bringt.
Und dann könnte ich auch die Nutzung der privaten Namespaces "frei" im Netz zur verfügung stellen, auch für Personen, die ich nciht kenne.
Derzeit habe ich das über eine selbstgebaute API mit Zone-Listen und erlaubten User-Listen (Client IPs) per pdns recursor gelöst, die automatisch geupdated werden. Um diesen Recursor public "auf" zu machen muss ich einiges in Punkt Sicherheit diesbezüglkich noch lernen.
- oder gibt es eine andere Möglichkeit dafür? :) -
 

danton

Debian User
Für meine eigenen "Spielereien" und "Freunde"/"Bekannte" war es für mich okay, wenn diese Personen die Nameserver direkt angesprochen haben. (Z.Bsp. per zusätzlichem DNS Eintrag im Betriebssystem.)
Und so wird es effektiv auch immer bleiben. Dein eigener Namespace ist nur erreichbar, wenn jemand deinen DNS-Server (bei deinem Vorhanden der Recursor) im Betriebssystem oder ggfl. im Home-Router einträgt. Und warum sollte jemand deinen DNS-Server verwenden, wenn er dich nicht kennt? Aus Sicherheitssicht ist daher dein bisheriges Vorgehen (Liste der erlaubten User) sehr sinnvoll. Ansonsten hat d4f ja schon ein paar Ansätze genannt. Das Idealrezept gibt es da nicht, man muss da auch immer etwas auf seine eigenen Anforderungen schauen - die passenden Balance zwischen SIcherheit und Komfort finden.
 

rosenwelt

New Member
Ja, vom Sicherheitskonzept her siehst Du das genau so wie ich - aber hier geht es mir nicht darum, wer Interesse daran hat private Namespaces aufzulösen oder eigene einzurichten. ;)
Ich suche , wie eingangs geschrieben, Wissen und Erfahrungen bezüglich des betreibens eines "open Recursors" (primär sicherheitstechnisch) oder ggf andere Methoden, um das von mir gewünschte Ergebnis sinnvoll zu erreichen - undzwar alles (private namespaces und DNS vom "normalen" Internet) über einen zentralen NameService Punkt im Netz aufzulösen.

Die 2 Methoden hlate ich für Machbar:
- Alles den authorativen Nameserver amchen lassen.
- Einen open Recursor bereitstellen, der Internet und private Zonen dann recursiv auflöst.
Zweitereshalte ich persönlich für technisch sinnvoller, habe aber genau da quasi keine Erfahrung in Punkto Netz-Sicherheit. (Ich hab an vielen Stellen schon nachgefragt und nachgehakt, überall bekam ich entweder keine antwort, oder "wir führen keine schulungen durch" oder nur allgemein der Hinweis "use rate limiting". Und das sieht für mich erstmal etwas dürftig aus, ich habe die Vermutung und Anhaltspunkte, dass es da doch noch einges mehr gibt, was zu beachten ist.
 
Last edited:

d4f

Kaffee? Wo?
aber hier geht es mir nicht darum, wer Interesse daran hat private Namespaces aufzulösen oder eigene einzurichten. ;)
Eventuell schon - es wäre durchaus interessant zu erfahren wieso den den ganzen Aufwand betreiben willst, fiktive Domains zu resolven?
Einen sinnvollen legalen Einsatz im öffentlichen Netz und komplett ohne jegliche Root-Autorität für deine fiktiven Domains erschließt sich mir jedenfalls nicht direkt o_O
Ich würde hier, je nach Einsatzgebiet und Motivation, eher vorschlagen entweder eine Domain als eigene NS-Hierarchie zu verwenden oder zB im bereits von dir erwähnten OpenNIC o.ä. teilnehmen und dort eine .TLD betreiben. Bei beiden Szenarien umgehst du den Bedarf eines Open-Resolvers im Internet.

Persönlich würde ich ohne entsprechende Erfahrung, Netzwerkkenntnisse, viel Zeit und einen *sehr* kulanten Netzwerkanbieter keinen Open-Resolver betreiben wollen. Es gibt schlicht zu viele Probleme und Missbräuche...

ich habe die Vermutung und Anhaltspunkte, dass es da doch noch einges mehr gibt, was zu beachten ist.
Ganz simpel gesehen eigentlich nicht. Als Openresolver ist es deine Aufgabe die Anfragen schlicht durch zu leiten ohne sie zu manipulieren. Das Knowhow der großen Betreiber fokussiert hauptsächlich auf Benutzerschutz und Eigenschutz. Benutzerschutz (blockieren von versuchten Domains, ...) können wir hier ausklammern, aber auch Eigenschutz ist alles andere als trivial.
- DNS ist naturgemäß hauptsächlich UDP-gebunden was spoofing trivial macht
- Da du hauptsächlich Resolver als "Besucher" hast, sind grosse Anzahlen an Anfragen durch eine einzelne IP sowohl ganz normal als gleichzeitig ein Merkmal von Missbrauch

*erstmal nen Kaffee für Dich bereitstellen* ;)
Danke *schlürf*
 
Top