11.07.2015 Aufrufe

c't magazin für computer technik 24/2013 - since

c't magazin für computer technik 24/2013 - since

c't magazin für computer technik 24/2013 - since

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Praxis I DynDNS selbstgebaut• ; · ._FRfTZIBox Jl70._,._,.o.--....·­.. "'-·--==-------------------.,_... ... ... ..... ----·- ... ....,ul ... _-Manche ältere Router bieten keine manuelle Konfiguration fürdynamische DNS-Dienste. Dann verwenden Sie die Konfigurationfür DynDNS, ersetzen in den DSL-Zugangsdaten aber denNameserver durch ihren eigenen dynamischen Nameserver.pdns.simplebind sämtliche Einträge,da Bind in diesem Szenarionicht zum Einsatz kommt.Nun fehlt nur noch die SO­Iite-Datenbank mit den ZonendatenIhrer Domain. Laden Sieunsere Vorlage example.com.sql herunter, sie verwendet dieDomain example.com als Beispiel,und öffnen Sie die Dateiin einem Texteditor. Nun ersetzenSie sämtliche Vorkommenvon "example.com" durch IhreDomain und "12.34.56.78"durch die öffentliche IP-AdresseIhres Nameservers. SpeichernSie die Änderungen und öffnenSie ein Terminal. Dort erzeugenSie mit folgendem Befehl dieSOlite-Datenbank für Ihre Domain:sqlite3 /var/lib/powerdns/pdns.sqlite3 1".read example.com.sql"Sie müssen nun noch mindestenseinen Secondary Nameserverergänzen. Warum Sie denbenötigen und wo Sie einenfinden, beschreibt der Kastenauf Seite 198. Anschließendstarten Sie mit service pdns startPowerDNS.Ob alles in Ordnung ist, findenSie heraus, indem Sie einen Zonentransferversuchen:dig @127.0.0.1 +tcp axfr example.comHat das geklappt, überprüfenSie, ob der Nameserver auch externerreichbar ist, indem Sie dielokale IP durch die öffentliche IPIhres Servers ersetzen:dig @12.34.56.78 +tcp axfr example.com"Jetzt ist der Zeitpunkt gekommen,den Secondary Nameserverzu ergänzen und in Betriebzu nehmen. Anschließendwenden Sie sich an Ihren Registrar,bei dem Sie Ihre Domainbestellt haben, und ändern dortdie Einstellungen für die Nameserver.Künftig soll Ihr Serverpnmarer Nameserver sein,zudem müssen Sie noch mindestenseinen Secondary Nameserverangeben. Der Providerinformiert seinerseits die Registry.Sind die Nameserver-Einstellungenbei der Registry angekommen,haben Sie die volleKontrolle über Ihre Domain undkönnen via SOiite weitere Hostshinzufügen - etwa "www", umunter www.example.com weiterhinIhre Hornepage zu betreiben:sqlite3 /var/lib/powerdns/pdns.sqlite3 1"INSERT INTO records(domain_id,namqtype,content) VALUES(O,'www.example7.com','A','12.34.56.78')"Damit die DSL-Router ihre IP­Adresse bei der Neueinwahl aktualisierenkönnen, kopieren Siedas PHP-Skript update.php (siehe<strong>c't</strong>-Link am Ende des Artikels)ins Verzeichnis /var/www/ddns.Um die Einträge der Datenbankverändern zu können, benötigtdas Skript noch Schreibrechteauf die SOiite-Datenbank:chown -R pdns:www-data 1/var/lib/powerdnschmod 664 /var/lib/powerdns/pdns.sqlite3Nun fehlt noch die Benutzerverwaitung.Da PowerDNS ohnehinschon eine Datenbank für dieZonenverwaltung verwendet,spricht nichts dagegen, dortauch die Zugangsdaten der Benutzerzu speichern. Wir habendafür im Datenbank-Templatebereits die Tabellen users fürBenutzernamen und Passwörterund hostnames für die Hastnamenund die Eigentümer angelegt- auf diese Weise lässtsich verhindern, dass ein Benutzereinen fremden Hastnamenauf seine IP-Adresse umleitetund so den Hastnamenkapert.Um einen neuen Benutzer anzulegen,geben Sie zunächst dasPasswort ein und lassen sich denHash-Wert zurückliefern:openssl passwd -cryptAnschließend speichern Sie Benutzernameund den Passwort­Hash in der SOiite-Datenbank:sqlite3 /var/lib/powerdns/pdns.sqlite3 1"INSERT INTO users 1VALUES('Username', 'Passwort -Hash')"Einen Hastnamen weisen Siedem Benutzer folgendermaßenzu:sqlite3 /var/lib/powerdns/pdns.sqlite3 1"INSERT INTO hostnames 1VALUES('Hostname', 'Username')"Zum Schluss müssen Sie nochden DSL -Router umkonfigurieren.Dort tragen Sie als Update­URL ein:http:/ /example.com/ddns/ 1update.php?hostname=Umleitung mit BindDNS-Caching und negative TTLUm nicht für jede Namensauflösungden primären Nameserveranfragen zu müssen, speicherndie Nameserver der lnternetproviderHastnamen undIP-Adresse für eine gewisseZeit im DNS-Cache. Wie lange,legt die TTL des jeweiligenHast-Eintrags in der Zonendateider Domain fest.Ein solches Caching gibt es allerdingsauch für fehlgeschlageneAnfragen, wenn es alsokeine IP-Adresse für einenHastnamen gibt. Hierfür verwendetder Nameserver desProviders die TTL aus demSOA-Record der Zone, mancheProvider setzen hier auch längereWerte. Das kann dazu führen,dass ein gerade neu angelegterHastname über Stundennicht erreichbar ist, weil imUm auch ältere Router mit festenDynDNS-Anbietern weiternutzenzu können, bietet es sich an,das API von Dyn.com nachzubauen,sodass die Update-Funktionfür die IP-Adresse auch mitIhrem eigenen dynamischenDNS-Dienst klappt. Außerdemmüssen Sie per DNS-Spoofingdafür sorgen, dass sich derRouter bei Ihrem DNS anmeldetund nicht bei Dyn.com.Um die Funktionsweise zuverstehen, muss man den Ablaufbei der Registrierung des Routersbei Dyn.com kennen. Hatder Router eine Internetverbindunghergestellt, muss er zunächstseine öffentliche IP­Adresse bestimmen. Dazu rufenmanche Geräte die URL http://checkip.dyndns.com oder http://checkip.dyndns.org auf. Anschließendüberträgt er Benutzernamen,Passwort, Hastnamenund die IP-Adresse an den Servermembers.dyndns.org.Sie müssen also lediglichdafür sorgen, dass der Routerkünftig bei checkip.dyndns.com,checkip.dyndns.org und members.dyndns.orgauf Ihrem eigenenNameserver landet. Dazutragen Sie nach Abschluss allerArbeiten in der DSL-Zugangs-DNS-Cache eines Providersnoch eine negative Antwortzwischengespeichert ist.Ein Trick ist, im Nameservereine Wildcard anzulegen, sodasssämtliche unbekannteHastnamen mit der IP-Adressedes Nameservers beantwortetwerden. Hier der Eintrag für dieZonendatei bei Bind:*.example.com. A 12.34.56.78Bei PowerDNS lautet der SOL­Befehl entsprechen:sqlite3 /var /lib/powerdns/pdns.sqlite37INSERT INTO records(domain_id,nameJtype,content) VALUES(O,'*','A','12.34.j56.78');Auf diese Weise gibt es keinenegativen Antworten Ihres Nameserversund damit auchkeine DNS-Caching-Probleme.<strong>c't</strong> <strong>2013</strong>, Heft <strong>24</strong>197

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!