blog.bartlweb - a technologist's external brain

FreeDNS-IP-Update per HTTPS-Update-URL hängt unter OpenWrt

Wer mit einer dynamischen IP-Adresse einen Serverdienst nach außen anbieten will, ist auf einen dynamischen DNS-Hosting-Anbieter angewiesen. Die Anzahl der kostenfreien Dienste ist mittlerweile überschaubar und daher setze auf den aktuell kostenfrei nutzbaren Anbieter FreeDNS (freedns.afraid.org).

Das Update der IP-Adresse soll mein OpenWRT-Router erledigen, der die Änderung wohl als Erster direkt nach dem Modem mitbekommt und ich nutze dazu die Pakete luci-app-ddns und ddns-scripts um die Einstellungen komfortabel über die LuCI-Weboberfläche des Routers durchführen zu können.

FreeDNS bietet praktischerweise Update-URLs mit Tokens an, die keine zusätzliche Authentifizierung per Benutzername und Passwort benötigen, einfach hinter dem "betroffenen" Internetanschluss mit der dynamischen IP-Adresse aufgerufen werden und voilà die IP-Adresse wurde aktualisiert. Diese URL ist auch mittels HTTPS erreichbar und dort fängt es an interessant zu werden.

http://freedns.afraid.org/dynamic/update.php?UxKqVzNTZUh4VU1zZ1FfgW9nakwVeZdzOjk1Mz0wMTI=

Während der Aufruf aus dem Browser oder auch per wget von einer beliebigen Linux-Maschine aus einwandfrei funktioniert, hängt der Updater und auch ein manuelles wget von der Konsole des OpenWRT-Routers und kann keine Verbindung zum Zielhost aufbauen. Mein erster Verdacht war eine fehlende SSL-Unterstützung von wget - die ich schnell mittels der einfachen Anleitung aus der OpenWRT Wiki nachgerüstet hatte: https://wiki.openwrt.org/doc/howto/wget-ssl-certs

Dennoch hängt das Update per HTTPS nach wie vor, obwohl nun andere Quellen problemlos per HTTPS abrufbar sind. Einen Grund dafür bzw. eine Lösung konnte ich bis dato nicht finden.

Workaround

Ich habe die Update-URL auf HTTP umgestellt und schon funktioniert es wie erwartet. Dazu im Webinterface bei den Einstellungen des Dynamic DNS den DDNS Service-Provider [IPv4] auf --custom-- stellen und bei Custom update-URL die persönliche Update-URL mit HTTP anstelle von HTTPS angeben (Username und Password dürfen mit beliebigen Werten versehen werden, da diese nicht genutzt werden).

Meiner Meinung nach tut es der Sicherheit in diesem Fall keinen Abbruch, wenn die Update-URL nicht per HTTPS, sondern unverschlüsselt per HTTP aufgerufen wird, nachdem als Parameter bereits ein Token übergeben und keine weiteren Zugangsdaten übermittelt werden. Da das Token als URL-Parameter übergeben wird, ist es für einen potenziellen Angreifer auch bei Aufruf der URL mittels HTTPS-Verbindung ohne Probleme ersichtlich.

Dieser Artikel hat Dir deinen Tag gerettet?

... und mühevolles Probieren, Recherchieren und damit Stunden an Zeit gespart? Oder einfach nur Dein Problem gelöst?

Dann würde ich mich freuen, wenn Du meine Zeit für die Erstellung dieses Blogartikels mit einer kleinen Anerkennung honorierst:

Zahlung mit PayPal oder Kreditkarte.

Hinweis zur Verwendung

Die Übermittlung einer Zahlung ist eine persönliche Anerkennung Ihrerseits an den Entwickler (Christian Bartl, Privatperson). Eine Zahlung ist nicht zweckgebunden und es ist keine Gegenleistung zu erwarten. Bitte beachten Sie, dass für eine übermittelte Zahlung keine Quittung ausgestellt werden kann.

Über den Autor

Christian Bartl

Christian Bartl Projektmanagement & Konzeption für Online und Mobile

Als Technologie-Enthusiast und begeisterter Programmierer entwickle ich in meiner Freizeit Websites, Software und IT-Lösungen, die mir selbst und anderen den Alltag vereinfachen.

mehr auf bartl.me

Kommentare

Noch kein Kommentar vorhanden.
Sei der Erste! - Ich freue mich über deine Anmerkung, Kritik oder Frage.

Kommentar schreiben

Der hier angegebene Name wird gemeinsam mit deinem Kommentar auf der Website veröffentlicht.

Deine E-Mail-Adresse wird zur einmaligen Benachrichtigung bei Veröffentlichung des Kommentars genutzt.

Benachrichtigung per E-Mail über Antworten auf meinen Kommentar erhalten.

Bitte tippe die Zahlenkombination "3784" ein, nur dann kann ich deinen Kommentar entgegennehmen.

Bitte fülle dieses Feld nicht aus, nur dann kann ich deinen Kommentar entgegennehmen.