Cloudflare DynDNS
Vorwort
Die meisten Internetanschlüsse verfügen über dynamische IP Adressen, das heißt in unregelmäßigen Abständen erhalten alle Nutzer neue Adressen. Um zuhause gehostete Dienste weiterhin zu erreichen, muss die neue IP Adresse im DNS hinterlegt werden. Mein DNS Anbieter ist Cloudflare, deshalb werde ich via verfügbarer API darauf zugreifen und im Falle einer Änderung meine neue Heimadresse im System hinterlegen. Somit bleiben meine Cloud, VPN oder Webserver erreichbar, sollte sich meine IP Adresse durch Router Neustart geändert haben.
Realisiert wird dies mithilfe eines Bash Skriptes. Dieses muss mit den nötigen Informationen ausgestattet werden und wird anschließend mithilfe eines Cronjobs in festgelegten Intervallen erneut ausgeführt.
Installation
Zu Beginn muss lediglich das Github Repository heruntergeladen werden, dies geschieht über folgenden Befehl:
|
|
Im Anschluss daran wird das enthaltene Template kopiert und umbenannt:
|
|
Danach werden die benötigten Zugangsdaten editiert:
|
|
Nun zur Erklärung:
- Der erste Parameter »auth_email« beinhaltet die Mailadresse, welche für den Login zum Cloudflare Account benutzt wird.
- Als »auth_method« stehen zwei Optionen zur Verfügung. Aus Gründen der Sicherheit sollte für das Projekt ein eigener Token erstellt werden. Den entsprechenden Token kann man via »Profil« -> »API-Token« -> »Token erstellen« anfordern. Als Vorlage kann das Template zum Verwalten der Zonen-DNS verwendet werden. Innerhalb der Vorlage kann die Domain spezifiziert werden und anschließend erhalten wir den Token, welchen wir an unser Skript als Parameter »auth_key« übergeben.
- Der »Zone Identifier« ist im Deutschen Dashboard die »Zonen-ID« und lässt sich im »Überblick« Reiter unter API -> Zonen-ID finden.
- Der »record_name« beschreibt die gewünschte (Sub-)Domain, welche bei Änderung der IP Adresse aktualisiert werden soll.
- Zuletzt kann definiert werden, ob der Traffic durch den Cloudflare Proxy geleitet werden soll, oder nicht. Die Einträge müssen hierfür als ›true‹ oder ›false‹ definiert werden.
Jetzt wird das Skript noch ausführbar gemacht:
|
|
Danach kann der passende Cronjob erstellt werden. Hierfür gibt es bei Bedarf auch Hilfeseiten zur Erstellung.
INFO: Da das Skript keinerlei erhöhte Rechte erfordert kann es als normaler User ausgeführt werden und sollte keinesfalls mit root-Rechten gestartet werden.
|
|
|
|
In meinem Beispiel Cronjob wird das Skript alle 5 Minuten ausgeführt.