DynDNS: (Freifunk-)Access von überall

Den eigenen Router über DynDNS erreichbar machen

Ich hatte schon öfter die Situation, dass ich “nur mal eben schnell” etwas zuhause auf dem Freifunk-Router erledigen wollte, aber gerade keinen Zugang zum Freifunk-Netz hatte. (Eine Lösung wäre natürlich, einen Tunnel aufzubauen. Dazu vielleicht in einem späteren Blogpost mehr. :) )

Dann kann es sehr praktisch sein, wenn man den eigenen Router nicht nur über das Freifunknetz erreichen kann, sondern auch über das Internet. Hier stelle ich eine Lösung mit DynDNS vor.

Dadurch bekommen wir drei neue Features:

  1. Wir können unseren Router zu Wartungszwecken über das Internet erreichen
  2. Wir können auf die Websites, die unsere Router hostet, nun auch aus dem großen WWW zugreifen (siehe Website hosten und gatling)
  3. Wir kommen über unseren Router auch von außen ins Freifunknetz.

Für wen ist dieses Tutorial?

Dieses Tutorial geht davon aus, dass dein Freifunkrouter gleichzeitig den einziger Internetrouter ist. Das heißt, dass am WAN-Port des Freifunkrouters eine öffentliche IP-Adresse anliegt und der Router somit direkt aus dem Internet erreichbar ist. Diese ist für die Berliner Firmware nicht der Standard-Fall.

Wenn du einen normalen Router deines Internet-Providers hast und dein Freifunkrouter dahinter angeschlossen ist, wird dieses Tutorial deshalb bei dir nicht funktionieren.

Das Setup in diesem Tutorial macht deinen (Freifunk-)Router aus dem Internet erreichbar! Du solltest also mindestens die Grundregeln der IT-Sicherheit befolgen. Das heißt mindestens, dass du ein langes, nicht errechenbares Passwort setzt (je länger, desto besser) und dass du regelmäßig Sicherheitsupdates einspielst.

DynDNS installieren

Mich hatte beim installieren ein wenig überrascht, dass es mehrere mögliche Abhängigkeiten für das dyndns-Paket gibt, aus denen man wählen muss. Dies war das erste OpenWrt-Paket, bei dem ich das gesehen hatte. Für meine Paketauswahl war mir wichtig, den gewünschten Funktionsumfang mit dem geringstmöglichen Speicheraufwand zu erreichen (heißt: kleinere Binary sticht).

opkg update
opkg install ddns-scripts-services ddns-scripts luci-app-ddns
# für deutsche Übersetzungen:
opkg install luci-i18n-ddns-de

Im Webinterface der LuCI-App sehen wir dann, dass sich die ddns-scipts noch ein paar zusätzliche Abhängigkeiten wünschen, um korrekt funktionieren zu können (siehe BILD). Ich meinte ja, Binarysize sticht. Wenn ich wget nachinstallieren möchte, meinte opkg, dass das mit Abhängigkeiten 264kiB brauchen werde, mit curl aber nur 260KiB. Also nehmen wir das zweite.

Screenshot mit weiteren Abhängigkeiten von ddns-scripts

Die DNS-Bibliotheken habe ich mich für drill entschieden. Das war auch nicht so schwer, wenn man statt 140kiB auch 1,3MiB (bind-host) oder sogar 1,6MiB (knot-host) samt Abhängigkeiten haben kann.

opkg install curl drill

DynDNS holen

Zuerst braucht man ein Konto bei einem DynDNS-Anbieter. Es gibt, neben vielen kostenpflichtigen, auch einige kostenlose Anbieter. Da sich die Registrierung von Anbieter zu Anbieter unterscheidet, gehe ich hier nicht weiter darauf ein. Du solltest allerdings nach dem Prozess einen Domain-Name und Zugangsdaten für dein DynDNS-Konto haben, um deine IP-Adresse updaten zu können.

Wenn du das erledigt hast, machen wir weiter mit den Einstellungen an deinem Router:

DynDNS einrichten

Bevor wir einen DynDNS-Eintrag machen können, müssen wir erst einmal die Liste der DNS-Anbieter holen. Diese wird im Repository der DynDNS-App gepflegt und ist so immer recht aktuell. Sollte dein DNS-Anbieter etwas exotischer sein und noch nicht in der Liste auftauchen, kannst du ihn auch zur Liste hinzufügen.

Um die Liste herunterzuladen, auf den Knopf DDns-Diensteliste aktualisieren drücken.

Danach kann man den DynDNS-Dienst über den Knopf Neue Dienste hinzufügen… einrichten. Dazu dem Eintrag einen Namen geben und den eigenen DynDNS-Anbieter wählen.

Einen neuen Dienst in ddns-scripts eintragen

Die restlichen Felder sollten eigentlich selbsterklärend sein: Hier trägst du die Daten ein, die du vom DynDNS-Anbieter bekommen hast.

Wenn alles funktioniert hat, kann der Service-Abschnitt dann ungefähr so aussehen:

Screenshot eines erfolgreich eingerichteten DNS-Dienstes

Webseiten erreichbar machen

Im Blogpost über gatling hatte ich das Virtual-Hosts-Feature vorgestellt. Damit unsere Websites nun auch über die Adresse des DynDNS-Dienstes erreichbar sind, müssen wir ein paar symbolische Links im Root-Verzeichnis unseres Webservers setzen. Das lässt sich auf der Konsole über ln -s ZIEL LINKNAME erledigen.

Dabei muss unbedingt der Port der Website mit in den Namen des Links angehängt werden, sonst findet gatling die entsprechende Website nicht ln -s ff-schnipsel.olsr:80 schnipsel.example.org:80.

Das Root-Verzeichnis des Webservers könnte danach so aussehen (Ausgabe gekürzt):

$ /tmp/www# ls -lha
drwxr-xr-x    5       140 Sep 18 11:10 .
drwxrwxrwt   21       580 Sep 18 11:17 ..
drwxr-xr-x    2        60 Sep 17 18:52 default
drwxr-xr-x   11       400 Sep 17 18:45 ff-schnipsel.olsr:80
lrwxrwxrwx    1        17 Sep 17 18:45 schnipsel.example.org:80 -> ff-schnipsel.olsr:80/
drwxr-xr-x   12       300 Sep 18 11:08 freifunk-ag.olsr:80
lrwxrwxrwx    1        17 Sep 17 18:50 ag.example.org:80 -> freifunk-ag.olsr:80/

SSH-Access ins Freifunk-Netz

Mit der hier beschriebenen Konfiguration kannst du auch das Freifunknetz aus dem Internet erreichen, zumindest per SSH-Access. Du kannst dafür das sogenannte Jumphost-Feature von SSH nutzen.

ssh -J domain-name.example.org example-router.olsr

Dabei wird ein Tunnel von deinem Rechner zu deinem Freifunkrouter aufgebaut. Von dort aus, baut dieser dann einen Tunnel zu example-router.olsr auf. Das ist vor allem für Fernwartung sehr praktisch.

Schluss

Ich hoffe, dieses Tutorial konnte dir weiterhelfen. Schreib doch gerne ein bisschen Feedback über das Kontaktformular oder schaue mal an einem Mittwochabend auf einem Freifunktreffen vorbei.

 Share!