Geuni/ April 21, 2020/ Deutsch/ 0Kommentare

1) Speicher deine Daten zu hause, z.B. auf einem NAS!

Ich wollte meine Daten auf meinem NAS speichern! Ich hatte keine Lust mehr meine Daten immer über Amerika zu schicken! Das war die Idee, welche mich dazu brachte über eine andere Lösung meiner Datenspeicherung nachzudenken. Ich bin ein IT’ler, deshalb habe ich schnell drüber nachgedacht, was ich alles brauchen würde, um einen kleinen Server zu Hause aufzusetzen der meine neue Anforderung erfüllen kann.

2) Das Ziel definieren was ich erreichen will

Ich will meine Daten zu Hause sicher und kontrolliert speichern. Weiterhin will ich meine Daten über das Internet sicher erreichen.

3) Probeversuche und Scheitern

Ich versuchte alles selber zu bauen. Raspi und go (in meinem Fall eine Cu-Box i). Ein paar externe Festplatten per USB angeschlossen, Debian installiert, einen RAID gebaut und Owncloud installiert. Freigaben auf der Fitz.Box eingerichtet und ein kostenlosen Dyn-DNS registriert. Let’s Encrypt Zertifikat geholt. OwnCloud Client auf allen Endgeräten installiert und es läuft. Jetzt brauchte ich noch lokale Freigaben, fix SAMBA installiert, läuft auch.

Jetzt kann ich ich das System nutzen (es waren so 6-9 Monate)! Dabei stelle ich fest, dass die Übertragungsgeschwindigkeiten im LAN so ca. 5MB betragen. Der RAID fällt gern auseinander weil die Stromzufuhr des Netzteils zu gering ist. Ich stelle fest, dass das gesamte Gerät nur einen Stromkreislauf hat! Ein RAID rebuild dauerte Tage. Die SD-Karte, von der das u-boot der Cu-Box startet, hält die I/O-Last nicht lange durch und „verbrennt“ einfach (sie war nicht mehr lesbar nach kurzer Zeit).

Das waren nur einige der Probleme die ich feststellte. Ich muss es einsehen, dass ich doch mehr Anforderungen an eine solche Lösung habe. Vor allem muss ich den üblichen Sprüchen Glauben schenken, Raspis sind nicht für eine produktive Umgebung gedacht!

4) Welche Anforderungen habe ich?

Diese kleine Geschichte von gut 9 Monaten brachte mich dazu, dass ich länger drüber nachdachte, was ich brauche und wofür. Letztlich waren die nachfolgenden Anforderungen die Grundlage. Ich will:

  • meine Daten nicht in der Cloud speichern,
  • meine Daten sicher über das Internet erreichen können,
  • auf die Daten unabhängig vom Gerät zugreifen können,
  • im LAN einen schnellen Datenaustausch erreichen,
  • nicht viel Aufwand in den Betrieb der Lösung investieren müssen.

Wegen dieser Anforderungen musste ich akzeptieren, dass ein NAS wahrscheinlich die beste Lösung für mich sein wird.

Folglich beschäftigte ich mich ein wenig mit gängigen NAS Herstellern und Modellen, was diese alles können, welche wie laut sind (war eine nachträgliche Anforderung: es muss leise sein) und und und. Das Ergebnis war, ich kaufte ein Qnap ST-453A mit 2x 4TB HGST Deskstar Serverfestplatten. Meine alte SSD kam als Cache-Beschleuniger in die dritte Bay des NAS und eine Externe-Festplatte die ich noch hatte wurde in die 4te Bay verfrachtet. Eine weitere Externe-Festplatte kommt per USB an das NAS.

5) Was muss ich jetzt machen?

Erstmal hieß es das NAS anschließen, einschalten, Konfigurationswizard starten und durchgehen, fertig. Im speziellen Beispiel der QNap kann ich sagen, es ist sinnvoll erst einmal alle Funktionen die man nicht benutzen will zu deaktivieren (UPNP, Timemachine, FTP, HybridDesk Station, iTunes Server, RADIUS, TFTP, NTP).

Aus meiner Erfahrungen zuvor hat ein kostenloser Dyn-DNS mich gestört (der Name gefiel mir nicht und Let’s Encrypt hat sog. Rate-Limits bei SSL-Zertifikaten), deshalb habe ich erst einmal eine Domain gekauft. In meinem Fall auf name.com (war der günstigste Anbieter). name.com hat aber keinen sinnvollen dynamic DNS-Service, deshalb musste ich als Nameserver die von FreeDNS nehmen.

6) Wie richte ich (günstig) eine Domain ein?

Name.com Nameserveranzeige die auf dein NAS zeigen soll
Name.com Nameserveranzeige
FeeDNS Dialog nach dem Login
FeeDNS Dialog nach dem Login

Die Konstruktion ist wie folgt: Trage auf name.com, wenn du dich eingelogged hast unter dem Menüpunkt „Nameserver“ einfach die 4 Server von FreeDNS ein (musst natürlich zuvor eine Domain dort gekauft haben), anstatt die von Name.com. Das sieht dann so aus:

Jetzt noch auf FreeDNS anmelden, meine Domain dort registrieren, wie das Bild zeigt (Add A Domain into FreeDNS) und fertig. Wer noch Subdomains will, kann zudem über FreeDNS so viele er will anlegen, oder auch andere DNS-Record Typen (darauf komme ich in einem anderen Beitrag, das ist für den Anfang erstmal nicht so wichtig). Wenn ihr fertig seit, sollte das wie im Bild oben (innerhalb des Bildes unten) aussehen. Jetzt fehlt nur noch das automatische aktualisieren eurer IP im DNS. Bei mir zu Hause habe ich eine Fritz.box und zeige deshalb mit Bildern wie das dort aussieht.

7) Wie richte ich einen dynamic DNS mit FreeDNS ein?

Fritz.box Einstellungen des Dyn DNS welcher auf dein NAS zeigen wird
Fritz.box Einstellungen des Dyn DNS

Grundsätzlich gilt bei FreeDNS, man aktualisiert seine Domains mit einer speziellen Update-URL, sowie seinem Benutzernamen und Kennwort der Website. Das tragt ihr wie im Bild unten beschrieben auf eurer Fritz.box entsprechend ein (für die Navigation in der Fritzbox das Bild beachten).

Jetzt fragt ihr euch wo ihr eure Update-URL herbekommt. Siehe dazu das nachfolgende Bild. Auf FreeDNS im Menüpunkt „Dynamic DNS„, eine Domain unten aus der Liste der „Update Candidates“ wählen, das „Wget script“ herunterladen. Da erhaltet ihr eine *.bat Datei, rechts klick auf die Datei, Bearbeiten (wenn ihr diese ausversehen ausführt, nicht schlimm, ihr aktualisiert damit nur euren DNS-Eintrag mit eurere aktuellen Public-IP). Ein Notepad sollte auftauchen, darin gibt es eine Zeile die sieht dann wie folgt aus:

wget -q --read-timeout=0.0 --waitretry=5 --tries=400 --background http://freedns.afraid.org/dynamic/update.php?"String"
FreeDNS DynDNS Einstellungen im Web UI
FreeDNS DynDNS Einstellungen im Web UI

Diesen String (fett markiert zuvor im Ausschnitt) tragt ihr als eure Update-URL in eurer Frit.box ein, wie oben im Bild.

Wenn ihr jetzt alles in der Fritz.box richtig eingetragen habt, solltet ihr in den Frit.Box-Logs, spannender weise, nichts sehen! Verwirrt mich auch! Das ist für uns aber kein Problem, denn wir checken das einfach schnell auf FreeDNS unter dem Menüpunkt „Dynamic DNS„, dort sollte, oben im Bild (innerhalb des Bildes, rechts unten unter [add]), nach dem es funktioniert hat, eine IP hinter der Domain auftauchen.

Wenn ihr es bis hier hin geschafft habt, sollte eure Domain, eurer aktuelle IP haben und ihr könntet jetzt eure Domain schon ansprechen. Leider dürfte noch nichts dahinter sein, weshalb ihr wahrscheinlich einen Fehler erhalten werdet.

8) Was ist „Portweiterleitung“ oder „Portforwarding“?

Jetzt fehlt nur noch eine Kleinigkeit in der Fritz.box. Ihr müsst eine Portweiterleitung konfigurieren, damit euer NAS/Server aus dem Internet wirklich erreichbar ist. Kurze Erklärung: Euer Router lässt für gewöhnlich alles aus eurem LAN in das große weite Internet zu und alles was jemand aus eurem LAN aus dem WAN (einfach ein anderer Begriff hier für Internet) angefordert hat wieder ins LAN. Niemals, im Standard, sollte euer Router pauschal jemanden aus dem Internet (wenn dieser eure IP herausfindet) in euer LAN lassen. Eine Portweiterleitung ändert das, für alle Anfragen zu einer festen IP in eurem LAN auf einem oder mehrerer definierter Ports.

Nebenbei empfehle ich, die Upnp-Funktion zu deaktivieren. Die Funktion in der Fritz.box hießt „Selbstständige Portfreigaben für diese Gerät erlauben“. Das seht ihr im Bild unten.

9) Portweiterleitung auf einer Fritz.box einrichten

Fritz.Box Webui zur Bearbeitung der Portfreigaben für ein Gerät im LAN
Fritz.Box Webui zur Bearbeitung der Portfreigaben für ein Gerät im LAN
Fritz.Box Einstellungen einer Portweiterleitung
Fritz.Box Einstellungen einer Portweiterleitung

Dazu in der Fritz.Box Internet -> Freigabe -> Gerät für Freigaben hinzufügen. Wenn ihr das gemacht habt, sollte was ähnliches erscheinen wie im Bild unten. Bei Gerät wählt ihr das NAS oder den Server aus. Weiter rechts unten seht ihr dann „Neue Freigabe“, wenn ihr da drauf klickt, kommt ein weiteres Fenster in dem ihr dann (so mach ich es meist) den Radio-Button „Portfreigabe“ wählt, unter dem Drop-Down Anwendung gern immer „Benutzerdefiniert“ auswählt, das Protokoll definierte und die Ports. HTTP ist standardmäßig das Protokoll TCP auf Port 80 (bei allen Port Feldern 80 eintragen, an, bis , extern), HTTPS ist standardmäßig TCP 443. Die Fritz.box kann sog. „PAT“ machen, das brauchen wir jetzt aber noch nicht.

Wenn alles richtig eingetragen ist, sollte das in etwa wie folgt aussehen wie im Bild hier.

Jetzt solltet ihr, wenn ihr eure Domain aufruft, auf euer NAS kommen.

10) Erreichbarkeit und Sicherheit aus dem Internet testen

Die Erreichbarkeit ist einfach getestet, die Domain, wie oben konfiguriert, in einem Browser aufrufen, wenn eine Website angezeigt wird, fertig.

Qualys SSL Labs Online Sicherheitstestergebnis
Qualys SSL Labs Online Sicherheitstestergebnis

Die Sicherheit ist ebenfalls recht einfach getestet (oberflächlich). Dazu nehme ich gern den Qualys SSL-Labs online Test. Dort trägt man einfach seine Domain ein und wartet bis das Ergebnis produziert wurde. Beispielhaft das Ergebnis meiner Domain:

Ich werde hier noch nicht den gesamten Test erklären, was das alles heißt. Dafür ist das einfach zu viel. Wichtig ist aber erstmal, ein „A“ wäre schon gut in der Bewertung (schlechter ist kein Weltuntergang, man sollte aber evtl. nacharbeiten), wenn das nicht der Fall ist, dann sollte man im Detail schauen, was der Bericht sagt, häufig sind schon Beschreibungen verlinkt die helfen, was die Bewertung negativ beeinflusst.

Demnach kann dieser Test eine erste Einschätzung abgeben, ob bei euch alles nach einem gängigen Standard, sicher ist.

11) Was ist HTTPs / TLS / SSL

Fangen wir damit an, zu erklären, was diese Worte heißen. Wichtig: Sie bezeichnen alle das gleiche. Historisch gab es zuerst SSL, heißt: „Secure Socket Layer“ und war eine Verschlüsselung für sog. SOCKETS. Schnell bemerkte man, dass diese Verschlüsselung alles mögliche im Transport verschlüsseln kann, also wurde es irgendwann umbenannt in TLS und das steht für „Transport Layer Security„. HTTP steht für „HyperText Transfer Protocol“ und ist die Grundlage für sehr viele Internetseiten, wie diese dargestellt werden. Wenn man das HTTP Protokoll mit TLS auf dem Transport verschlüsselt, nennen wir das HTTPS (S = Secure), denn HTTP ist die Grundlage für Browser wie Internetseiten dargestellt werden und TLS ist für die Absicherung des Transports dieser Daten notwendig.

Um TLS für euren Server einzurichten, brauchen wir erstmal ein sog. SSL-Zertifikat von einer „Certificate Authoritiy (CA)“ welches mittels einer „Public Key Infrastructure (PKI)“ bereitgestellt wird. SSL-Zertifikate kann man kaufen, oder es einfach bei Let’s Encrypt kostenlos anfordern. Wir nehmen die kostenlose Version, ohne jetzt hier mal die Nachteile davon zur Sprache zu bringen. Es gibt welche, soviel sei gesagt. Ich erkläre vorerst auch nicht, wie solche Zertifikate zur Sicherheit beitragen, selbst das reicht für einen eigenen Artikel.

Wir reduzieren uns hier im Bericht auch erstmal darauf, dass QNAP eine Let’s Encrypt Integration hat (ich finde diese nicht gut!) und zeigen nur wie man diese nutzt (ohne Gewähr das es funktioniert, denn ich weiß, QNAP hatte damit Probleme!), denn wie man Let’s Encrypt z.B. mit dem Linux-Tool CertBot nutzt, kommt später in den Beiträgen, wenn wir anfangen werden Funktionen in Docker-Container zu schieben und da kommen wir um sowas nicht rum.

12) HTTPs / TLS / SSL einrichten

LetsEncrypt Qnap UI um ein Zertifikat zu bekommen
LetsEncrypt Qnap UI um ein Zertifikat zu bekommen

Am Beispiel Qnap NAS, gehen wir jetzt auf das Admin-Web-UI, klicken oben links auf die „drei Balken“ im neu geöffneten Menü klicken wir auf „Systemsteuerung“ und erhalten ein neues Fenster (s.u.).
In der Systemsteuerung wählen wir unter der Rubrik „System“ die Unterrubrik „Sicherheit“ aus, dort den Reiter „Zertifikate & Private Schlüssel“, klicken auf den Button „Zertifikat ersetzten“ und erhalten ein kleines weiteres Fenster (ersetzt wird deshalb, weil standardmäßig ein sog. Self-Signed Zertifikat eingebunden ist, was jetzt durch eines von Let’s Encrypt überschrieben werden soll), wo wir im Dropdown-Menü „Von Let’s Encrypt beziehen“ wählen und klicken auf Weiter.

Qnap LetsEncrypt Zertifikats UI
Qnap LetsEncrypt Zertifikats UI
Chrome Anzeige eines SSL-Zertifikats
Chrome Anzeige eines SSL-Zertifikats

Jetzt erhalten wir eine weitere Ansicht und tragen dort die notwendigen Daten ein. Diese sollten wir haben, denn das haben wir alles zuvor eingerichtet. Bei Domainname kommt eure Domain rein, bei E-Mail eine E-Mail von euch und die „Alternative Name“ könnt ihr erstmal weg lassen.

Nachdem der Prozess abgeschlossen ist, solltet ihr euer NAS mittels HTTPs auf Port 443 über eure Domain ansprechen können (wenn nicht, weiter oben schauen wie ihr die Ports freigebt, sollte das ein Problem sein).
Wenn alles funktioniert, dann solltet ihr eure Domain mit dem Präfix „https“ aufrufen können und ihr solltet in eurem Browser ein Schloss-Symbol recht nah an der Adresse sehen. Wenn ihr euch das Zertifikat nun anschaut, sehr ihr, dass es eines von Let’s Encrypt ist für eure Domain (hier erkennbar am Wort „Gültig“, stimmt nur weil wir zuvor eins beantragt haben auf eure Domain).

Sollte HTTPS jetzt noch nicht gehen, sollte man einmal in der Qnap-Systemsteuerung unter „Allgemeine Einstellungen“ schauen, ob „Sicheren Anschluss (HTTPS) aktivieren“ eingeschaltet ist. Selbiges gilt leider bei QNap für „den Webserver“ unter Systemsteuerung -> Anwendungsn -> WebServer. Das klingt etwas verwirrend, ich bin mit der Konfiguration bei Qnap hier etwas unzufrieden, da sie nicht klar verständlich ist, wo die Unterschiede der beiden „HTTPS aktivieren“ Optionen sind.

13) Netzlaufwerke einrichten im LAN (SMB)

Aktivierung von SMB über das QNap UI
Aktivierung von SMB über das QNap UI

Vorweg zwei Worte zu SMB. Das „Server Message Block“ Protokoll ist nicht sehr sicher. Es hat einige strukturelle Schwächen, ist aber gut in der allgemeinen Performance, weshalb es weitflächig Anwendung findet. Man sollte SMB nicht über das Internet nutzen! SMB sollte immer nur im LAN genutzt werden, außer man weiß was man da macht und welche Daten über die Leitung gehen! Technisch geht es natürlich.

Das einschalten bei der QNAP ist recht einfach. Im Admin-Ui auf die Systemsteuerung gehen, in der Rubrik „Netzwerk und Dateiservices“ die Unterrubrik „Win/Mac/NFS“ wählen. Rechts in der Ansicht dann den Service einschalten, vorerst auf „Eigenständiger Server“ belassen, übernehmen, fertig.

Jetzt kann man mit seinem Benutzer und Passwort entweder in einem Windows-File-Explorer mit sog. UNC-Schreibweise in der Adresszeile („\\<IP>\“) auf das NAS per SMB zugreifen oder dies als Netzlaufwerk einbinden. Zum Einbinden, im Arbeitsplatz/FileExplorer mit rechts klick auf „Dieser PC“ die Auswahl „Netzlaufwerk verbinden“ wählen und im nachfolgenden Dialog als „Ordner“ die IP des NAS als UNC-Schreibweise \\<IP>\ eingeben und ggf. den haken unten wählen „Verbindung mit anderen Anmeldeinformationen herstellen“ wählen.

Windows FileExplorer zur Einbindung eines Netzwerklaufwerks
Windows FileExplorer zur Einbindung eines Netzwerklaufwerks

Beim auftauchenden Dialog um sich mit den NAS-Benutzerdaten anzumelden, kann es sein, dass man als „Name“ die Domäne des NAS zuvor eintragen muss (das ist meist der Name des Nas selber) in der Schreibweise „Domäne\Benutzername“. Wenn es funktioniert hat, sollte es da schon hier gewesen sein.

14) Smartphone anbinden (Android)

Smartphones sind aus der Netzwerksicht hybride Geräte. Sie bewegen sich schließlich zwischen einem WAN (u.a. mobiles Internet) und einem LAN (z.B. W-LAN). Aus einer Netzwerkperspektive kann das ein Problem sein.

Die Vorteile von LAN sind fast immer, die Geschwindigkeit. LAN haben wir aber nicht überall, also bauen wir alles so auf als wäre es im WAN, denn auf dem Smartphone sind wir die WAN-Geschwindigkeit gewohnt und fühlen deshalb diesen Nachteil nicht direkt.

Am Beispiel QNap NAS ist die Integration auf Smartphones ziemlich einfach. Die sog. Qfile-App herunterladen und im W-Lan konfigurieren, fertig. Mehr braucht ihr nicht machen.

15) Smart-TV anbinden (Android-TV)

Ein Smart-TV ist meistens fast so flexibel wie ein Smartphone, nur das die Steuerung vom Fernseher über die Fernbedienung nicht so flexibel ist.

Grundsätzlich sind mir erstmal keine Apps von Herstellern bekannt die on-the-fly Qnap mit einem Smart-TV (in meinem Beispiel Android) interagieren lassen. Da wir aber SMB aktiviert haben, können wir das immerhin nutzen um auf die Daten auf dem NAS zuzugreifen. Ich beschränke mich am Beispiel hier mal auf Kodi als SMB-Client auf dem Smart-TV.

Wir starten Kodi, wählen mit der Fernbedienung oben links das Zahnrad aus um darüber in den Dateimanager zu gelangen. Dort fügen wir jetzt eine neue Quelle hinzu. Dort wo zuerst „<Keine>“ steht, klicken wir drauf, und tippen ein.

smb://<IP>/ 
Kodi Dialog zum einfügen einer SMB Ressource
Kodi Dialog zum einfügen einer SMB Ressource

Man übernehme das Ganze und kann nun per SMB, nachdem Benutzername und Passwort eingegeben wurden, auf dem NAS mit dem Fernseher browsen. Alternativ könnt ihr jetzt auch die „SMB-Quelle“ in Kodi weiter verwenden, z.B. um Bibliotheken aufzubauen etc. Das geht natürlich mit fast allen SMB-Clients, die Schreibweise zum Verbinden ist manchmal unterschiedlich aber im Grundprinzip identisch.

16) Windows anbinden

Windows haben wir im Laufe des Artikel schon mehrfach „angebunden“ zumindest über das Web-UI. Ja, das ist eine Option, die steht nämlich in der ganzen Welt nach unseren Vorarbeiten, sicher, zur Verfügung.

Wenn wir jetzt eine lokale Dateisynchronisation á la DropBox haben wollen, laden wir uns den Qsync Client von Qnap herunter und richten diesen ein. Das erkläre ich mal nicht, denn das ist sehr einfach.

Weiterhin kann man im File-Explorer, wie oben schon beschrieben, per SMB auf das NAS zugreifen, für all die Daten, die man evtl. nicht direkt lokal synchronisiert haben will, aber dennoch häufiger mal verwendet.

17) Fazit/Zusammenfassung

Wir haben eine ganze Menge geschafft. Im speziellen haben wir:

  • eine Domain registriert
  • für die Domain einen „custom“ DNS-Server konfiguriert
  • für unsere Domain ein dynamic DNS eingerichtet
  • unserem Server ein SSL-Zertifikat besorgt und installiert
  • die Online-Sicherheit unseres Servers getestet
  • SMB aktiviert
  • Clients an unser neues Ökosystem angebunden (Android, Windows, Smart-TV)

Im allgemeinen gesprochen haben wir es geschafft eine Grundlage zu bauen um unsere Daten aus der Cloud in unser Wohnzimmer zu bringen. Das Ganze ist sicher und über das Internet überall erreichbar. Ziel erreicht! Jetzt kann man die Daten verschieben!

18) Ausblick

Wir haben jetzt erst angefangen mit derlei Dingen zu spielen. Wir haben unsere Daten lokal, aber irgendwie noch nicht alle. Was ist denn mit unseren Kontakten? Die haben wir noch in der Cloud, gleiches gilt für unseren Kalender. Hmm, das muss irgendwie jetzt auch noch sinnvoll lokal ins Wohnzimmer.

Das wird auch das Thema des nächsten Artikels sein. Wie wir unsere Kontakte und Kalender lokal speichern und sicher über das Internet bereitstellen, sowie diese mit unseren Clients synchronisieren lassen.

Ich bin mir noch unsicher ob das in einen Artikel alles reinpasst, denn das könnte länger werden ;D

Share this Post

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*
*