Homeserver 28: Von außen auf den Server zugreifen

Es gibt immer wieder Situationen, in denen es doch schön wäre, wenn man von außen auf den Server käme. Zum Beispiel, als mir letztens die Platten im RAID verrücktgespielt hatten. Da hätte ich von außen einiges tun können, so musste ich warten, bis ich wieder zu Hause bin. OK, in diesem Falle war das jetzt nicht so schlimm. Aber in der Zukunft soll der Server auch zum Videorekorder werden, und dann würde einfach nichts mehr aufgenommen werden. Das wäre dann schon nicht mehr so schön…

Hierbei gibt es zwei Zugangsarten, die für mich wichtig sind. Zum Einen möchte ich auf die Weboberfläche des Servers kommen. Hier könnte ich die Logs sehen, Temperaturen abfragen und später, wenn es denn mal eingerichtet ist, Aufnahmen programmieren. Alles natürlich, wie in den letzten Teilen beschrieben, SSL-verschlüsselt und Passwort-gesichert. Lest euch hier dazu noch mal die Artikel zur Webserver-Installation im Teil 20 und das Absichern des Webservers im Teil 23 durch.

Das ist jetzt aber eigentlich erst mal nur recht informativ, aber von hier aus kann ich nicht wirklich was tun. Also muss ich auch irgendwie auf die SSH-Oberfläche des Servers. Ich weiß nicht wirklich, ob das auch so über die gleiche Art funktioniert, wie für den Webserver, daher richte ich hierfür eine VPN-Verbindung ein. Die hat auch den Vorteil, dass ich auch auf die Datenverzeichnisse des Servers zugreifen kann.

Vorbereitungen

Viel gibt es da gar nicht vorzubereiten. Ich möchte, wenn ich mal nicht zu Hause bin, von meinem MacBook aus auf mein Netzwerk zugreifen können. Hierfür, und für noch eine ganze Anzahl anderer Aufgaben, habe ich ein Windows in einer virtuellen Maschine auf dem Mac laufen. In dieses Windows müssen alle Tools, die dafür benötigt werden, installiert werden. Dabei ist das bei mir z. B. Putti, oder wenn man möchte, Cygwin, als SSH-Client.

Fernzugriff auf den Webserver

Eigentlich braucht es hierfür nur einen DynDNS-Account. Da ich als Privatperson ja nicht immer eine feste IP-Adresse habe, braucht es so eine Hilfstechnik. Und da ich mein Netz mit einer Fritz!Box ans Netz angebunden habe, würde sich ja der MyFritz-Dienst anbieten. Also melde ich mich dort an.

MyFritz!-Konto erstellen

Ich öffne also den Webbrowser meiner Wahl und gebe in die Adresszeile „fritz.box“, natürlich ohne die Anführungsstriche, ein. Es öffnet sich das Login-Fenster der Fritz!Box, in das ich mein Passwort eingebe und Enter drücke.

Um nun zu der Funktion zu gelangen, unter der man sich einen MyFritz-Zugang anlegen kann, muss man auf den Link „Internet“, und dann den Link „MyFritz“ klicken.

Hier wähle ich weiter unten aus, ob ich ein neues Konto erstellen möchte, oder ob ich meine Fritz!Box an einem vorhandenen Konto anmelden möchte. Da ich noch kein Konto habe, wähle ich „Neues MyFritz!-Konto erstellen“ aus. Anschließend gebe ich noch meine Mailadresse ein und wähle mir ein Kennwort für den MyFritz!-Dienst. Danach klicke ich auf „Weiter“.

Nun sagt mir die Fritz!Box, dass ich einen Benutzer anlegen soll:

Für den Zugriff aus dem Internet ist die Einrichtung eines FRITZ!Box-Benutzers erforderlich. Der Internetzugriff ist nur mit Benutzername und Kennwort möglich.

OK, dann fülle ich mal die Felder aus, die mir hier angeboten werden. Im Feld „Name“ wähle ich einen Benutzernamen, das Feld für die E-Mail-Adresse ist schon ausgefüllt, und dann muss noch ein Kennwort für den Fritz!Box-Benutzer festgelegt werden. Und hiernach klicke ich wieder auf „Weiter“.

Jetzt öffne ich mein Mailprogramm, denn bei meiner Anmeldung an den MyFritz!-Dienst hat mir das System eine Mail geschickt, in der ein Bestätigungslink ist. Diesen klicke ich an.

Es öffnet sich nun der Webbrowser. Hier muss man jetzt die Nutzungsbedingungen für MyFritz! durchlesen und mit einem Kontrollkästchen akzeptieren. Klickt man dann auf „Konto aktivieren“, wird das MyFritz!-Konto bestätigt und die Fritz!Box daran angemeldet.

Und wie geht es jetzt weiter?

Anmelden an der Fritz!Box

Zwei Dinge gilt es nun zu tun: Zum Einen möchte ich wissen, ob meine Fritz!Box von außen zugänglich ist, zum Anderen wüsste ich gerne den Link zu ihr. Also, nur um sicher zu gehen, schließe ich mal alle Browserfenster und öffne ein neues leeres Fenster. Hier gebe ich in die Adresszeile „myfritz.net“ ein.

Auf dieser Seite kann ich mich nun anmelden, indem ich hier meine E-Mail-Adresse und mein MyFritz!-Kennwort eingebe. Weiter unten gibt es ein Kontrollkästchen, „Ich bin kein Roboter!“, dieses solltet ihr wirklich aktivieren. 🙂 Danach könnt ihr weiter unten auf die Schaltfläche „Zu meiner Fritz!Box““ klicken.

Jetzt passiert etwas ähnliches, wie mit meinem für meinen Webserver erstellten SSL-Zertifikat. Auf dieser Seite wird mir nun erklärt, was ich machen muss, aber das weiß ich ja schon aus Teil 23.

Wichtiger ist, dass hier auch der direkte Link zu meiner Fritz!Box steht. Dummerweise ist das aber ein Link, den sich keiner merken kann. Er sieht in etwa so aus:

https://XXX.myfritz.net:YYY/myfritz?user=meine_mailadresse%40gmx.de

Wobei das XXX für eine lange Buchstaben- und Zahlenkette steht, und als E-Mail-Adresse am Ende natürlich die Mailadresse, mit der ich mich angemeldet habe. Das YYY steht für eine zufällig vergebene Portnummer, die man in der Fritz!Box auch ändern kann. Wie gesagt, das kann sich ja keiner merken! Dafür muss ich noch eine Lösung finden!

Klicke ich auf diesen Link, erhalte ich die bekannte Fehlermeldung, dass der Verbindung nicht vertraut werden kann. Macht nix, ich kenne meine Fritz!Box, daher klicke ich wieder unten auf „Ich kenne das Risiko“. Nun klicke ich auf „Ausnahmen hinzufügen“, im folgenden Dialog auf „Zertifikat herunterladen“, hake das Kästchen bei „Diese Ausnahme dauerhaft speichern“ an und klicke dann auf „Sicherheitsausnahme bestätigen“. Fertig, die Anmeldeseite meiner Fritz!Box öffnet sich.

Gerätefreigabe Einrichten

Ich will ja meinen Server von außen erreichen können. Also muss ich ihn ja auch für den Zugriff von außen freigeben. Hierfür gehe ich wieder auf die Benutzeroberfläche der Fritz!Box und gehe nacheinander im Navigationsbereich auf „Internet“ und auf „Freigaben“.

In dieser Tabelle stehen alle Geräte, mit ihren von außen erreichbaren Adressen, auf die ich über meinen Browser zugreifen können möchte. Natürlich steht da jetzt noch kein Gerät, daher klicke ich auf „Neue MyFritz!-Freigabe“. Es öffnet sich ein Fenster, welches folgende Daten abfragt:

  • Netzwerkgerät: Hier wähle ich „server01“.
  • Anwendung: Hier wähle ich HTTPS-Server.
  • Verzeichnis: Das lasse ich leer, ist sowieso optional.

Anschließend klicke ich noch auf OK, damit wäre die Freigabe eingerichtet. Nun sehe ich in der Tabelle das Gerät, die Adresse und den dafür konfigurierten Dienst. Die Adresse für meinen Server sieht jetzt also so aus:

https://server01.xxx.myfritz.net:443

Wobei, den Port am Ende kann man auch weglassen, solange es ein Standard-HTTPS-Port ist. Die Fritz!Box selbst hat einen zufälligen Port erhalten, den muss ich angeben, wenn ich auf die Fritz!Box-Oberfläche aus dem Internet zugreifen möchte. Ich könnte mich hierfür natürlich auch einfach über myfritz.net anmelden.

So, auf meinen Server kann ich jetzt zugreifen, Logs sehen, Manpages lesen, aber das reicht mir ja noch nicht. Ich will auch per VPN auf SSH zugreifen können.

VPN einrichten

Um mit meinem iPhone oder meinem MacBook per VPN auf mein Netzwerk zugreifen zu können, muss ich dies in der Fritz!Box einstellen. Dies ist sogar recht einfach. Ich logge mich auf der Benutzeroberfläche der Fritz!Box ein und gehe im Navigationsbereich nacheinander auf „Internet“ und „Freigaben“. Im oberen Bereich des Fensters wähle ich „VPN“ aus. In der Tabelle stehen nun die verfügbaren VPN-Verbindungen. Da ist natürlich noch keine, daher füge ich mit der Schaltfläche „VPN-Verbindung hinzufügen“ eine neue Verbindung hinzu.

Zunächst werde ich gefragt, was für eine Verbindung ich einrichten möchte. Ich wähle daher den Punkt „Fernzugang für einen Benutzer einrichten“.

Nun öffnet sich die Liste der in der Fritz!Box eingerichteten Benutzer. Ich wähle also den für MyFritz! eingerichteten Benutzer aus und betätige die „Bearbeiten“-Schaltfläche daneben. In der Liste der Berechtigungen aktiviere ich das Kontrollkästchen „VPN“ und klicke dann auf OK.

Normalerweise sollte sich ein Fenster öffnen, welches zeigt, was man wo in sein iPhone oder Android-Gerät eingeben soll. Bei mir ist das nicht passiert, stattdessen habe ich einen OK-Schalter, der mir dann das Fenster öffnet. Das nutzt mir nur gerade nix, weil mein iPhone nicht geladen ist und am Strom hängt.

Das macht aber nichts, denn man kann sich die Daten jederzeit erneut anzeigen lassen. Man loggt sich einfach auf die Benutzeroberfläche der Fritz!Box ein, wählt im Navigationsbereich „System“, dort „Fritz!Box-Benutzer“, klickt neben dem für VPN berechtigten Benutzer auf „Bearbeiten“ und kann sich weiter unten mit dem Link „VPN-Einstellungen anzeigen“ das Fenster erneut anzeigen lassen. Hier folgt man dann einfach den Anweisungen.

Mit dem iPhone über VPN verbinden

Die Einstellungen in das iPhone zu fummeln ist etwas kompliziert. Gut für den, der eine externe Tastatur sein eigen nennt. Denn zum einen muss man die kryptische MyFritz!-Adresse eingeben und das Shared Secret, welches aus Zahlen, Klein- und Großbuchstaben besteht und 16 Stellen lang ist. Auch Benutzername und Kennwort kann man bei der Einrichtung der Verbindung im iPhone gleich angeben. Die Anleitung, die über den Link „VPN-Einstellungen anzeigen“ geboten wird, hat bei meinem iPhone jedenfalls tadellos funktioniert.

Um mich nun mit dem VPN zu verbinden, sollte man zum Testen mal machen, schalte ich erst mal mein WLAN am iPhone ab. Ich will mich über das 3G-Netz verbinden. Nun gehe ich in die App Einstellungen. Jetzt befindet sich unterhalb von „Persönlicher Hotspot“ der Schalter „VPN“. Wenn man den doppeltippt, dauert es eine Weile, bis die Verbindung aufgebaut ist, anschließend wechselt der Schalter von „Aus“ zu „Ein“. Genau so kann man es auch wieder trennen.

Nun schließe ich mal die App Einstellungen, und gucke mal in die Statuszeile des iPhones. Neben dem Symbol für 3G gibt es jetzt auch ein VPN-Symbol. Also öffne ich doch mal eine App, die garantiert nur in meinem eigenen Heimnetz funktionieren sollte. Da bietet sich dreaMote an, um meine Dreambox zu steuern. Die App öffnet sich und nach einer Wartezeit von etwa 5 bis 8 Sekunden kann ich sogar meine Timer sehen. Damit steht fest, auf dem iPhone funktioniert VPN prima. Dann kann ich es in der App Einstellungen ja auch wieder trennen.

VPN am MacBook

Eigentlich werden hier die gleichen Angaben gemacht, nur der Weg ist geringfügig anders. Daher beschreibe ich mal den Vorgang, VPN am MacBook einzurichten. Ich verwende hier Yosemite 10.10.2, das nur, falls es bei anderen Versionen etwas anders aussieht. Ich denke aber, da dürfte es nicht so viele Unterschiede geben. Ich gehe zum Eintragen des VPN-Zugangs ins MacBook also folgendermaßen vor:

  • Mit VO+M gehe ich ins Menü und wähle aus dem Menü „Apple“ die Systemeinstellungen.
  • Hier gehe ich zu „Netzwerk“ und öffne es mit VO+Leertaste.
  • Mit VO+Pfeil-rechts gehe ich weiter, bis ich zu „Dienst hinzufügen“ komme, und drücke dort VO+Leertaste.
  • Im Einblendmenü „Anschluss“ wähle ich „VPN“.
  • Bei VPN-Typ wähle ich „Cisco IPSec“.
  • Bei Dienstname kann ich eine Beschreibung eingeben, die ist frei wählbar.

Anschließend aktiviere ich die Schaltfläche „Erstellen“. Nun befinde ich mich wieder in der Vorherigen Ansicht, und ein weiterer Dienst wurde meiner Dienste-Tabelle hinzugefügt. Dieser muss aber noch konfiguriert werden. Wenn ich jetzt also mit VO+Pfeil-rechts weitergehe, finde ich die Angaben über Serveradresse, Account-Name und Passwort, wo ich die gleichen Werte eingebe, wie beim iPhone.

Anschließend aktiviere ich noch die Schaltfläche „Authentifizierungseinstellungen“, weil hier noch paar Angaben gemacht werden müssen. Zum Beispiel der Shared Secret und der Gruppenname. Auch diese Angaben sind die gleichen, wie für das iPhone, also fülle ich das aus und bestätige das Dialogfenster mit der OK-Schaltfläche.

Ich könnte mich hier natürlich auch verbinden, das mache ich aber nicht. Aber hier ist ein Markierungsfeld, welches man durchaus aktivieren sollte. Denn wenn man „VPN-Status in der Menüleiste anzeigen“ markiert hat, kann man sich ganz bequem über das Statusmenü mit dem VPN verbinden. Dann schließe ich das Fenster, bestätige, dass ich die Änderungen übernehmen will und schließe alle Fenster.

Die VPN-Verbindung am Mac ist zwar jetzt eingerichtet, ich kann sie aber gerade nicht testen. Ich bin ja in meinem eigenen WLAN, da macht das nicht so viel Sinn. Dies zu testen muss also warten, bis ich in einem anderen WLAN bin.

Vereinfachung der MyFritz!-URL

Es gibt bekanntlich viele Wege zur Fritz!Box, hier sind mal zwei davon.

  • Man könnte sich einen Account bei FreeDNS erstellen und hier eine Subdomain registrieren. Das ist sogar kostenlos.
  • Wenn man eigene Domains hat, könnte man sich evtl. ja auch eine Subdomain hier anlegen.

Beide Varianten hätten das gleiche Ziel, aber da ich bereits mehrere Domains habe, lege ich mir eine Subdomain an.

Ein Beispiel könnte so aussehen: Ich habe ja die Domain tuksub.de. Jetzt könnte ich mir eine Subdomain einrichten, wie z. B. „linuxserver“, und als Ziel gebe ich die kryptische MyFritz!-URL an. Wenn ich in meinen Browser jetzt also linuxserver.tuksub.de eingeben würde, würde mich der Browser automatisch auf server01.XXX.myfritz.net weiterleiten, wobei XXX für den kryptischen Buchstabensalat steht, den MyFritz! mir zugewiesen hat.

Natürlich war das nur ein Beispiel, die Tatsächliche Subdomain und Domain, unter der mein Server zu erreichen ist, behalte ich mal für mich… 🙂

Fazit

Es klingt alles komplizierter, als es am Ende tatsächlich einzurichten war. Allerdings war dies ein Schritt, der lange überfällig war. Denn erst jetzt werden gewisse Dinge möglich. Zum Beispiel Fehlerbehebung und Statusabfrage von außen, Programmierung des Videorekorder-Dienstes, sobald der mal installiert ist und, was jetzt auch noch kommen soll, CardDAv und CalDAV zum Synchronisieren meiner Kalender- und Kontaktdaten mit meinen Mobilgeräten.

Aber was genau ich jetzt als nächstes tue, mal gucken. In viele Bereiche muss ich mich noch einlesen, dann geht es weiter!