Ich habe 2 DNS-Server (BIND9) (primär, sekundär) und 1 Domäne. Ich habe einen Webserver mit dynamischer IP. Wenn sich meine IP also ändert, kann ich meine Site nicht über die Domäne erreichen, da sich in den DNS-Servern die IP-Adresse der Domänenzone geändert hat.
Meine Frage ist: Wie kann ich meine Zone jedes x-mal von meinem Server mit meiner öffentlichen IP-Adresse aktualisieren? Kann mir jemand ein Update-Skript für Linux (Debian 9) geben?
Danke
Antwort1
Sie können RFC 2136 „DNS UPDATE“ entweder durch Skripting des nsupdate
Tools oder durch Verwendung eines kompatiblen Drittanbieter-Clients verwenden:
Gemeinsamer geheimer Schlüssel (TSIG)
Generieren Sie einen geheimen Schlüssel zur Authentifizierung der Updates:
$ tsig-keygen -r /dev/urandom | tee tsig-key.private key "tsig-key" { algorithm hmac-sha256; secret "7P6HbRZRJCmtauo/lV0jwN9wkMgBTUikhf9JuaTvYT4="; };
Dieser Schlüssel ist nur dem Server und dem Client bekannt, sonst niemandem.
Kopieren Sie den gedruckten Text in Ihr
named.conf
. (Sie können mehrere Schlüssel für verschiedene Hosts haben, jeder mit einem eindeutigen Namen imkey "…"
Feld.)Aktivieren Sie dynamische Updates in der Zonenkonfiguration:
zone … { … update-policy { /* grant <key_name> <policy> <record_types> */ grant "tsig-key" name myserver.example.com ANY; }; };
Es können verschiedene Richtlinien verwendet werden. Beispielsweise
zonesub
ermöglicht die Aktualisierung dergesamteZone undsubdomain dyn.example.com
hat die offensichtliche Bedeutung.Führen Sie Aktualisierungen durch:
$ nsupdate -k tsig-key.private > zone example.com > del myserver.example.com > add myserver.example.com 3600 A 100.64.1.1 > send
Es gibt verschiedene Clients, die automatische Updates durchführen können.
Öffentlicher/privater Schlüssel (SIG(0))
Generieren Sie ein Schlüsselpaar:
$ dnssec-keygen -r /dev/urandom -T KEY -n USER myclient.example.com $ ls K* Kmyclient.example.com.+005+07399.key Kmyclient.example.com.+005+07399.private
Die
*.key
Datei enthält den öffentlichen Schlüssel – fügen Sie ihn Ihrer DNS-Zone hinzu.Die
*.private
Datei enthält den privaten Schlüssel. Kopieren Sie ihn auf den Client-Computer. (Eigentlich kopieren SiebeideDateien auf den Clientcomputer.)Die Einrichtung erfolgt
update-policy { }
auf die gleiche Weise wie bei TSIG.Führen Sie Aktualisierungen auf die gleiche Weise auch mit durch
nsupdate -k <filename>.private
.
(Hinweis: Während TSIG-Schlüsselnamen beliebig sind, werden SIG(0)-Schlüssel im DNS gespeichert und daher immer wie Hostnamen/Subdomains benannt. Der Schlüsselnamenichtmuss allerdings mit dem Hostnamen übereinstimmen, den Sie aktualisieren.)
Kerberos (GSS-TSIG)
Etwas außerhalb des Rahmens, aber BIND9 unterstützt dies ebenfalls (hauptsächlich für die Verwendung mit Active Directory).