dnsforge.de ist einer von vielen adminForge Services und ist ab sofort um eine DNS Resolver Hard-Edition erweitert worden. dnsforge „Hard“ ist ein redundanter Server mit extra strengen Blocklisten die momentan mehr als 3 Millionen...
Ein neuer adminForge Service kann ab sofort genutzt werden. Wishthis Wunschliste Wishthis ist eine einfache, intuitive und moderne Wunschlisten-Plattform zum Erstellen, verwalten und anzeigen Deiner Wünsche für jede Art von Anlass. https://wunschliste.adminforge.de Features: Erstelle...
Ein neuer adminForge Service kann ab sofort genutzt werden. Ein alternatives Frontend zu Chefkoch mit dem Schwerpunkt auf Privatsphäre. GoCook Ein alternatives Frontend zu Chefkoch mit dem Schwerpunkt auf Privatsphäre. https://cook.adminforge.de Features: Schnell! Nur...
Ein neuer adminForge Service kann ab sofort genutzt werden. IT Tools ist eine Sammlung praktischer Online-Tools für Entwickler, mit großartiger UX. IT Tools IT Tools ist eine Sammlung praktischer Online-Tools für Entwickler, mit großartiger...
Immer mehr Länder und Behörden weltweit streben danach, die Abhängigkeit von einzelnen, proprietären Anbietern zu verringern und Open-Source-Software zu fördern. Dieser Trend zeigt sich auch in Deutschland, wo das Bundesland Schleswig-Holstein seine Bemühungen verstärkt von Microsoft-Produkten auf Open-Source umzusteigen. Die Landesregierung hat beschlossen, die PCs der rund 30.000 Landesbediensteten auf Open-Source-Lösungen umzustellen und hin zu...
Zwei neue adminForge Services können ab sofort genutzt werden. BookStack ist eine einfache Wiki-Software die leicht zu bedienen ist. Du kannst deine Informationen in Büchern mit Seiten ablegen und diese Bücher in Regale einordnen....
Ein neuer adminForge Service kann ab sofort genutzt werden. Mit der kostenlosen Open Source Lösung unbox.at schützt du deinen Posteingang mit E-Mail-Aliasnamen. Antworte anonym auf weitergeleitete E-Mails. Der Absender erhält die E-Mail so, als...
Ihr findet ab sofort die adminForge Services auf der Startseite! Den Schritt fand ich sinnvoll, da die Webseite sich schon lange nicht mehr um Tutorials dreht, sondern um die Open Source Dienste. Nun könnt...
Zwei neue adminForge Services können ab sofort genutzt werden. 1) Hat.sh ist eine Webanwendung, die eine sichere lokale Dateiverschlüsselung im Browser ermöglicht. Sie ist schnell, sicher und verwendet moderne kryptografische Algorithmen mit Chunked-AEAD-Stream-Verschlüsselung/Entschlüsselung. 2)...
Open-Source-Software nachhaltig zu entwickeln, wird immer schwieriger. Willkommen im Zeitalter von "Nur schauen, nicht anfassen" für kommerzielle Rivalen.
Das in San Francisco ansässige Softwareunternehmen HashiCorp, bekannt für seine Cloud-Tools wie Terraform, Vagrant oder Vault, ändert seine Lizenzbedingungen. In einer Ankündigung wird der Wechsel von der Mozilla Public License 2.0 zur Business Source License mit der Gewährleistung kontinuerlicher Investitionen des Unternehmens in seine Community begründet.
HashiCorp hält weiterhin daran fest, seinen Quellcode frei verfügbar zu machen. Allerdings gibt die BSL dem Unternehmen mehr Kontrolle darüber, wer den Code kommerziell nutzen darf. Mit anderen Worten, wer Software von HashiCorp produktiv nutzt und sie für ein Konkurrenzprodukt einsetzen möchte, ist von nun an nicht nur bösen Blicken, sondern auch rechtlichen Hürden ausgesetzt.
In guter Gesellschaft
Einige Unternehmen haben diesen Schritt bereits vollzogen und sind auf unfreie Lizenzmodelle umgestiegen. Couchbase, Sentry und MariaDB MaxScale sind einige Beispiele dafür. Dies wirft natürlich die Frage auf, ob wir uns von der Idee freier Open-Source-Software verabschieden müssen. Die Omnipräsenz der Cloud-Industrie, die seit den 2010er-Jahren sich großer Beliebtheit erfreut, droht ernsthaft, die FOSS-Welt zu destabilisieren.
Stellt dir vor, du hast einen reichen Obstgarten erschaffen, in dem jeder sich frei der Früchte bedienen kann. Größzügig lädst du alle ein, sich nach Belieben zu bedienen und empfiehlst ihnen, selber Bäume zu pflanzen oder die Saaten weiterzuverbreiten. Eines Tages bemerkt ihr jedoch, dass einige Gäste die Früchte einsacken, sie auf eigenen Märkten verkaufen und die Profite einsacken, ohne selbst an die Ursprungscommunity etwas zurückzugegeben. Klingt unfair? Genau das passiert momentan in der Open-Source-Welt.
Damit wird Open Source zwar nicht von Tisch gewischt, sondern in eine Richtung gelenkt, die den freien ungehinderten Austausch unabhängig von gewerblichen Interessen einschränkt. Konkret wackelt dabei das 6. Kriterium der Open-Source-Definition (OSD), das eine Unterscheidung nach Einsatzfeldern ausschließt.
HashiCorp betont, dass es sich weiterhin seiner Community, seinen Partnern und Kunden verpflichtet sieht. Nur die Zeit wird zeigen, ob diese Lizenzänderungen die richtigen Schritte auf dem Weg dorthin sind. Einerseits werden Möglichkeiten von Forks eingeschränkt, andererseits ist niemandem geholfen, wenn die Weiterentwicklung durch HashiCorp auf dem Spiel steht, nur, weil externe Akteure bezogen auf die Einnahmen sinnbildlich das Wasser abgraben. Die Leute, die Software entwickeln, müssen auch von etwas bezahlt werden.
Update (20:30 Uhr): Ggfs. werde ich mich mit der BSL noch einmal in einem gesonderten Artikel beschäftigen, aber ein kleines Detail ist hierbei vllt. noch erwähnenswert, um den Blick auf die Sache zu ändern. Die von HashiCorp verwendete Form der BSL setzt auf eine Art Embargozeit. Nach 4 Jahren der Veröffentlichung eines nach BSL lizenzierten Werkes in einer spezifischen Version, greift folgender Passus:
Effective on the Change Date, or the fourth anniversary of the first publicly available distribution of a specific version of the Licensed Work under this License, whichever comes first, the Licensor hereby grants you rights under the terms of the Change License, and the rights granted in the paragraph above terminate.
Als Reaktion auf die Entscheidung von Red Hat bei RHEL/CentOS eine Paywall einzuführen, hat SUSE nun eine offizielle Erklärung abgegeben um wachsenden Sorgen der Open Source Community zu begegnen. Vergangene Woche schlug die Entscheidung von Red Hat, den Zugang zu seinem RHEL Quellcode einzuschränken große Wellen. Die Reaktion der Open Source Gemeinschaft fiel erwartungsgemäß mehrheitlich...
Als Reaktion auf die Entscheidung von Red Hat bei RHEL/CentOS eine Paywall einzuführen, hat SUSE nun eine offizielle Erklärung abgegeben um wachsenden Sorgen der Open Source Community zu begegnen. Vergangene Woche schlug die Entscheidung von Red Hat, den Zugang zu seinem RHEL Quellcode einzuschränken große Wellen. Die Reaktion der Open Source Gemeinschaft fiel erwartungsgemäß mehrheitlich...
Ein neuer adminForge Service kann ab sofort genutzt werden. Ein Heim für deinen Code – deine Projekte. Git Ein Heim für deine Projekte. https://git.adminforge.de Features: Organisationen erstellen Repositories erstellen Mirrored Repo zu bspw. GitHub...
Ein neuer adminForge Service kann ab sofort genutzt werden. nope.chat ist ein freier [matrix] Heimserver für den Element Messenger. Bildquelle: element.io Matrix Messenger nope.chat ist ein freier [matrix] Heimserver für den Element Messenger. https://nope.chat...
In diesem Artikel führe ich auf, was ich 2022 für bzw. mit FLOSS getan habe. FLOSS steht dabei für Free/Libre Open Source Software. Es geht dabei nicht um weltbewegende Projekte oder große Beiträge. Es ist mehr eine Sammlung von Kleinigkeiten. Dennoch möchte ich diese öffentlich machen, um zu zeigen, was man mit FLOSS tun und wie man sich beteiligen kann.
Ansible-Rolle zum Deployment von Nextcloud und MariaDB in einem Podman Pod
Dieses kleine Projekt ist etwas verrückt und für den Einsatz in Produktion vermutlich nicht geeignet. Doch konnte ich mich gleich mit zwei Themen intensiv beschäftigen, die mich interessieren, Ansible und Podman. Mein Ziel war es, die Anwendungen Nextcloud und MariaDB zur Bereitstellung einer privaten Cloud in einem rootless Podman Pod zu provisionieren. Die ganze Geschichte kann in der kleinen Serie Nextcloud im Container nachgelesen werden.
Mit diesem Projekt habe ich ein Patch-Management gebaut, welches sehr gut die Anforderungen meines Arbeitgebers abdeckt und sich ohne Zusatz-Subskriptionen wie das Smart-Management-Addon für RHEL-Subskriptionen realisieren lässt. Seit 2018 läuft es vollautomatisch und stellt sicher, dass verfügbare Sicherheits-Updates mindestens einmal pro Monat installiert werden.
Es erfreut sich auch außerhalb unserer Organisation einiger Beliebtheit:
Häufig haben Unternehmen/Organisationen sehr individuelle Anforderungen, für die keine fertigen Lösungen von der Stange existieren. Open Source schafft die Möglichkeit, sich selbst helfen zu können. So habe ich ohne großen Aufwand Ansible-Rollen geschrieben, um Proxy-Einstellungen für den subscription-manager und YUM bzw. DNF zu konfigurieren sowie um Red Hat Enterprise Linux registrieren und den System Purpose konfigurieren zu können.
Die Linux System Roles sind eine Sammlung von Ansible-Rollen zur Konfiguration diverser Betriebssystem-Komponenten von Linux. Ziel der Sammlung ist es, Ansible-Rollen zur einfachen Nutzung durch Systemadministratoren bereitzustellen.
Ich habe viel über den Entwicklungsprozess von Ansible-Rollen gelernt, bis meine erste Rolle pam_pwd aufgenommen wurde. Mit dieser Rolle kann PAM konfiguriert werden, um eine Passwort-Richtlinie zu etablieren.
Sie befindet sich noch in einem sehr frühen Stadium. Nutzt sie auf eigene Gefahr. Der Lerneffekt für mich war jedoch sehr groß, so dass sich die Arbeit in meinen Augen gelohnt hat.
Mit Ansible Labor-Umgebungen in KVM und vSphere provisionieren
Ich benötige immer mal wieder Labor-Umgebungen mit frischen Betriebssystem-Installationen für verschiedene Versuche und Tests. Um die Provisionierung dieser Laborumgebung zu vereinfachen und zu beschleunigen, habe ich zwei Ansible-Rollen erstellt, mit denen sich diese Labor-Umgebungen auf KVM- und vSphere-Hypervisoren provisionieren lassen:
Man kann FLOSS auch dadurch unterstützen, indem man darüber spricht bzw. schreibt. Letzteres tue ich in diesem Blog. Der My-IT-Brain Jahresrückblick 2022 gibt einen Überblick darüber.
Hinzu kommen kleine Beiträge in Form von Issue-Reports und Pull-Requests. Details kann man meiner Contribution Activity auf Github entnehmen.
Spenden
Viele FLOSS-Projekte werden ohne funktionierendes Geschäftsmodell von Menschen in deren Freizeit entwickelt und gewartet. Diese Projekte sind auf Spenden angewiesen.
Ich setze mir jedes Jahr ein persönliches Budget, aus dem ich an die Projekte spende, deren Anwendungen ich häufig benutze oder die mir besonders sympathisch sind. Das ist nicht immer ganz einfach. Ich persönlich bevorzuge eine Banküberweisung oder eine Einmalzahlung per Kreditkarte. Mich erst bei einem Zahlungsdienstleister anzumelden stellt für mich meist eine zu hohe Hürde dar.
Fazit
Es muss nicht das eine große Projekt sein. Auch mit der Summe kleiner Teile kann man eine Menge erreichen.
FLOSS hat mir geholfen, viele meiner Anforderungen zu erfüllen. Für mich ist es selbstverständlich, die Ergebnisse dieser Arbeit ebenfalls wieder unter einer freien Lizenz zu veröffentlichen, um auf diesem Weg etwas an die FLOSS-Gemeinschaft zurückzugeben. Doch denkt immer daran: „Nutzung auf eigene Gefahr.“
Wusstest Du, dass sowohl Microsoft als auch Apple sich an verschiedenen Open Source Software Projekten beteiligen? In dieser Folge gehen wir auf die Frage ein, welches der beiden Unternehmen eigentlich mehr zu FOSS und Linux beiträgt bzw. ob Microsoft hier nicht mehr Respekt für seine umfangreichen Beiträge verdient. Interessiert? Dann gleich reinhören.
Ein neuer adminForge Service kann ab sofort genutzt werden. Dropfile ist eine Lösung für den Austausch von Dateien im Heimnetzwerk, die vollständig im Browser funktioniert. Ein bisschen wie Apple’s Airdrop, aber eben nicht nur...
Wir haben für euch die Übersicht der adminForge Services verbessert. Ihr könnt nun schneller die Dienste durchsuchen und mit den Kategorien besser zuordnen. Mit Hilfe der Shift-Taste öffnet ihr die Suche, mit ESC könnt...
Andreas hat einen Nextcloud-Server auf Debian-Basis installiert und dabei seine Vorgehensweise dokumentiert. Diese basiert zum großen Teil, aber nicht ausschließlich auf meinem Homeserver-Tutorial zu Ubuntu 18.04 [Homeserver/NAS mit Ubuntu 18.04: Teil 1, Einleitung, Hardware und Kosten]. Jedoch mit einigen Abweichungen, da sich Debian und Ubuntu doch in einigen Details unterscheiden.
Die Dokumentation seiner Vorgehensweise hat er mit freundlicherweise zur Veröffentlichung zukommen lassen.
In dieser Anleitung geht es darum Debian Buster (10) Server zu installieren, dazu wird das Serversystem ohne Gui und lediglich mit OpenSSH sowie Systemwerkzeugen installiert.
Im Rechner befindet sich eine SSD für das System und eine große HDD als Datenlaufwerk, diese HDD wird während der Installation von Debian Server als /mnt/storage eingebunden.
Nextcloud soll dann so funktionieren das man über die Sambafreigabe die Daten im Netzwerk überspielt und diese Daten einfach in Nextcloud übernimmt, also nicht über Internet hochladen, sondern einfach über das eigene Netzwerk einspielt.
Debian Server ist bereits installiert und der User ist angemeldet, wir fahren wie folgt fort:
Bei der Abfrage nach Namen usw. muss man nichts eingeben, einfach Enter drücken, am Ende mit Ja bestätigen.
sudo smbpasswd -a heimnetz
Neues Passwort für den User „heimnetz“ eingeben und ein weiteres Mal bestätigen. Nun werden die Ordner für die Samba-Freigaben angelegt und die Benutzerrechte vergeben.
Nun wird die Datenbank für Nextcloud konfiguriert. Zuerst loggt man sich im Datenbankserver ein.
Anschließend wird die Datenbank für NExtcloud angelegt. Achtung: ‚passwort‘ unbedingt durch ein selbst gewähltes Passwort ersetzen.
mysql -u root -p
CREATE DATABASE nextclouddb;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON nextclouddb.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Nach einem weiteren „exit“ arbeitet man wieder mit normalen Userrechten.
Es wird jetzt noch das „externe“ Laufwerk eingebunden.
Bei den Apps findet man unter dem Punkt deaktivierte Apps die App External Storage Support, welche mit einem Klick auf aktivieren verfügbar gemacht wird.
Zum Einbinden der vorhandenen Ordner gehen wir wieder auf das Symbol in der rechten oberen Ecke und anschließend auf Einstellungen. Im linken Bereich findet man verwirrender Weise zwei Punkte mit dem Namen „Externe Speicher„. Zum Einrichten benötigen wir den unteren.
Ordnername wird entsprechend der Freigabe benannt. Z.B. lokale Videos
Externer Speicher ist SMB/CIFS
Authentifizierung ist Benutzername und Passwort
Konfiguration:
Host ist localhost Share ist der Name der Freigabe. Z.B. Video Entfernter Unterordner bleibt leer Domain bleibt ebenfalls leer Benutzername ist heimnetz oder heimgast. Je nachdem ob dieDateien mit Schreibrechten (heimnetz) oder aus Sicherheitsgründen nur mit Leserechten (heimgast) eingebunden werden sollen Passwort ist das zum Benutzername gehörende Passwort
Ein Klick auf den kleinen Haken am Ende des Formularfeldes bindet den Ordner in Nextcloud ein.
Optionale Nextcloud-Konfigurationen
Da NextCloud ab und zu Dateien blockiert (File is locked), füge ich folgendes in der config.php ein:
Mittlerweile ist Ubuntu 20.04 erschienen. Hierbei handelt es sich wieder um eine LTS-Version (long term support), die 5 Jahre mit Updates versorgt wird. Also bis April 2025. Damit wird Ubuntu 18.04 abgelöst, auf welchem die bisherige Homeserver-Anleitung basiert.
Ubuntu 18.04 war ebenfalls eine LTS-Version und wird noch bis April 2023 mit Sicherheitsupdates versorgt. Wer also bereits einen Server, basierend auf der vorherigen Anleitung betreibt, der kann diesen auch noch viele Jahre sicher weiterverwenden.
Wer jedoch ein eigenes NAS auf Ubuntu-Server-Basis neu einrichten möchte, der greift jetzt natürlich zur Version 20.04.
Im laufenden Betrieb wird man keine großen Änderungen zwischen Ubuntu 18.04. und 20.04. feststellen. Jedenfalls bei der Server-Version. Trotzdem haben sich einige Dinge geändert.
Bisher wurden zwei Installationsmedien angeboten. Eine mit dem klassischen Debian-Installer (Alternate-CD) und eine mit der Eigenentwicklung Subiquity. Mit Ubuntu 20.04 wurde die Alternate-CD eingestellt. Der Subiquity-Installer ist somit der neue Standard und die bisherige Artikelreihe funktioniert an dieser Stelle nicht mehr.
Unter anderem aus diesem Grund habe ich mich entschlossen, die Artikelreihe Homeserver/NAS auf Basis von Ubuntu Server neu zu erstellen. Dieses Mal auf Basis von Ubuntu Server 20.04. Außerdem möchte ich eine Reihe weiterer Änderungen vorschlagen oder vorstellen.
Da ich diese Tutorial-Reihe bewusst so einsteigerfreundlich wie möglich halten möchte, will ich eine zusätzliche Hardware-Option vorstellen. Neben der Installation mit einem klassischen Software-Raid, wird auch die Installation mit einem externen RAID-Gehäuse behandelt. Dies reduziert den Einrichtungs- und Wartungsaufwand nochmals erheblich.
Aus dem gleichen Grund wird Nextcloud und der Plex-Mediaserver als Snap-Paket installiert. Mir ist klar, das Snaps durchaus umstritten sind und auch ich sehe Canonicals erneuten Alleingang bei diesem Thema kritisch. Ich habe beim Einrichten und Testen des hier beschriebenen Setups jedoch festgestellt, dass die Nutzung der Snaps für Nextcloud und Plex die Einrichtung und Wartung extrem vereinfachen. Und genau das ist eines der Ziele dieser Artikelreihe. Auch aus Sicherheitsgründen dürfte die Verwendung der Snaps Vorteile bieten. Wer lieber auf die klassische Variante mit separat installiertem Webserver, Datenbank etc. setzen möchte, der kann gerne die Artikelreihe zu Ubuntu 18.04 anschauen. Die Installation und Konfiguration funktioniert unter Ubuntu 20.04 weitestgehend identisch.
Immer mehr Internetanschlüsse haben leider keine öffentliche IPv4-Adresse mehr (DS-Lite), sodass der Zugriff über das Internet auf den Homeserver mit klassischen DynDNS-Diensten nicht mehr funktionieren. Daher wird auch der Zugriff über das Internet auf den Homeserver mit einem DS-Lite-Anschluss behandelt werden.
Vor- und Nachteile eines selbstgebauten Homeserver/NAS
Ein selbstgebauter Homeserver/NAS muss mit verschiedenen Systemen konkurrieren. Und jedes Setup hat seine eigenen Vor- und Nachteile. Konkurrenten sind vor allem fertige NAS-Systeme von Herstellern wie Synology oder QNAP. Aber auch Clouddienste wie Dropbox oder Google Drive.
Der Vorteil einer selbstgebauten Lösung ist vor allem die Flexibilität. So kann man die Hardware so dimensionieren, wie man sie benötigt. Außerdem lässt sich jede beliebige Software installieren und man ist nicht darauf angewiesen, dass der Hersteller diese für das eigene NAS als Plugin zur Verfügung stellt.
Ein weiterer Vorteil ist die Langlebigkeit. Ubuntu LTS-Versionen, zu denen 20.04 gehört, werden 5 Jahre mit Sicherheitsupdates versorgt. So lange kann das System weitgehend unverändert eingesetzt werden. Eine anschließende Aktualisierung auf eine neue Betriebssystemversion ist problemlos möglich, da ganz normale Computerhardware verwendet wird. Und selbst wenn Ubuntu nicht mehr weiterentwickelt werden sollte, kann man jederzeit auf ein anderes Betriebssystem umsteigen, wobei dann natürlich eine Neuinstallation fällig ist.
Wie lange ein fertiges NAS-System vom Hersteller unterstützt wird, ist beim Kauf völlig unklar. Gerade No-Name-Produkte sind eher dafür bekannt, dass sie überhaupt keine Sicherheitsupdates erhalten. Die bekannten Hersteller verhalten sich im NAS-Sektor zwar recht vorbildlich, dass dies aber die kommenden Jahre so bleibt und dass die Firma weiter existiert kann niemand garantieren.
Ein Vorteil gegenüber Clouddiensten ist die Privatsphäre. Wer einen eigenen Homeserver oder NAS in den eigenen vier Wänden betreibt, der muss seine Daten keinem Dienstleister wie Google, Dropbox anderen Unternehmen anvertrauen.
Die Anforderungen
Folgende Anforderungen soll der selbstgebaute Homeserver/NAS auf Basis von Ubuntu Server 20.04 erfüllen.
Möglichst geringer Stromverbrauch, da das System 24/7 laufen soll.
Möglichst zuverlässig und wartungsarm.
Schutz der Daten vor einem Festplattenausfall durch Speicherung auf mehreren Datenträgern.
Bereitstellen von Netzwerkfreigaben zum einfachen Zugriff auf die Daten mit Windows und Linux.
Synchronisieren bestimmter Daten über mehrere Geräte (sodass diese auch lokal vorliegen).
Bereitstellen von zentralem Adressbuch und Kalender und Synchronisierung mit Mobilgeräten
Zugriff auf die Daten über das Internet von unterwegs.
Streamen von Audio und Video über das Internet.
Tägliches automatisches und verschlüsseltes Backup der wichtigsten Daten auf einen Cloudspeicher außer Haus.
Zusätzliches Backup sämtlicher Daten auf einen externen Datenträger.
Die verwendete Software
Als Betriebssystem kommt Ubuntu Server 20.04 zum Einsatz. Die Server-Version hat in den letzten Jahren bewiesen, dass sie sehr robust und zuverlässig ist. Aus diesem Grund setze ich weiterhin auf dieses Betriebssystem.
Netzwerkfreigaben für das lokale Netzwerk werden von SAMBA bereitgestellt. SMB/CIFS-Freigaben mit SAMBA sind schnell und werden von allen gängigen Betriebssystemen (Linux, Windows, MacOS) standardmäßig unterstützt.
Nextcloud wurde in den letzten Jahren sehr aktiv weiterentwickelt und mit vielen neuen Funktionen ergänzt. Erfreulicherweise hat sich der Update-Mechanismus von Nextcloud als sehr sicher und zuverlässig herausgestellt, was das Upgrade auf neue Nextcloud-Versionen zum Kinderspiel macht. Das ist alles andere als selbstverständlich. Wenn es um die Synchronisierung von Dateien, Kontakten oder Kalendereinträgen geht, führt auf daher kaum ein Weg an Nextcloud vorbei.
Den Plex-Mediaserver verwende ich nach wie vor zum Streamen von Musik und Video über das lokale Netzwerk und über das Internet. Plex ist leider keine Open-Source-Anwendung. Gegenüber den mir bekannten freien Projekten hat Plex den Vorteil, dass Apps und Clients für eine Vielzahl von Systemen vorhanden sind. So lassen sich Videos und Musik gleichermaßen auf das Smartphone, den Fernseher oder den Computer übertragen.
Die Verschlüsselung der Verbindung über das Internet wird mit einem kostenlosen Let’s Encrypt Zertifikat abgesichert. So lassen sich die Daten sicher über das Internet übertragen, ohne dass es zu Problemen und Fehlermeldungen kommt, die mit selbstsignierten Zertifikaten auftreten.
Die verschlüsselte Sicherung der Daten in der Cloud übernimmt Duplicati. Auch dieses Projekt wird erfreulicher Weise sehr aktiv weiterentwickelt.
Für das zweite Backup auf eine externe Festplatte setze ich wieder auf ein Backupskript und Rsync. Damit werden sämtliche Daten täglich gesichert, ohne dass bereits vorhandene Dateien neu übertragen und doppelt gespeichert werden. Rsnapshots, welches ich in der letzten Version der Artikelreiche verwendet habe, hat sich als unnötig kompliziert in der Konfiguration und Verwendung herausgestellt.
Die Hardware
Grundsätzlich eignet sich jeder Computer um daraus einen Homeserver/NAS zu erstellen. Wer also noch alte Hardware hat, der kann diese selbstverständlich verwenden. Mit einem externen RAID-Gehäuse lässt sich sogar ein alter Laptop sinnvoll zum Homeserver umrüsten. Einzig den Stromverbrauch sollte man im Blick behalten, wenn man seinen alten Computer umfunktionieren will. Ein alter Gaming-PC ist hier eventuell nicht gut geeignet, wenn der Homeserver 24/7 laufen soll.
Für alle die mit dem Gedanken spielen sich neue Hardware anzuschaffen, gebe ich ein paar Anregungen, welche Hardware geeignet sein kann. Die unten aufgeführte Hardware soll lediglich ein Vorschlag sein, den man an die eigenen Bedürfnisse anpassen sollte, je nachdem welche Ansprüche man an das System hat.
Alle Optionen haben eines gemeinsam, und darauf basieren auch die folgenden Schritte bei der Installation des Systems. Das Betriebssystem wird auf einem eigenen, separaten Datenträger installiert. Beispielsweise eine kleine SSD. Die wichtigen Daten wie Bilder, Videos und Dokumente werden auf einem RAID-System gespeichert. Das bedeutet, dass diese Daten immer auf zwei Festplatten gleichzeitig gespeichert werden, sodass bei einem Festplattenausfall keine Daten verloren gehen.
Die Installation des Betriebssystems auf einem separaten Datenträger erleichtert die Installation des Betriebssystems ungemein. Hierzu gehe ich bei der Installation des Betriebssystems näher ein. Die geringere Ausfallsicherheit für das Betriebssystem halte ich für vertretbar. Ist dieser Datenträger defekt, muss lediglich das Betriebssystem neu installiert werden, und veränderte Konfigurationsdateien aus einem Backup kopiert werden. Mit ein bisschen Routine kann dies in einer halben Stunde erledigt werden. Das Wiederherstellen eines defekten RAID für das Betriebssystem auf der Kommandozeile ist dagegen sehr viel komplizierter.
Option 1: Der Selbstbau PC
Ein Selbstbau-PC ist die mit Abstand flexibelste Option um sich einen eigenen Homeserver/NAS zu bauen. So kann man das System komplett an die eigenen Anforderungen anpassen. Sowohl was Leitung, als auch was Preis angeht. Aus diesem Grund ist es schwer, einen Bauvorschlag zu erstellen, der allen Anforderungen gerecht wird. Da bei mir kein Neukauf ansteht, kann ich in diesem Fall auch keine eigene und aktuelle Hardware vorschlagen.
Für den Selbstbau-PC empfehle ich daher den Bauvorschlag für den 7-Watt-Spar-Mini aus der Zeitschrift c’t Ausgabe 24/2019. Die verwendete Hardware ist sparsam und gut für einen Homeserver geeignet. In Ausgabe 25/2019 wird noch auf Probleme bei der Nutzung mit Linux hingewiesen. Diese Beschränkten sich jedoch auf die Verwendung des Display-Port Ausgangs (HDMI war kein Problem) und des optionalen WLAN-Adaptern. Außerdem wurde der USB-Bootstick nicht automatisch erkannt. Man musste zuerst das UEFI aufrufen und dort den USB-Stick als Bootmedium auswählen. Ansonsten gab es keine Probleme mit Linux. Möglicherweise sind die Probleme mit den aktuellen Linux-Versionen auch behoben.
Den vollständigen Artikel zum Bauvorschlag kann man bei Heise für 1,49 € kaufen. Das komplette Heft mit weiteren Bauvorschlägen gibt es für 5,20 €. Wer den Bauvorschlag nachbauen möchte, erfährt dort alle Details zum Selbstbau-PC.
Im genannten Bauvorschlag kommt weitestgehenduntenstehende Hardware zum Einsatz. Allerdings habe ich die Datenträger angepasst, damit sie zu dieser Anleitung passen. In das Gehäuse passen lediglich 2x 2,5″ Datenträger. Diese werden für das RAID-System verwendet. Die Schreibgeschwindigkeit der kleinen Datenträger ist in der Regel geringer, als bei großen 2,5″ Festplatten. Dafür ist der Stromverbrauch geringer. Alternativ kann man anstatt der Festplatten auch SSDs im Homeserver einbauen. Wer mehr Speicherplatz braucht und große 3,5″ Festplatten nutzen möchte, der benötigt ein größeres Gehäuse. Dann ist es sinnvoll, ein Mainboard, Netzteil und Gehäuse getrennt zu kaufen. Alternativ kann man auch auf die internen Festplatten verzichten und ein externes Festplattengehäuse über USB anschließen, wie in Option 2 beschrieben. Das Betriebssystem wird auf einer NVMe-SSD installiert, die direkt auf das Mainboard gesteckt wird.
Komponente
Modell
Preis ca.
Barebone (Gehäuse, Netzteil, Mainboard)
Asrock Deskmini A300 (90BXG3G01-A30GA0W)
138 €
Prozessor
AMD Athlon 200 GE, 2x 3,2GHz, (YD200GC6FBBOX)
47 €
RAM
Crucial S0-DIMM 8GB, DDR4-2666 (CT8G4SFS8266)
28 €
NVMe-SSD für das Betriebssystem
Kingston A2000 NVMe PCIe 250GB (SA2000M8/250G)
39 €
2,5″ Festplatten für Nutzerdaten (2x)
Western Digital RED 2,5 Zoll, 1TB
2x 77€
oder 2,5″ SSD
Western Digital RED SA500 NAS 2,5″ SATA SSD, 1TB
2x 111€
Gesamtpreis mit 2x SATA-Festplatten
406 €
Gesamtpreis mit 2x SATA-SSDs
474 €
Option 2: Mini-PC mit externem RAID-Gehäuse
Diese Variante ist für diejenigen interessant, die keine Lust auf Hardwarebasteln haben, aber trotzdem einen eigenen Homeserver aufsetzen möchten. In dieser Version wird ein beliebiger Fertig-PC mit einem externen RAID-Gehäuse kombiniert. Als PC bietet sich dabei ein Mini-PC wie beispielsweise ein Intel NUC an. Alternativ kann auch jeder vorhandene Computer verwendet werden. Beim Computer muss lediglich auf Linux-Kompatibilität geachtet werden. In den meisten Fällen ist dies jedoch nur dann ein Problem, wenn Hardware verwendet wird, die sehr neu auf dem Markt ist. Ältere Computersysteme funktionieren in der Regel problemlos mit Linux. Untenstehende Konfiguration ist ein Beispiel. Wie gesagt, grundsätzlich ist jeder (Mini-)PC geeignet.
Komponente
Modell
Preis ca.
Mini PC Barebone (Gehäuse, Netzteil, Mainboard, CPU)
Über USB wird ein externes RAID-Gehäuse angeschlossen, auf dem die Daten gespeichert werden. So profitiert man von der Datensicherheit die ein RAID bietet, spart sich jedoch die Einrichtung, Wartung und Überwachung eines Software-Raids. Beim Kauf eines RAID-Gehäuses muss das RAID-Level 1 oder höher unterstützt. Bei RAID 0 oder JBOD werden die Daten nicht auf mehrere Festplatten gespiegelt, sodass keine zusätzliche Datensicherheit entsteht.
Die von mir verwendete Icy Box IB-RD3621U3 erfüllt seit Langem problemlos ihren Dienst an einem Linux-PC. Allerdings muss ich darauf hinweisen, dass ich den eingebauten Lüfter gegen ein anderes Modell getauscht und den Luftauslass im Gehäuse vergrößert habe. Wenn große Datenmengen geschrieben wurden, wurden die Festplatten mit dem Standardlüfter so heiß, dass ein Berühren schmerzhaft war. Ich habe mir daher Sorgen um die Lebensdauer der Festplatten gemacht. Andere Modelle haben dieses Problem möglicherweise nicht.
Icy Box IB-RD3621U3
53 €
oder FANTEC Qb-X2US3R
68 €
Zusätzlich werden zwei Festplatten benötigt. Vor einiger Zeit stellte sich heraus, dass alle Festplattenhersteller (nicht nur Western Digital) das SMR (Shingled Magnetic Recording) Verfahren für ihre Festplatten verwenden. Das Verfahren ermöglicht höhere Datendichten pro Scheibe, wodurch weniger Scheiben verbaut werden müssen und somit Produktionskosten gespart werden. Der Nachteil ist, dass die Schreibgeschwindigkeit dramatisch einbricht, wenn regelmäßig größere Datenmengen geschrieben werden, da teilweise auch vorhandene Daten neu geschrieben werden müssen. Siehe u.a. [Computerbase: NAS-Festplatten: WD Red fortan nur als „Plus“ oder „Pro“ ohne SMR]. Das gesagte gilt gleichermaßen für die anderen Hersteller. Wer mit den genannten Nachteilen leben kann, der kann weiterhin die regulären günstigen NAS-Festplatten kaufen. Ich würde jedoch zu den teureren WD Pro greifen, auch wenn es mich ärgert. Denn diese Festplatten verwenden nach wie vor das klassische und teurere Aufzeichnungsverfahren.
Für ein RAID1 werden zwei Festplatten gleicher Größe benötigt.
Western Digital WD RED 4TB (SMR Verfahren)
2x 100 €
Western Digital WD RED 4TB PRO
2x 167 €
Insbesondere das externe RAID-Gehäuse kann auch mit jedem anderen Computer sinnvoll kombiniert werden. Dieses lässt sich beispielsweise auch an einen Selbstbau-PC anschließen. Die Festplatten werden dann nicht an das Mainboard des PCs angeschlossen, sondern im externen RAID-Gehäuse verbaut. Dieses wiederum wird über USB mit dem Mainboard verbunden.
Mit diesem Setup spart man sich auch beim Selbstbau-PC das Einrichten, Warten und Überwachen des Software-RAIDs. Dies übernimmt komplett das externe RAID-Gehäuse. Damit lässt sich auch ein bereits vorhandener Computer (sogar ein Raspberry Pi) zu einem vollwertigen NAS umrüsten, auf dem Daten sicher vor einem Festplattenausfall gespeichert werden können.
Preise für die komplette Setup mit Mini-PC und externem RAID-Gehäuse
Günstigste Variante
Intel NUC, Icy Box, 2x WD RED
504 €
Alternative
Intel NUC, Fantec RAID-Gehäuse, 2x WD RED Pro
653 €
Die laufenden Kosten
Neben den Anschaffungskosten sind vor allem die laufenden Kosten, also der Stromverbrauch, wichtig. Gerade der Stromverbrauch ist jedoch extrem von der verwendeten Hardware und auch von der Konfiguration abhängig. Es ist daher schwer, hier eine allgemeine Aussage zu machen.
Wer bereits vorhandene Hardware nutzen möchte, der sollte deren Stromverbrauch messen und ausrechnen, wie viel der Betrieb kostet, wenn der Homeserver 24 Stunden am Tag läuft. Hierfür eignen sich günstige Strommeßgeräte, die man zwischen die Steckdose und das Netzteil des Homeservers schaltet. Zwar sind diese Geräte nicht hundertprozentig korrekt, es genügt jedoch, um herauszufinden, in welcher Größenordnung die verursachten Kosten liegen werden.
Die Geräte haben einen weiteren Vorteil. Sie sind nicht nur günstig, sie können den Stromverbrauch auch über einen längeren Zeitraum aufzeichnen. Zeichnet man den Stromverbrauch über eine komplette Woche auf, so erhält man ein gutes Bild, wie viel Strom das eigene Setup im Durchschnitt verbraucht. Bei vielen Geräten kann man auch den eigenen Strompreis eingeben, sodass die Kosten gleich ausgerechnet werden.
Ansonsten lassen sich die Kosten auch leicht selbst ausrechnen. Bei einer Leistungsaufnahme von durchschnittlich 25 Watt und einem Strompreis von 0,3 €/kWh sieht die Rechnung folgendermaßen aus.
25 Watt x 24 Stunden x 365 Tage / 1000 x 0,3 € = 65,7 €/Jahr
25 Watt ist ein realistischer Wert für einen PC mit zwei drehenden 3,5″ Festplatten. Und dies sind die Stromkosten, wenn der Homeserver 24 Stunden am Tag mit drehenden Festplatten aktiv ist. Wer die Festplatten bei Nichtbenutzung in den Standby schickt, und auch ansonsten ein kleines und sparsames System verwendet, kann die Stromkosten deutlich reduzieren.
Berücksichtigt man noch die Anschaffungskosten scheint das relativ viel, im Vergleich zu einem Dropbox-Abo, das ca. 120 €/Jahr kostet und keine Anschaffungskosten benötigt. Allerdings kostet Dropbox 120 € pro Jahr und pro Benutzer. Mit jeder zusätzlichen Person, die den Homeserver verwendet, wird dieser finanziell attraktiver. Bei Google Drive muss man knapp 100 € pro Jahr für 2 TB Speicherplatz bezahlen. Dieser Speicherplatz kann zwar von mehreren Personen geteilt werden, trotzdem fällt der Preis pro Jahr an.
Was die laufenden kosten angeht, ist man mit einem eigenen Homeserver oder NAS also fast immer günstiger als mit einer Cloudlösung. Entscheidend sind also viel mehr die Anschaffungskosten. Je nachdem welche Anforderungen man hat und welche Hardware bereits vorhanden ist, können diese zwischen 0 € und mehren hundert Euro liegen. Wenn es keine Hardwareausfälle gibt, kann ein solches System problemlos 5-10 Jahre betrieben werden, ohne dass weitere Investitionen nötig sind.
Zuerst wird das Betriebssystem Ubuntu Server 20.04 (Focal Fossa) installiert. Mit dieser Version wurde ein neues Installationsprogramm eingeführt, sodass sich die Installation von den Vorgängerversionen unterscheidet.
Das Kapitel zur Partitionierung der Festplatten unterteilt sich in zwei Teile. Je nachdem ob man ein System mit internen Festplatten und Software-Raid verwendet, oder ob man ein externes RAID-Gehäuse nutzt, läuft die Partitionierung anders ab. Mit einem RAID-Gehäuse ist die Installation noch einfacher, da die Einrichtung des Software-Raids komplett entfällt.
Ubuntu 20.04 für Server herunterladen
Das Betriebssystem kann kostenlos heruntergeladen und verwendet werden. Ich empfehle den Download von der deutschsprachigen Seite ubuntuusers.de
Auf der Downloadseite von ubuntuusers.de wählt man die Server-Edition, die sich über den Direktlink als ISO-Datei herunterladen lässt.
ISO-Datei auf einen USB-Stick zur Installation übertragen
Das Betriebssystem wird später von einem USB-Stick auf dem Homeserver installiert. Daher muss die ISO-Datei zuerst auf einen USB-Stick übertragen werden. Allerdings kann man die Datei nicht einfach auf den Stick kopieren. Stattdessen wird ein Programm benötigt, das aus der ISO-Datei einen bootfähigen USB-Stick erstellt.
Ich empfehle hierzu das Programm Balena Etcher. Etcher ist kostenlos, Open Source und sowohl für Linux, als auch für Windows und MacOS verfügbar.
Für Linux steht das Programm als Appimage zur Verfügung. Nach dem Download erhält man eine ZIP-Datei, die man zuerst entpacken muss. Daraus erhält man eine AppImage-Datei, die man mit einem Doppelklick direkt starten kann.
Wenn das Programm nicht startet, muss man der Datei möglicherweise erlauben, als Programm ausgeführt zu werden. Unter Ubuntu oder Linux Mint klickt man dazu mit der rechten Maustaste auf die AppImage-Datei und wählt im Kontextmenü den Punkt „Eigenschaften“. Hier wechselt man zum Reiter „Zugriffsrechte“ und setzt den Haken bei „Der Datei erlauben sie als Programm auszuführen“. Anschließend sollte sich Etcher mit einem Doppelklick auf die Datei öffnen.
Das Übertragen der ISO-Datei auf den USB-Stick mit Etcher ist dann selbsterklärend. Nachdem der Kopiervorgang abgeschlossen ist, kann man den Stick entnehmen und an den Homeserver anstecken, um die Installation zu starten.
Installation von Ubuntu Server 20.04 starten
Nun kann das Betriebssystem auf dem Homeserver vom USB-Stick installiert werden. Hierzu muss der Computer vom Stick gebootet werden. Wie dies funktioniert ist leider bei jedem Computer unterschiedlich.
Häufig erkennt der Computer einen bootfähigen USB-Stick und bootet diesen automatisch.
Ansonsten wird kurz nach dem Starten im Bootscreen angezeigt, mit welcher Taste man das Bootmedium auswählen kann. Häufig ist das die Taste F11 oder F12, die beim Starten des Computers gedrückt werden muss.
Machmal muss das Bootmedium auch im Bios/UEFI eingestellt werden. Wie dieses gestartet wird, wird ebenfalls im Bootscreen angezeigt. Meistens lässt sich das Bios, bzw. UEFI mit der Entfernen-Taste (DEL) aufrufen.
Hat dies geklappt, wird man vom Ubuntu Installationsprogramm begrüßt.
Zuerst wird die Sprachauswahl gestartet. Hier wählt man die gewünschte Sprache, in diesem Fall „Deutsch„. Unter Umständen folgt nun der Hinweis, dass eine neue Version des Installationsprogramms vorliegt. Hier wählt man „Aktualisieren auf neuen Installer„. Wenn das Installationsprogramm bereits aktuell ist, kommt diese Abfrage nicht.
Im nächsten Schritt wird das Tastaturlayout und Sprache festgelegt. Mit einer normalen deutschen Tastatur wählt man hier dementsprechend sowohl bei Belegung als auch bei Variante „Deutsch“ aus.
Dann folgt die Konfiguration der Netzwerkschnittstelle. Wer sich hier unsicher ist, der lässt die Einstellungen unverändert und geht direkt auf den Button „Erledigt„. Wer eine statische IP-Adresse für seinen Server vergeben möchte und bereits weiß welche IP-Adresse frei ist, also nicht vom DHCP-Server des Routers vergeben wird, der kann hier direkt eine statische IP-Adresse vergeben. Die Konfiguration im Installer ist einfacher als die nachträgliche Konfiguration über Textdateien.
Die nun folgende Abfrage nach einem Proxy kann in einem Heimnetzwerk einfach mit dem Button „Erledigt“ übersprungen werden.
Im nächsten Schritt kann man die Server ändern, von denen das System Software und Betriebssystemupdates bezieht. Auch diesen Schritt kann man mit „Erledigt“ direkt überspringen.
Partitionierung der Datenträger
Nun folgt die Partitionierung und Formatierung der Datenträger. Dies unterscheidet sich, je nachdem ob man die klassische Variante mit eingebauten Festplatten und Software-Raid nutzt, oder ob man ein externes RAID-Gehäuse verwendet. Hier muss man dementsprechend die Option wählen, die zum eigenen Setup passt.
In dieser Anleitung wird das Betriebssystem in beiden Fällen auf einem einzelnen separaten Datenträger installiert. Beispielsweise einer kleinen, internen SSD. Die eigentlichen Daten, wie Bilder, Videos, Dokumente lagern auf einem RAID System, sodass diese Daten vor einem Festplattenausfall geschützt sind.
Die Installation des Betriebssystems auf einem separaten Datenträger vereinfacht die Einrichtung deutlich, denn in diesem Fall kann die automatische Partitionierung für die Systemfestplatte verwendet werden. Dies ist ein enormer Vorteil, da die manuelle Partitionierung der Systemplatte von System zu System unterschiedlich ist, sodass hierfür kaum eine allgemeingültige Anleitung geschrieben werden kann. Die Partitionierung unterscheidet sich, je nachdem ob das Mainboard ein UEFI, ein UEFI im Bios-Kompatibilitätsmodus oder noch ein altes BIOS besitzt. Teilweise wird nur die Einrichtung eines Master-Bootrecords (MBR) unterstützt, oder nur die GUID-Partition-Table (GPT).
Die automatische Partitionierung erkennt selbständig welche Einstellungen für die Systemplatte vorgenommen werden müssen, sodass die hier beschriebenen Schritte auf allen Systemen funktionieren sollten.
Die geringere Ausfallsicherheit für das System halte ich für vertretbar. Auf der Systemplatte liegen keine wichtigen Daten, da Videos, Dokumente, Bilder usw. sicher auf dem RAID gespeichert werden. Somit muss im Falle eines Ausfalls der Systemplatte nur die Installation des Betriebssystems wiederholt werden. Von den Konfigurationsdateien existiert hoffentlich ein Backup, sodass die Konfigurationsdateien nur kopiert werden müssen. Im Zweifel ist dies sogar schneller und einfacher als die Wiederherstellung eines defekten RAIDs auf der Kommandozeile.
Option 1: Interne Festplatten, Software RAID
Bei dieser Option wird das Betriebssystem auf einem einzelnen separaten Datenträger installiert. Zusätzlich wird ein Software-RAID aus zwei weiteren, ebenfalls internen Datenträgern eingerichtet. Die Daten auf diesem RAID werden immer auf beide Festplatten gespiegelt, sodass keine Daten verloren gehen, wenn eine Festplatte ausfällt.
Zuerst wird die automatische Partitionierung für die Systemplatte verwendet. Hierzu wählt man die Option „Eine ganze Festplatte verwenden„. Mit den Pfeiltasten navigiert man nach unten. Mit der Enter-Taste öffnet sich ein Menü, das alle vorhandenen Datenträger auflistet. Hier wählt man den Datenträger aus, auf dem das Betriebssystem installiert werden soll. Diesen Datenträger erkennt man am einfachsten an der Größe. Für das RAID werden die beiden gleich großen Festplatten verwendet. Der dritte Datenträger mit einer anderen Größe wird für das System verwendet.
Mit dem Button „Erledigt“ bestätigt man die Auswahl. Damit ist die Einrichtung der Systemplatte bereits abgeschlossen. Nun wird eine Übersicht der vorhandenen Datenträger und deren Partitionierung angezeigt.
Oben sieht man die Systemplatte, die bereits automatisch partitioniert wurde. Dies kann je nach verwendetem System anders aussehen als in unten stehendem Screenshot. Darunter sieht man die beiden nicht verwendeten Datenträger für das RAID.
Um das Software-RAID unter Ubuntu Server 20.04 zu erstellen, wählt man nun den Menüpunkt „Software-Raid (md) erstellen„.
Im folgenden Schritt kann auf Wunsch ein Name vergeben werden. Man kann jedoch auch die Vorgabe „md0“ lassen. In jedem Fall sollte man einen einfachen Namen ohne Leerzeichen verwenden.
Als RAID-Level wählt man „1 mirrored“. Damit werden alle Daten auf beiden Festplatten gespiegelt. Es sind also immer alle Daten auf beiden Festplatten vorhanden.
Unter „Geräte“ aktiviert man die beiden nicht verwendeten Festplatten und wählt anschließend „Erledigt„.
Man gelangt nun wieder zur Übersicht mit den verfügbaren Datenträgern und Partitionen. Unter „Verfügbare Geräte“ ist nun ein neuer Datenträger entstanden. Das gerade erstellte RAID-System. Im nächsten Schritt muss nun festgelegt werden, wie das System das RAID verwenden soll.
Hierzu wechselt man mit den Pfeiltasten so lange durch die Liste, bis das RAID-System (md0 neu) aktiviert ist. Mit einem Druck auf die Enter-Taste öffnet sich ein neues Menü. Hier wählt man die Option „Formatieren“ aus.
Nun öffnet sich das Fenster mit den Formatierungsoptionen. Bei Format kann man die Option „ext4“ unverändert lassen. Hierbei handelt es sich um das Standarddateisystem von Ubuntu und vielen anderen Linux-Betriebssystemen. Ext4 hat sich über viele Jahre bewährt.
Unter „Mount“ wird der Ordner angegeben, über welchen das RAID-System später in das Betriebssystem eingebunden wird. Laufwerke haben unter Linux keine Buchstaben, wie unter Windows, sondern werden als Ordner eingebunden. Hier sollte man den Mountpunkt unbedingt ändern. Dazu wählt man zuerst die Option „Andere“ und gibt anschließend einen Pfad an. In dieser Artieklreihe verwende ich /mnt/storage. Mit „Erledigt“ werden die Einstellungen übernommen.
Nun kommt man wieder zur Zusammenfassung der Dateisystemkonfiguration. Hier sollte man nun einerseits die Partitionierung der Systemplatte und das RAID-System unter /mnt/storage sehen. Ist hier alles korrekt, kann die Partitionierung mit „Erledigt“ abgeschlossen werden und die Installation des Betriebssystems fortgesetzt werden. Im folgenden Schritt muss man noch bestätigen, dass die gerade vorgenommenen Einstellungen übernommen werden sollen. Hierbei wird darauf hingewiesen, dass alle eventuell vorhandenen Daten auf den Festplatten verloren gehen. Dies bestätigt man mit „Fortfahren„.
Option 2: Externes USB RAID-Gehäuse
Auch bei dieser Option wird das Betriebssystem auf einem separaten Datenträger installiert, aus den oben genannten Gründen. Die wichtigen Daten, wie Bilder, Videos und Dokumente landen jedoch nicht auf einem intern verbauten Software-Raid, sondern auf einem externen RAID-Gehäuse, das über USB angeschlossen ist.
Dieses Setup vereinfacht die Installation und die spätere Wartung nochmals deutlich. Mit dieser Methode muss man weder ein RAID-System einrichten, noch dieses überwachen. Dies übernimmt das RAID-Gehäuse vollautomatisch. Wenn eine Festplatte ausfällt, muss man diese lediglich im Gehäuse austauschen (unbedingt Bedienungsanleitung beachten, das Vorgehen ist je nach Modell unterschiedlich). Für den Computer sieht das Ganze aus, wie eine normale USB-Festplatte.
Zuerst wird der Datenträger für das Betriebssystem eingerichtet. Hierzu wählt man die Option „Eine ganze Festplatte verwenden„. Mit den Pfeiltasten wechselt man nach unten und klappt mit der Enter-Taste die Liste mit verfügbaren Datenträgern aus. Hier wählt man die interne Festplatte, zu erkennen am Speicherplatz. Mit dem Button „Erledigt“ werden die Einstellungen übernommen.
Man kommt nun zur Übersicht aller vorhandenen Datenträger und Partitionen. Oben sieht man die automatisch erstellten Partitionen der Systemplatte. Unter „Verfügbare Geräte“ wird das externe, über USB angeschlossene, RAID-System angezeigt. Mit den Pfeiltasten wählt man dieses aus und öffnet mit der Enter-Taste die weiteren Optionen. Hier wählt man den Menüpunkt „Formatieren„.
Im folgenden Fenster wählt man unter „Format“ das Dateisystem Ext4. Hierbei handelt es sich um das Standarddateisystem von Ubuntu und vielen anderen Linux-Distributionen.
Unter „Mount“ wird der Mountpunkt für das externe RAID-System angegeben. Unter Linux bekommen Laufwerke keinen Buchstaben zugeordnet, wie unter Windows. Stattdessen werden sie als Ordner in das Dateisystem eingebunden. Dieser Ordner ist der sogenannte Mountpunkt. Hier wählt man zuerst die Option „Andere“ und vergibt dann einen eigenen Pfad. In dieser Artikelreihe verwende ich /mnt/storage. Mit dem Button „Erledigt“ werden die Einstellungen übernommen.
Nun gelangt man wieder zur Übersicht der verfügbaren Datenträger und Partitionen. Hier sind nun die automatisch erstellten Partitionen für das Betriebssystem zu sehen, sowie das externe RAID-System, das unter /mnt/storage eingebunden wird. Mit „Erledigt“ wird nun die Partitionierung und Formatierung anhand der vorgenommenen Einstellungen automatisch durchgeführt.
Im folgenden Schritt muss man noch bestätigen, dass die gerade vorgenommenen Einstellungen übernommen werden sollen. Hierbei wird darauf hingewiesen, dass alle eventuell vorhandenen Daten auf den Festplatten verloren gehen. Dies bestätigt man mit „Fortfahren„.
Fortsetzen der Installation des Betriebssystems
Die folgenden Schritte sind bei allen Hardwarekonfigurationen wieder identisch. Im folgenden Schritt wir der Account des Hauptbenutzers/Administratosr angelegt, sowie ein Name für den Server vergeben. Diese Einstellungen kann man nach Belieben vornehmen. Der Servername darf jedoch keine Leerzeichen oder Sonderzeichen enthalten.
Dann bietet das Installationsprogramm an, direkt einen SSH-Server zu installieren. Diese Option sollte man aktivieren, da der SSH-Server später zur Fernwartung ohnehin benötigt wird.
Nun kommt eine weitere Übersicht mit zusätzlich installierbarer Software. Hier wird nichts ausgewählt. Alle benötigten Programme werden später manuell installiert und konfiguriert. Daher wird der Schritt mit dem Button „Erledigt“ übersprungen.
Jetzt erfolgt die eigentliche Installation des Betriebssystems automatisch, anhand der gemachten Einstellungen. Dabei werden auch vorhandene Updates direkt heruntergeladen und installiert.
Ist die Installation abgeschlossen, erscheint der Button „Neustart„. Wenn man diesen betätigt, wird der Computer neu gestartet und das gerade installierte Betriebssystem geladen.
In den beiden vorherigen Teilen wurde die Hardware eingerichtet und das Betriebssystem installiert. Bevor es nun an das Installieren und Einrichten der eigentlichen Dienste geht, sollten noch ein paar Grundeinstellungen vorgenommen werden. Außerdem gilt es ein paar grundlegende Dinge bei der Administration zu beachten.
Gleichbleibende IP-Adresse im Router aktivieren
Damit der Zugriff über das Netzwerk auf den Server zuverlässig funktioniert, darf sich dessen IP-Adresse nicht verändern.
Normalerweise wird aus diesem Grund für Server eine statische IP-Adresse konfiguriert. Das bedeutet, dass in den Konfigurationsdateien des Servers eine bestimmte IP-Adresse fest hinterlegt wird. Dazu muss man jedoch die Netzwerkkonfiguration seines Heimnetzes genau kennen. Insbesondere muss man die IP-Range für den DHCP-Server im Router kennen. Das sind die IP-Adressen, die der Router den Geräten im Netzwerk eigenständig zuteilen darf.
Einfacher ist es, den Router so zu konfigurieren, dass er dem Homeserver immer dieselbe IP-Adresse zuteilt. Moderne Router bieten diese Option in den allermeisten Fällen an.
In der Benutzeroberfläche der FritzBox navigiert man zu Heimnetz > Netzwerk. Hier findet man eine Liste mit allen Geräten, die im Heimnetz aktiv sind oder waren. Aus dieser Liste wählt man den Homeserver aus. Dann muss nur noch der Haken bei „Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen“ gesetzt werden.
Am besten notiert man sich in diesem Schritt auch gleich die IP-Adresse, die der Router dem Homeserver zugeteilt hat.
Login auf den Server mit SSH
Die Einrichtung und die spätere Wartung und Administration nimmt man am besten über eine SSH-Verbindung vor. Auf diese Weise kann man sich sicher über das Netzwerk mit der Kommandozeile des Homeservers verbinden. Hierzu wird jedoch die IP-Adresse des Servers benötigt.
Wenn diese nicht bekannt ist, muss man die IP-Adresse zuerst herausfinden. Hierzu muss man sich wieder direkt am Homeserver einloggen.
Nach dem Login wird eine Reihe von Systeminformationen angezeigt. Hier findet man auch die IP-Adresse des Homeservers.
Alternativ kann man folgenden Befehl verwenden. Damit werden alle Adressen aller Netzwerkschnittstellen angezeigt.
ip addr
Anschließend kann man sich von jedem beliebigen Computer mit dem Homeserver via SSH verbinden.
Wenn man ein Linux-Betriebssystem oder einen Mac verwendet muss man hierzu das Terminal öffnen. Unter Windows 10 verwendet man die PowerShell. Wer noch eine ältere Version von Windows verwendet, der benötigt eine Zusatzsoftware wie Putty. Der Einfachheit halber werde ich immer von Terminal sprechen, auch wenn die PowerShell gemeint ist.
Mit folgendem Befehl wird eine Verbindung zum Homeserver hergestellt. Benutzername und IP-Adresse muss natürlich an das eigene Setup angepasst werden.
ssh benutzername@ip-adresse
z.B.
ssh nikobra@192.168.30.153
Das Betriebssystem immer aktuell halten
Software ist komplex und daher anfällig für Fehler. Das gilt ganz besonders für Betriebssysteme, da diese eben sehr komplex sind. Daher gibt es in regelmäßigen Abständen Updates, die Fehler beseitigen und Sicherheitslücken schließen. Aus diesen Gründen sollte man sein System immer aktuell halten.
Nach dem Login zeigt das System direkt an, ob Updates verfügbar sind. In diesem Fall sind 56 Updates verfügbar, von denen 27 Sicherheitsupdates sind und dementsprechend zügig eingespielt werden sollten.
Mit folgendem Befehl prüft man auf verfügbare Updates für das Betriebssystem und sämtliche andere Software, die aus den Paketquellen installiert wurde. Sind Updates verfügbar, dann werden diese direkt installiert.
sudo apt update && sudo apt upgrade
Eigentlich handelt es sich hierbei um zwei Befehle, die nacheinander ausgeführt werden und durch das „&&“ verbunden werden. Das doppelte &-Zeichen soft dafür, dass der zweite Befehl nur ausgeführt wird, wenn der erste Befehl erfolgreich ausgeführt wurde.
Das vorangestellte „sudo“ sorgt dafür, dass der Befehl mit erhöhten Rechten (Rootrechte, entspricht Administratorrechten unter Windows) ausgeführt wird. Ansonsten hat man nicht die Berechtigung Systemdateien zu verändern. Sudo darf nur von Benutzern ausgeführt werden, für die dies konfiguriert wurde. Der Account, der bei der Installation angelegt wurde, hat dieses Recht automatisch.
Apt ist der Paketmanager. Mit dem Zusatz „update“ prüft der Paketmanager, ob aktualisierte Software in den Paketquellen verfügbar ist. Der Zusatz „upgrade“ installiert die verfügbaren Updates.
Eventuell ist nach der Installation von Updates ein Neustart nötig, um die Änderungen zu übernehmen. Ein Neustart wird mit folgendem Befehl ausgeführt.
sudo reboot
Wenn man den Computer herunterfahren möchte, ohne einen Neustart auszuführen, dann wird folgender Befehl verwendet.
sudo shutdown -h now
Ubuntu 20.04. Server Systemsprache auf Deutsch umstellen
Wenn die Installation der Updates mit „Y“ für yes bestätigt werden musste, anstatt mit „J“ ja, dann steht die Systemsprache auf Englisch. Dies hat noch weitere Auswirkungen in der Bedienung, beispielsweise bei der Bedienung des Texteditors Nano. Daher sollte man die Sprache noch auf Deutsch umstellen. Dazu werden zuerst die deutschen Sprachpakete installiert.
Dann kann man die gewünschten Spracheinstellungen mit folgendem Befehl auswählen.
sudo dpkg-reconfigure locales
Im nächsten Schritt wird eine lange Liste mit Lokalisierungsoptionen angezeigt. Hier aktiviert man die Option „de_DE.UTF-8 UTF-8„, indem man mit der Leertaste ein Sternchen vor die entsprechende Zeile setzt. Wenn bei irgendeiner anderen Zeile ein Sternchen vorhanden ist, kann man dieses auf die gleiche Weise entfernen. Mit OK kommt man zum nächsten Schritt.
Wenn mehrere Lokalisierungsoptionen vorhanden sind, muss man hier die Option auswählen, die standardmäßig verwendet werden soll. Auch hier wählt man wieder die Zeile „de_DE.UTF-8 UTF-8“ und bestätigt die Auswahl mit OK.
Nach einem Neustart ist die Systemsprache auf Deutsch umgestellt. Tatsächlich sind nicht alle Elemente des Systems übersetzt. Die meisten Bedienoberflächen, wie beispielsweise beim Texteditor Nano sind nun deutsch. Vor allem aber ist das Tastaturlayout nun passend eingestellt.
Homeserver aus dem Internet erreichbar machen
Natürlich ist es praktisch, wenn man einen zentralen Netzwerkspeicher im Heimnetz hat. Wirklich uneingeschränkt nutzen lässt sich der Homeserver aber erst, wenn man ihn auch von unterwegs über das Internet erreichen kann.
Nur so kann man auch unterwegs auf seine Daten zugreifen und Kontakte und Kalender mit mehreren Geräten synchronisieren.
Leider gibt es dabei mittlerweile ein Problem. Um von außer Haus über das Internet auf den Homeserver zugreifen zu können, muss der heimische Internetanschluss über eine öffentliche IP-Adresse verfügen. Und immer weniger Internetanschlüsse bekommen eine eigene, öffentliche IPv4 Adresse von ihren Providern zugeteilt.
Glücklicherweise unterstützen alle halbwegs aktuellen Internetanschlüsse und Router IPv6 und bekommen hier ausreichend Adressen zugeteilt. Wenn also alle beteiligten Geräte IPv6 unterstützen, dann steht dem Zugriff von außerhalb des Heimnetzes nichts im Wege. Dafür muss aber sowohl der Internetanschluss zu Hause, als auch der Internetanschluss den man unterwegs verwendet IPv6 unterstützen.
Leider ist die Situation nicht so einfach. Gerade im Mobilfunknetz, das man ja unterwegs häufig verwendet um auf den Homeserver zuzugreifen, bekommt man oft nur IPv4 Adressen und auch in Hotels oder Firmennetzen ist das häufig der Fall. Damit kann man aber den Homeserver mit seiner IPv6 Adresse nicht erreichen.
Um den Zugriff über das Internet auf den Homeserver zu konfigurieren, muss man also wissen, ob der eigene Internetanschluss über eine öffentliche IPv4 Adresse verfügt.
Wenn der Internetanschluss über eine öffentliche IPv4 Adresse verfügt, dann ist der Zugriff über das Internet kein Problem. In diesem Fall kann man diesen über einen normalen DynDNS-Dienst realisieren.
Hat der Internetanschluss nur eine öffentliche IPv6-Adresse, wird es komplizierter. Damit man auch von einem Internetanschluss ohne IPv6 (Hotel, Mobilfunk) auf den Homeserver zugreifen kann, benötigt man einen Relay-Dienst, der quasi von IPv4 nach IPv6 übersetzt.
Dieser Abschnitt beinhaltet also zwei Anleitungen, je nachdem über welche Art von Internetanschluss man verfügt.
Option 1: Anschluss verfügt über öffentliche IPv4-Adresse
Häufig handelt es sich DSL-Anschlüsse.
Anschluss verfügt meistens über eine eigene, global erreichbare IPv4 und IPv6 Adresse(n).
Zugriff auf das NAS mit DynDNS-Adresse und Portfreigaben im Router problemlos möglich.
Option 2: Anschluss verfügt nicht über eine öffentliche IPv4-Adresse
Oft Dual-Stack-Lite (auch: DS-Lite, nicht verwechseln mit der Abkürzung DSL):
Anschluss verfügt nicht über eine öffentliche IPv4-Adresse
In der Regel Kabelanschlüsse (Internet über Fernsehkabel).
Anschluss verfügt lediglich über eine öffentliche IPv6-Verbindung. IPv4-Verbindungen erfolgen über eine private Adresse, die sich mehrere Anschlüsse teilen. Dabei sorgt ein Server des Internetanbieters dafür, dass jeder Anschluss die für ihn bestimmten IPv4 Pakete erhält (Carrier-Grade-NAT).
Zugriff von außen auf das Heimnetz nur über IPv6 möglich.
Eingehende IPv4-Verbindungen scheitern am Carrier-Grade-NAT.
Komfortabler Zugriff von außen nur mit erhöhtem Aufwand und Umwegen möglich.
Homeserver aus dem Internet erreichbar machen, Option 1: Mit öffentlicher IPv4 Adresse
Die wohl bekannteste Lösung um den eigenen Internetanschluss über das Internet erreichbar zu machen ist DynDNS. Ein System, dass die hinter einem Domainnamen stehende IP-Adresse bei jeder Änderung aktualisiert. Somit ist das NAS von unterwegs immer über eine leicht zu merkende Internetadresse erreichbar.
Um die Einstiegshürde so niedrig wie möglich zu halten, zeige ich die Einrichtung in diesem Artikel anhand des Anbieters No-IP.com, welcher einerseits direkt von der Fritzbox unterstützt wird und außerdem kostenlos genutzt werden kann. Natürlich kann auch jeder andere Anbieter genutzt werden.
Als Erstes muss man sich einen Account bei No-IP.com anlegen. Nach dem Login kann man einen Domainname anlegen. Hierzu geht man links im Menü auf Dynamic DNS und anschließend auf den Menüpunkt Create Hostname.
Nun kann man sich einen Hostnamen und eine Domain auswählen. Daraus setzt sich dann die Adresse zusammen, über die man den Homeserver später über das Internet erreichen kann. In diesem Beispiel ist das https://mimashome.ddns.net. Die anderen Felder können ignoriert werden bzw. müssen nicht verändert werden. Angelegt wird die Adresse mit einem Klick auf den Button “Create Hostname”.
DynDNS Dienst in der FritzBox aktivieren
Da No-IP von der Fritzbox standardmäßig unterstützt wird, ist die Konfiguration schnell erledigt. Die Einstellungen hierzu findet man in der Benutzeroberfläche der FritzBox unter Internet -> Freigaben -> DynDNS
Dort gibt man seinen gerade erstellten Domainname sowie seinen Benutzernamen und das Passwort von No-IP ein.
Mit einem Klick auf den Button “Übernehmen” meldet sich die Fritzbox bei No-IP an und informiert ab sofort den Anbieter jedes Mal, wenn sich die IP-Adresse ändert. Auf diese Weise funktioniert der Zugang zum Heimnetz über DynDNS auch dann, wenn sich die IP-Adresse am Internetanschluss ändert, was häufig einmal pro Tag der Fall ist.
Portfreigabe für den Zugriff auf den Homeserver einrichten
Grundsätzlich ist das Heimnetzwerk nun über das Internet erreichbar. Versucht man allerdings über die oben vergebene Adresse auf das Heimnetz zuzugreifen, dann scheitert der Zugang jedoch am Router, in diesem Beispiel an der Fritzbox, die standardmäßig alle Zugriffe auf das Heimnetz blockt. Damit man von unterwegs auf den Homeserver zugreifen kann, muss eine Portfreigabe eingerichtet werden. Auf der Fritzbox findet man die Einstellungen hierzu unter Internet -> Freigaben -> Portfreigaben. Dort wählt man dann den Button “Gerät für Freigabe hinzufügen”
Im Dropdown-Menü sollte bereits der Homeserver mit dem Namen Mimas vorhanden sein. Fall das Gerät fehlt, sollte man den Homeserver einmal neu starten. Nachdem der Rechner gestartet ist muss die Konfigurationsoberfläche im Browser neu geladen werden. Dann sollte das Gerät in der Liste erscheinen.
Im unteren Bereich muss zum Erstellen einer Portfreigabe noch der Button “Neue Freigabe” geklickt werden. Im nächsten Fenster wird als Anwendung “HTTPS-Server” ausgewählt, wodurch alle weiteren Felder automatisch ausgefüllt werden. Falls man einen Router besitzt, der das automatische Ausfüllen nicht anbietet, muss als Portnummer sowohl für interne als auch externe Ports die Nummer 443 und als Protokoll TCP angegeben werden. Mit einem Klick auf “OK” wird der Homeserver wirklich über das Internet erreichbar gemacht.
Diesen Schritt muss man für die Portnummern 80 sowie 32400 wiederholen. Port 80 wird für unverschlüsselte http-Verbindungen benötigt. Außerdem wird der Port verwendet, um das Let’s Encrypt Zertifikat für die verschlüsselte https-Verbindung auszustellen. Port 32400 ist der Standardport von Plex für das Streaming von Musik und Videos. Für die Freigabe des Ports 32400 wird im Menü bei Anwendung „Andere Anwendung“ ausgewählt, damit kann man eine beliebige Portnummer freigeben.
Nach dem Speichern der angelegten Freigaben sieht die Übersicht in der Fritzbox folgendermaßen aus:
Es wurde also eine Freigabe, bzw. Portweiterleitung für folgende Ports eingerichtet.
80
443
32400
Homeserver aus dem Internet erreichbar machen, Option 2: Ohne öffentliche IPv4 Adresse
An einem DS-Lite Internetzugang, bzw. jedem Internetzugang ohne öffentliche IPv4-Adresse hat man mit folgenden Schwierigkeiten zu kämpfen.
Der Internetzugang hat keine öffentliche IPv4 Adresse. Damit ist von außen keine Verbindung zum Heimnetz via IPv4 möglich.
Gerade im Mobilfunknetz bekommt man häufig nur eine IPv4 Adresse und keine IPv6-Adresse. In der Praxis bedeutet das, dass man mit dem Smartphone nicht auf das Heimnetz zugreifen kann.
Der Internetzugang verfügt jedoch über eine öffentliche IPv6 Adresse. Ein Zugang ist somit über IPv6 möglich.
Jedes Gerät im Heimnetz hat seine eigene öffentliche IPv6 Adresse (nicht nur eine einzige für den Router, wie bei IPv4).
Klassisches DynDNS im Router und Portfreigaben funktionieren nicht, da man über die DynDNS-Adresse nur auf den Router zugreifen könnte, da dessen Adresse im DynDNS-System hinterlegt ist. Diese Situation könnte man u. a. dadurch lösen, dass man auf dem Homeserver/NAS einen DynDNS-Client laufen lässt und nicht die Funktion im Router nutzt.
Hierfür kann man eine Software wie ddclient auf dem Homeserver verwenden, um bei der DynDNS-Adresse die IPv6 Adresse zu aktualisieren. Wer dies umsetzen möchte, findet hierzu eine hilfreiche Beispielkonfiguration im Wiki von Ubuntuusers unter https://wiki.ubuntuusers.de/DDNS-Clients/
Relativ elegant lassen sich all die genannten Probleme lösen, wenn man über einen Relay-Server auf das Heimnetz zugreift. Das bedeutet, dass man sich von unterwegs nicht direkt mit dem Homeserver im Heimnetz, sondern mit einem Server im Internet verbindet. Dieser Server ist sowohl via IPv4, als auch via IPv6 erreichbar und baut wiederum via IPv6 eine Verbindung zum eigenen Internetanschluss und dem Homeserver auf. Er dient damit als eine Art Zwischenstation und Übersetzer von IPv6 auf IPv4.
Der Vorteil dieser Lösung ist, dass man nun wieder aus allen Netzen von unterwegs auf das Heimnetz zugreifen kann. Dabei ist es egal, ob die Endgeräte über eine IPv4 oder eine IPv6 Adresse verfügen.
Allerdings hat die Lösung auch Nachteile. So wird der gesamte Datenverkehr zwischen den Geräten außerhalb des Heimnetzes (Smartphone, Laptop etc.) und dem Homeserver im Heimnetz über den Relay-Server umgeleitet. Dies kann sich negativ auf Paketlaufzeit und die Geschwindigkeit auswirken. Wenn der Traffic unverschlüsselt ist (also nicht über https), dann hat der Anbieter des Relay-Servers die Möglichkeit den Internetverkehr mitzulesen. Nicht nur aus diesem Grund sollte man Daten über das Internet nur verschlüsselt übertragen. Da für den Anbieter des Relay-Servers ggf. große Datenmengen entstehen, ist ein solcher Dienst in der Regel kostenpflichtig. Es gibt auch kostenlose Dienste, deren Performance aber entsprechend gering ist.
Die Einrichtung eines solchen Dienstes unterscheidet sich sehr stark, je nachdem welchen Anbieter und welchen Router man verwendet. Es ist daher kaum möglich, eine Anleitung zu schreiben, die für jeden funktioniert. Als Beispiel wird in dieser Anleitung die Einrichtung mit einer Fritzbox, dem MyFritz-Dienst als DynDNS-Service und feste-ip.net als Betreiber des Relay-Servers beschrieben. Dieses Setup ist relativ einfach und kostengünstig einzurichten. Außerdem ist die Fritzbox weit verbreitet.
MyFritz!-Konto einrichten
Zuerst wird ein kostenloses MyFritz-Konto eingerichtet und mit der Fritzbox verbunden. Je nach Anbieter ändern sich leider auch die IPv6-Adressen, die man vom Internetanbieter erhält, sodass man nach wie vor einen DynDNS-Anbieter benötigt. Die Verwendung von MyFritz hat den Vorteil, dass der Dienst automatisch eine Subdomain für alle Computer im Heimnetz anlegt, für die Freigaben ins Internet eingerichtet wurden. Damit wird kein eigener DynDNS-Client auf dem Homeserver benötigt, was das Setup noch komplexer machen würde, als es ohnehin ist.
Als Erstes loggt man sich in der Benutzeroberfläche der Fritzbox ein
Dort klickt man auf “Internet”.
Im Menü „Internet“ wählt man „MyFRITZ!-Konto„.
In das Eingabefeld “Ihre E-Mail-Adresse” muss man eine gültige E-Mail-Adresse eintragen.
Mit einem Klick auf den Button “Weiter” sendet MyFRITZ! eine E-Mail mit dem Bestätigungslink an die eingegebene Adresse.
In der E-Mail muss man auf die Schaltfläche „Ihre FRITZ!Box registrieren“ klicken. Damit wird man auf die MyFRITZ!-Internetseite weitergeleitet. Dort klickt man auf den Link „MyFRITZ!-Konto einrichten„.
Hier vergibt man über die Eingabefeldern „Kennwort“ und „Kennwort bestätigen“ ein eigenes Passwort. Dieses wird benötigt, um sich künftig auf myfritz.net anzumelden.
Mit einem Klick auf den Button „Vorgang abschließen“, ist die Anmeldung bei MyFritz beendet.
Internetzugriff zum Homeserver über MyFritz! einrichten
Nun wird der Zugriff zum Homeserver konfiguriert. Auch dies geschieht über die Benutzeroberfläche der FritzBox.
In der Benutzeroberfläche der Fritzbox klickt man auf den Menüpunkt “Internet” und anschließend auf “Freigaben”.
Hier wählt man den Reiter “Portfreigaben”.
Dann klickt man den Button “Gerät für Freigaben hinzufügen”.
Im Dropdown-Menü “Gerät” wählt man den Homeserver aus, in diesem Beispiel hat er den Namen Mimas.
Wichtig ist, dass man an dieser Stelle darauf achtet, dass die IPv6 Interface-ID die in der Fritzbox angezeigt wird, und die tatsächliche Interface-ID des Homeservers übereinstimmen. Andernfalls funktioniert der Zugang nicht. Um dies zu prüfen, loggt man sich auf dem Homeserver ein und gibt folgenden Befehl in das Terminal ein.
ip -6 addr
Damit werden alle IPv6 Adressen aufgelistet, die dem Homeserver zugeordnet sind. Aus dieser Liste sucht man sich die IPv6-Adresse aus, die NICHT mit fd00 oder fe80 beginnt. Die letzten vier Blöcke der Adresse müssen mit der Interface-ID in der Fritzbox übereinstimmen. Ist dies nicht der Fall, muss man den Eintrag in der Fritzbox manuell anpassen.
Zum Erstellen der Freigabe klickt man jetzt auf den Button “Neue Freigabe”.
Dort wählt man die Option “MyFRITZ!-Freigabe”.
Im Menü “Anwendung” wählt man HTTP-Server aus.
Die anderen Felder müssen nicht ausgefüllt werden. Mit einem Klick auf “OK” wird die Freigabe eingerichtet.
Diesen Vorgang wiederholt man nun und wählt im Menü “Anwendung” HTTPS-Server aus.
Anschließend erstellt man noch eine Freigabe für den Port 32400.
Mit einem Klick auf “OK” werden die Freigaben erstellt.
Achtung: Port 32400 fehlt im Screenshot. Muss aber ebenfalls angelegt werden, wenn man Plex über das Internet verwenden will. Wenn man nur Nextcloud verwendet, reichen die Ports 80 und 443.
Jetzt wird noch die individuelle MyFRITZ-Adresse benötigt, die mit der Freigabe automatisch für den Homeserver erstellt wurde. Diese kann man sich anzeigen lassen, wenn man die Option zum Bearbeiten der Freigabe aufruft.
Hierzu klickt man auf das Stift-Icon auf der rechten Seite
Im folgenden Fenster klickt man wieder auf das Stift-Icon neben einer beliebigen Freigabe.
Im Feld “MyFRITZ!-Adresse” sieht man nun die individuelle MyFritz-Adresse für den Homeserver, gefolgt von der Portnummer nach dem Doppelpunkt.
Der Teil nach dem http:// und vor dem :80 wird im nächsten Schritt zum Einrichten des Relay-Servers benötigt.
Portmapper von Feste-IP.Net als Relayserver einrichten
Um das Problem mit der fehlenden öffentlichen IPv4-Adresse zu lösen, muss nun noch ein Relayserver eingerichtet werden. Beim Anbieter Feste-IP.Net sind diese unter den Produktnamen Portmapper erhältlich. Da der Betrieb der Server Geld kostet, ist das Angebot zwar nicht kostenlos, je nach Produktvariante aber sehr kostengünstig.
Man muss zwei Produkte unterscheiden, den universellen Portmaper von Feste-IP.Net und den dedizierten Portmapper.
Der universelle Portmapper teilt sich eine IPv4 Adresse mit anderen Nutzern auf demselben Server. Diese Version ist für knapp 4 € pro JAHR zu bekommen. Allerdings bekommt man hier keine Standardports, da diese pro IP-Adresse nur einmal verfügbar und dementsprechend knapp sind. Dies bedeutet, dass man beim Aufrufen seiner Internetadresse immer die Portnummer angeben muss. So kann man beispielsweise seine Nextcloud auf dem Homeserver nicht mit einer Adresse wie https://mymxtcloud.feste-ip.net aufrufen. Stattdessen muss man beispielsweise https://mymxtcloud.feste-ip.net:56083 verwenden.
Beim dedizierten Portmapper bekommt man eine eigene IPv4 Adresse. Damit kann man Standardports verwenden und sein NAS ohne angehängte Portfreigabe aufrufen. Hierfür werden zusätzlich 3,50 € pro Monat fällig.
In diesem Beispiel wird der universelle Portmapper verwendet. Bei der Anmeldung bei Feste-IP.Net erhält man 50 Credits Startguthaben, um das Angebot zu testen. Dies reicht, um den universelle Portmapper 50 Tage kostenlos zu testen.
Nach der Anmeldung bei Feste-IP.Net klickt man auf der Webseite auf den Button “Mein Account”
Hier wählt man in der Seitenleiste die Option “Universelle Portmapper”.
Als Mapping-Server wählt man einen beliebigen Server in seiner Nähe. Dies verringert die Paketlaufzeiten.
Der Alias ist die DynDNS-Adresse, über die man später den Homeserver aus dem Internet erreichen möchte.
Bei “DNS oder IPv6 Ziel” gibt man die MyFRITZ-Adresse des Homeservers ohne http:// und ohne Portnummer ein. Beispielsweise: mimas.lasdgoetnvklvwph.myfritz.net
Bei Ports gibt man die Ports an, über die man seinen Homeserver zugreifen möchte. Also “80” und “443” ein
Im Menü “1:1 Portmapper” wählt man “1x 1:1 Portmapper erstellen”
Über den Button “System eintragen und Portmapings erstellen” wird der Portmapper angelegt.
Achtung: Port 32400 fehlt im Screenshot. Muss aber ebenfalls angelegt werden, wenn man Plex über das Internet verwenden will. Wenn man nur Nextcloud verwendet, reichen die Ports 80 und 443.
In der Übersicht werden jetzt die Portnummern angezeigt, die man vom universellen Portmapper zugeteilt bekommen hat. In diesem Beispiel würde man den Homeserver über eine unverschlüsselte HTTP-Verbindung nun über http://mynxtcloud.feste-ip.net:10623 erreichen. Für eine verschlüsselte HTTPS-Verbindung müsste man https://mynxtcloud.feste-ip.net:10725 verwenden. Verwendet man den dedizierten Portmapper, ist keine Angabe von Portnummern nach der Domain nötig.
Die Verbindung zum Homeserver im Heimnetz funktioniert über diese Adressen aus dem Internet sowohl via IPv4 als auch via IPv6.
Das Betriebssystem wurde in den letzten Teilen installiert und die wichtigsten Grundkonfigurationen vorgenommen. Nun können die ersten Dienste auf dem Homeserver installiert werden.
In diesem Teil werden die Ordnerfreigaben für das lokale Heimnetz erstellt. Die Software, die hierfür verwendet wird, ist SAMBA-Server. Damit können über das SMB/CIFS-Protokoll Freigaben im lokalen Netz erstellt werden. Diese Art der Freigaben wird von allen Betriebssystemen wie Windows, MacOS, Linux usw. unterstützt. Die Freigaben können beispielsweise in Windows als Netzlaufwerk eingebunden werden, sodass man bequem auf alle Dateien auf dem Homeserver zugreifen kann. Auch mit Software wie dem Mediacenter Kodi kann man direkt und ohne Umwege über diese Freigaben auf Filme, Videos und Bilder zugreifen. Ein weiterer Vorteil ist, dass die Datenübertragung mit dem SMB/CIFS-Protokoll sehr schnell ist, sodass auch große Dateimengen im lokalen Netzwerk schnell auf den Homeserver übertragen werden können.
Aus Sicherheitsgründen ist der Zugriff auf diese Freigaben auf das Heimnetz beschränkt, d.h. es werden keine Freigaben im Router erstellt, über die man aus dem Internet zugreifen könnte. Die Datenübertragung über das Internet sollte ausschließlich verschlüsselt erfolgen. SMB ist jedoch unter Umständen unverschlüsselt.
Der Zugriff über das Internet wird im folgenden Teil konfiguriert. Hierfür wird eine sichere, verschlüsselte Verbindung über Nextcloud verwendet.
In diesem Beispiel werden vier Benutzer angelegt.
Tom: Der Name ist willkürlich gewählt. Hier wird eine private Freigabe für das Familienmitglied Tom erstellt, auf welche nur dieser User Zugriff hat. Lena: Ebenfalls ein willkürlich gewählter Name für ein weiteres Familienmitglied. Media: Ein spezieller Benutzername für den Zugriff auf Bilder, Videos usw. mit einem Mediaplayer wie Kodi. smb: Ein Benutzername, der nur vom System verwendet wird, um Dateien zu schreiben. Damit werden Probleme mit den Dateiberechtigungen vermieden, da ansonsten eine von Tom erstellte Datei nicht von Lucy geändert werden könnte. Man könnte stattdessen auch jeden anderen Benutzer (z.B. Tom) verwenden. Ich erstelle der Verständlichkeit halber einen eigenen Benutzer.
Anschließend werden vier Freigaben erstellt.
Tom: Eine private Freigabe, auf die nur Tom zugreifen kann. Lena: Eine private Freigabe, auf die nur Lena zugreifen kann. Familie: Auf diese Freigabe haben Tom und Lena Zugriff. Media: Eine Freigabe für Videos und Bilder. Tom und Lena haben Lese- und Schreibzugriff. Der User media kann jedoch nur Dateien lesen und nichts verändern.
Achtung: Der Administrator des Homeservers hat immer vollständigen Zugriff auf alle Daten auf der Festplatte. Das bedeutet, die Passwörter schützen lediglich vor unbefugtem Zugriff über das Netzwerk. Das sollte man allen Familienmitgliedern auch so kommunizieren. Vor unbefugtem Zugriff durch den Administrator auf private Daten schützt nur eine Verschlüsselung der Dateien. Das gilt übrigens auch für die großen Clouds wie Google Drive, Dropbox, Onedrive usw.
Installation des Sambaservers und Anlegen der Benutzer
Im ersten Schritt wird der Samba-Server installiert. Dies geschieht mit folgendem Befehl.
sudo apt install -y samba samba-common
Dann werden die Systembenutzer im Betriebssystem angelegt. Diese Benutzer werden nur vom System dazu verwendet, auf Samba-Freigaben zuzugreifen. Daher wird kein Homeverzeichnis angelegt und der Login direkt am System deaktiviert. Die Abfragen von Name, Zimmer usw. können einfach mit Enter übersprungen werden.
sudo adduser --no-create-home --disabled-login --shell /bin/false tom
sudo adduser --no-create-home --disabled-login --shell /bin/false lena
sudo adduser --no-create-home --disabled-login --shell /bin/false media
sudo adduser --no-create-home --disabled-login --shell /bin/false smb
Im folgenden Schritt werden die Passwörter vergeben, mit denen die Freigaben geschützt werden.
sudo smbpasswd -a tom
sudo smbpasswd -a lena
sudo smbpasswd -a media
Übrigens: Wenn man die Passwörter später ändern möchte, dann kann der Befehl einfach erneut ausgeführt werden.
Anlegen der Ordner
Nun werden die Ordner angelegt, in denen die Daten gespeichert werden, die man auf den Homeserver überträgt. Da das RAID-System für die Daten unter /mnt/storage eingebunden wurde, müssen alle Order als Unterordner von mnt/storage/ angelegt werden. Ansonsten würden die Daten auf der Systemplatte landen und wären nicht durch das RAID geschützt.
Die Freigaben werden über die Konfigurationsdatei /etc/samba/smb.conf konfiguriert. Die Datei kann mit jedem Texteditor bearbeitet werden. Mit dem folgenden Befehl wird die Konfigurationsdatei mit dem Texteditor Nano geöffnet, da dieser einsteigerfreundlich und leicht zu bedienen ist.
sudo nano /etc/samba/smb.conf
In der Datei scrollt man mit der Pfeil-nach-unten Taste ganz ans Ende. Dort werden folgende Zeilen eingefügt, um die Freigaben zu erstellen.
[Tom]
comment = Tom
path = /mnt/storage/shares/tom
write list = tom
valid users = tom
force user = smb
[Lena]
comment = Lena
path = /mnt/storage/shares/lena
write list = lena
valid users = lena
force user = smb
[Familie]
comment = Familie
path = /mnt/storage/shares/familie
write list = tom,lena
valid users = tom,lena
force user = smb
[Media]
comment = media
path = /mnt/storage/shares/media
write list = tom,lena
valid users = tom,lena,media
force user = smb
Damit der Zugriff auch mit Windows 10 funktioniert, muss noch eine Zeile in der Konfigurationsdatei geändert werden. Und zwar muss die Zeile „map to guest = bad user“ zu „map to guest = never“ geändert werden.
Wenn man diese Zeile nicht ändert, bekommt man beim Zugriffsversuch mit Windows 10 eine Fehlermeldung wie: „Auf 192.168.30.119 kann nicht zugegriffen werden. Vergewissern Sie sich, dass der Name richtig geschrieben wurde. Möglicherweise besteht ein Netzwerkfehler. Klicken Sie auf Diagnose“.
map to guest = bad user
map to guest = never
Mit den Tastenkombinationen Strg+o wird die Datei gespeichert. Mit Strx+x wird der Editor wieder beendet.
Die Angabe in den eckigen Klammern ist der Name der Freigabe, mit der diese im Netzwerk sichtbar ist. Der Kommentar ist ein beliebiges Wort oder Satz, der die Freigabe beschreibt. Hinter „path“ wird der Pfad im Dateisystem angegeben, wo die Daten für diese Freigabe gespeichert werden. Write list ist eine Liste mit allen Benutzernamen, die über das Netzwerk auf dieser Freigabe Dateien verändern dürfen. Dazu gehört auch das Erstellen und Löschen von Dateien und Ordnern. Valid users ist eine Liste mit Benutzernamen, die auf die Freigabe zugreifen können. Ist ein Benutzername in der Liste „valid users“, nicht jedoch in der Liste „write list“, dann darf der Benutzer zwar auf die Freigabe zugreifen und Dateien lesen, nicht jedoch verändern. Force user gibt den Benutzername an, mit dem Samba die Daten auf die Festplatte schreibt. So wird sichergestellt, dass alle Daten mit demselben Benutzernamen geschrieben werden. Fehlt die Angabe, wird der Benutzer verwendet, der auf die Freigabe zugreift, also Tom, Lena etc.
Damit die Änderungen aktiv werden, muss der Samba-Server einmal neu gestartet werden.
sudo systemctl restart smbd.service
Schnellzugriff auf Freigaben mit Windows 10
Für Tests, oder wenn man nur gelegentlich auf eine Freigabe zugreifen will, lohnt es sich nicht, diese dauerhaft als Netzlaufwerk einzubinden. Die schnellste und einfachste Möglichkeit mit Windows 10 auf die Freigaben des Homeservers zuzugreifen ist, die IP-Adresse des Homeservers in die Adressleiste des Explorers einzugeben. Und zwar in folgender Form: \\192.168.30.153
Nach der Passworteingabe werden alle Freigaben die unter dieser Adresse zu finden sind im Windows-Explorer angezeigt.
Freigaben unter Windows 10 dauerhaft als Netzlaufwerk einbinden
Wenn man häufig über die Freigaben auf den Homeserver zugreift, ist der Schnellzugriff unpraktisch und unbequem. In diesen Fall ist es sinnvoller die Freigaben dauerhaft als Netzlaufwerk im Windows Explorer einzubinden.
Zur Einrichtung des Netzlaufwerks öffnet man den Explorer und macht einen Rechtsklick auf das Dieser-PC-Icon. Dann klickt man auf Netzlaufwerk verbinden.
Im Feld „Ordner“ gibt man die Netzwerkadresse der Freigabe ein. Beispielsweise \\192.168.30.153\Media.
Mit einem Klick auf „Fertig stellen“ wird ein neues Laufwerk im Windows-Explorer erstellt, das jedoch tatsächlich den Inhalt der Freigabe auf dem Homeserver zeigt.
Schnellzugriff auf die Freigaben mit Ubuntu Desktop
Auch unter Ubuntu ist ein einfacher Schnellzugriff auf die Freigaben möglich. Dies ist besonders geeignet, wenn die Freigaben nicht dauerhaft verfügbar sein müssen, z.B. für einen Gast. Für den schnellen Zugriff öffnet man Dateien und wählt in der linken Menüleiste Andere Orte. Im unteren Bereich gibt es das Feld mit Server verbinden. Hier gibt man die Adresse des Homeservers ein, in der Form smb://192.168.30.153.
Mit einem Klick auf Verbinden werden alle unter dieser Adresse gefundenen Freigaben angezeigt.
Dauerhaftes Einbinden der Freigaben auf einem Ubuntu Desktop-System
Bei allen selbst genutzten Computern ist es praktischer, die Freigaben dauerhaft zu mounten, damit man immer ein bequemer Zugriff auf den Homeserver möglich ist. Dies ist ein bisschen aufwändiger als unter Windows, dafür sind die Freigaben anschließend nahtlos in das Dateisystem eingebunden und können genau wie lokale Ordner auf der Festplatte genutzt werden.
Damit Ubuntu Sambafreigaben beim Start mounten kann, muss das Paket cifs-utils installiert werden.
sudo apt install cifs-utils
Anschließend werden die Ordner auf der lokalen Festplatte angelegt, in denen die Freigaben unseres Homeservers später zu finden sein werden. In diesem Fall wird ein Ordner namens Homeserver erstellt und unterhalb, je ein Ordner für die Freigaben.
mkdir -p ~/Homeserver/{Tom,Media,Familie}
Damit die Zugangsdaten nicht nach jedem Neustart neu eingegeben werden müssen, werden diese in einer Datei abgelegt, auf welche nur der Rootuser Zugriff hat. Zuerst wird die Datei erstellt und anschließend mit dem Texteditor geöffnet
in diese Datei kommen Benutzername und Passwort in folgender Form.
username=tom
password=MEINPASSWORT
Die Datei wird mit Strg+o gespeichert und mit Strg+x wird der Texteditor wieder geschlossen. Aus Sicherheitsgründen werden nun die Lese und Schreibrechte zu dieser Datei so angepasst, dass nur der Rootuser Zugriff darauf hat.
Damit Ubuntu die Freigaben kennt müssen diese in die Datei /etc/fstab eingetragen werden. Die Datei wird wieder mit dem Texteditor geöffnet und folgender Text am Ende der Datei eingefügt.
Es muss darauf geachtet werden, dass jeder Eintrag in einer langen Zeile eingetragen wird. Also dass jede Zeile mit //192.168.30….. beginnt.
MEINUSERNAME muss durch den eigenen Benutzernamen ersetzt werden, mit welchem man sich an seinem Laptop oder Desktop angemeldet hat. Bei UID und GID muss es sich um die IDs des eigenen Benutzers handeln. Bei einer Standardinstallation mit nur einem Benutzer ist dies 1000 und muss dementsprechend nicht angepasst werden. Wenn aber mehrere Benutzer einen Computer nutzen, haben diese unterschiedliche IDs. Welche das ist lässt sich im Terminal mit dem einfachen Befehl id herausfinden.
Nach einem Neustart sollten die Freigaben unseres Homeservers nun im lokalen Dateisystem eingebunden sein, ganz so als würden sie auf der lokalen Festplatte liegen. Wer ungeduldig ist, oder den Rechner nicht neu starten möchte, kann das Einbinden der Freigaben auch manuell erledigen mit dem Befehl.
Nextcloud hat sich mittlerweile zum Quasi-Standard für selbstgehostete Cloudanwendungen entwickelt. Nextcloud kann uneingeschränkt kostenlos genutzt werden.
In Nextcloud können Kalender und Kontakte gespeichert und mit dem Smartphone synchronisiert werden. So kann man Dienste wie Google Calender komplett ersetzen. Außerdem gibt es einen Deskop-Client, mit welchem man Dateien über mehrere Computer synchronisieren kann, ganz so, wie man es beispielsweise von Dropbox kennt. Eine offizielle Smartphone-App für Android und iOS ermöglicht es, auch von unterwegs sicher auf alle seine Daten zuzugreifen. Außerdem unterstützt die App den automatischen Bilderupload, sodass Fotos, die mit dem Smartphone gemacht werden automatisch auf den Homeserver übertragen werden.
Nextcloud ist mittlerweile als Snap-Paket für Ubuntu verfügbar, was die Installation und Einrichtung extrem vereinfacht. Wer die volle Kontrolle haben möchte, kann weiterhin den Weg der manuellen Installation und Konfiguration gehen, wie er in der alten Anleitung für Ubuntu 18.04. beschrieben ist [Homeserver/NAS mit Ubuntu 18.04: Teil 5, Nextcloud]. Dieser Weg funktioniert auch unter Ubuntu 20.04.
Da diese Anleitung bewusst möglichst einsteigerfreundlich sein soll, wird Nextcloud als Snap-Paket installiert. Damit reduziert sich die Installation auf einige wenige Kommandos und Nextcloud ist direkt einsatzbereit und fertig konfiguriert.
Nextcloud als Snap-Paket installieren
Mit folgendem Befehl wird Nextcloud installiert.
sudo snap install nextcloud
Die Installation von Nextcloud ist damit abgeschlossen. Die Benutzeroberfläche kann über die IP-Adresse des Homeservers bereits von jedem Computer im Heimnetz aufgerufen werden. In diesem Beispiel über http://192.168.30.153.
Allerdings sollte man Nextcloud noch nicht einsetzen, sondern zuerst weitere Konfigurationen vornehmen.
Übrigens: Die Nextcloud-Installation aus dem Snap-Paket befindet sich unter /var/snap/nextcloud/current.
Nextcloud konfigurieren
Bevor man Nextcloud im Browser aufrufen und verwenden kann, müssen ein paar zusätzliche Konfigurationen vorgenommen werden.
Datenverzeichnis von Nextcloud auf das RAID verschieben
Wenn wir nun anfangen Nextcloud zu verwenden, werden alle Daten auf der Systemplatte gespeichert. Dies ist natürlich nicht gewollt, da die Daten bei einem Festplattenausfall verloren wären. Stattdessen muss Nextcloud nun vor der ersten Nutzung so konfiguriert werden, dass das Datenverzeichnis auf dem RAID gespeichert wird.
Snaps werden in einer gesicherten Umgebung ausgeführt und dürfen aus Sicherheitsgründen nur auf bestimmte Verzeichnisse zugreifen. Sie können jedoch so konfiguriert werden, dass sie auch auf Daten in /media und /mnt zugreifen können, da hier normalerweise Wechseldatenträger eingebunden werden. Damit Nextcloud überhaupt auf das RAID-System unter /mnt/storage Zugriff bekommt, muss folgender Befehl ausgeführt werden. Zugriff auf alle anderen Order auf der Festplatte wird weiterhin vom System verhindert.
sudo snap connect nextcloud:removable-media
Zuerst wird das Datenverzeichnis auf dem RAID angelegt und die korrekten Benutzerrechte gesetzt.
Jetzt wird der PHP-Service neu gestartet, damit Nextcloud die geänderten Daten übernimmt.
sudo snap restart nextcloud.php-fpm
Nextcloud verwenden
Die eigene Nextcloud auf dem Homeserver kann nun von jedem beliebigen Browser aufgerufen werden, indem man http:// gefolgt von der IP-Adresse des Homeservers im Browser eingibt. Beispielsweise http://192.168.30.153.
Zuerst wird man aufgefordert einen Administratoraccount für Nextcloud einzurichten. Hier kann ein beliebiger Benutzername und Passwort vergeben werden. Außerdem bietet Nextcloud an, beliebte Apps und Zusatzfunktionen wie Kalender und Kontakte gleich automatisch mitzuinstallieren. Ich empfehle, diesen Haken zu setzen. Stellt sich heraus, dass man manche Funktionen nicht benötigt, können die dazugehörigen Apps später mit einem Klick wieder deinstalliert werden.
Nachdem die Installation abgeschlossen ist, kann Nextcloud grundsätzlich bereits genutzt werden. Allerdings ist der Aufruf bisher nur über eine unverschlüsselte Verbindung möglich. Dadurch ist eine sichere Nutzung über das Internet natürlich nicht möglich. Aus diesem Grund wird als Nächstes die Verschlüsselung eingerichtet.
Vertrauenswürdige Domain hinzufügen
Damit Nextcloud sowohl über die IP-Adresse, als auch über die in der Grundkonfiguration festgelegte DynDNS-Domain aufgerufen werden kann, muss diese noch als vertrauenswürdige Domain zu Nextcloud hinzugefügt werden. Dies geschieht mit folgendem Befehl, wobei der Domainname natürlich an das eigene Setup angepasst werden muss.
sudo snap run nextcloud.occ config:system:set trusted_domains 1 --value=mimashome.ddns.net
Verschlüsselungszertifikat erstellen
Um problemlos eine verschlüsselte Verbindung über das Internet zu ermöglichen, wird ein kostenloses Verschlüsselungszertifikat von Let’s Encrypt eingerichtet. Auch dies ist mit dem Snap-Paket mit einem Befehl erledigt.
Achtung: Bei diesem Schritt überprüft ein externer Server von Let’s Encrypt, ob die Nextcloud Installation auch wirklich über die angegebene Domain erreichbar ist. Nur wenn dies der Fall ist, wird das Verschlüsselungszertifikat ausgestellt. Der Homeserver muss also unbedingt über Port 80 und 443 aus dem Internet erreichbar sein, wie in der Grundkonfiguration beschrieben.
Im ersten Schritt weist das Tool nochmal auf die genannten Voraussetzungen hin. Außerdem wird auf die Nutzungsbedingungen von Let’s Encrypt hingewiesen, die man akzeptieren muss, wenn man das Zertifikat erstellen und nutzen möchte.
Wenn alle Voraussetzungen erfüllt sind und man die Bedingungen akzeptiert, bestätigt man dies, indem man „y“ eingibt und Enter drückt.
Anschließend wird man nach einer E-Mail-Adresse gefragt. An diese Adresse wird z.B. ein Hinweis gesendet, wenn das Zertifikat abläuft, weil die automatische Erneuerung nicht funktioniert hat.
Nun muss der Domainname eingegeben werden, für den das Zertifikat erzeugt werden soll. In diesem Fall also die DynDNS-Adresse.
Damit sind alle benötigten Eingaben gemacht. Mit der Entertaste werden die Eingaben bestätigt, anschließend versucht Let’s Encrypt über die angegebene Internetadresse eine Verbindung zum Homeserver aufzubauen, um sicherzustellen, dass man auch wirklich über die Rechte an der Domain verfügt. Wenn dies funktioniert, wird das Verschlüsselungszertifikat ausgestellt und automatisch eingerichtet.
Wenn alles geklappt hat, lässt sich Nextcloud nun über eine verschlüsselte Verbindung aufrufen, indem man https:// vor der DynDNS-Adresse im Browser eingibt. Der Webbrowser zeigt dann ein verschlossenen Schloss vor der Domain an.
Updates für Nextcloud einspielen
Wenn Updates für Nextcloud verfügbar sind, muss das Snap-Paket aktualisiert und Nextcloud neu gestartet werden. Dies geschieht mit folgenden Kommandos.
Damit man über Nextcloud auch auf die Dateien zugreifen kann, die über die lokalen Netzwerkfreigaben auf dem Homeserver gespeichert wurden, müssen diese Ordner noch in Nextcloud eingebunden werden.
Das Problem dabei ist, dass Nextcloud und Samba mit unterschiedlichen Systembenutzern laufen, was zu Berechtigungsproblemen führt. Aus diesem Grund kann man nicht einfach die Nextcloud-Datenverzeichnisse der einzelnen Benutzer über Samba freigeben. Der Snap-Dienst, der Nextcloud ausführt, läuft als Rootuser, was unter Windows dem Administratoraccount entspricht. Samba läuft mit einem eigenen Systembenutzer, mit sehr viel weniger Rechten, sodass Samba gar keinen Zugriff auf die Daten in Nextcloud hat.
Den Samba-Server als Root laufen zu lassen wäre eine Lösung, allerdings ein sicherheitstechnisches Desaster, weshalb man dies auf keinen Fall in Erwägung ziehen sollte. Das Nextcloud hier als Root ausgeführt wird ist hingegen nicht vergleichbar. Denn tatsächlich läuft nur der Snap-Dienst als Root, der die einzelnen Snap-Pakete in einer vom restlichen System abgeschotteten Umgebung ausführt.
Einbinden von Samba-Freigaben mit dem External-Storage-Plugin (funktioniert derzeit nicht)
Die bisherige Lösung mit einer klassischen Nextcloud-Installation war das External-Storage-Plugin von Nextcloud. Dies bietet auch eine Schnittstelle für Samba Freigaben an. Damit greift Nextcloud quasi wie jeder andere Computer auf die Freigaben zu, sodass hier keine Berechtigungsprobleme entstehen. Eine einfache wie elegante Lösung.
Leider funktioniert das Einbinden von Samba-Freigaben über das External-Storage-Plugin nicht, wenn man Nextcloud als Snap-Paket einsetzt. Ein entsprechender Bugreport ist schon seit Längerem vorhanden. Allerdings ist das Problem entweder schwer zu lösen, oder es ist den Entwicklern nicht wichtig genug. So oder so, derzeit scheidet diese Lösung leider aus.
Trotzdem möchte ich an dieser Stelle auf diese Möglichkeit hinweisen, falls sich die Situation in Zukunft ändert.
Samba-Freigaben mit Bindfs in Nextcloud einbinden
Als Alternative werden die Samba-Freigaben mittels Bindfs in Nextcloud eingebunden. Bindfs ermöglicht es, Ordner an zusätzlichen Stellen im Dateisystem mit anderen Benutzerrechten einzubinden.
Man kann damit beispielsweise die Samba-Freigabe „Tom“ in das Datenverzeichnis des Nextcloud-Users „Tom“ verlinken. Aus Sicht von Nextcloud sieht es dabei so aus, als ob die Dateien Root gehören, also dem Systemuser, der Snaps und damit auch Nextcloud ausführt. Tatsächlich werden die Daten jedoch mit dem Benutzer smb geschrieben, also dem Systembenutzer von Samba.
Das Problem dabei ist, dass jedes Mal, wenn eine Datei über die Samba-Freigaben hinzugefügt oder geändert wurde mit Nextcloud ein Filsystem-Scan durchgeführt werden muss. Ansonsten bekommt Nextcloud von der neuen Datei nichts mit und die Datei wird in Nextcloud nicht angezeigt. Dieses Problem kann man vermeiden, indem man den mit Bindfs erstellten Ordner wiederum mit dem External-Storage-Plugin in Nextcloud einbindet.
In diesem Beispiel passiert also folgendes:
Der Order mit der Samba-Freigabe /mnt/storage/shares/tom wird mit Bindfs nach /mnt/storage/nextcloud-bindfs/heimnetz-tom verlinkt.
Wenn nun Nextcloud Dateien nach /mnt/storage/nextcloud-bindfs/heimnetz-tom schreibt, werden diese tatsächlich mit dem Systemuser smb nach /mnt/storage/shares/tom geschrieben. Davon merkt Nextcloud aber nichts.
Der Ordner /mnt/storage/nextcloud-bindfs/heimnetz-tom wird über das Nextcloud-Plugin „External Storage“ in den Nextcloud-Account von Tom eingebunden.
Damit ist die Samba-Freigabe „Tom“ auch über Nextcloud nutzbar. Änderungen werden immer mit demselben Systemnutzer auf die Festplatte geschrieben, sodass es nicht zu Berechtigungsproblemen kommt. Außerdem sind Änderungen an Dateien immer sofort in Nextcloud, als auch in den Samba-Freigaben sichtbar.
Bindfs installieren und Ordner mit anderen Benutzerrechten mounten
Zunächst einmal wird Bindfs installiert.
sudo apt install bindfs
Dann muss man für jede einzelne Samba-Freigabe die mit Nextcloud verbunden werden soll eine Zeile in die Datei /etc/fstab einfügen. In diesem Beispiel wird die Nextcloud-Freigabe „Tom“ zur Nextcloud von Tom hinzugefügt.
Zuerst wird der Ordner angelegt, in welchem die Samba-Freigabe mit den Benutzerrechten von Root eingebunden wird.
Dann wird die Datei /etc/fstab im Texteditor geöffnet.
sudo nano /etc/fstab
Hier wird folgende Zeile eingefügt. Achtung: Es handelt sich um eine, sehr lange Zeile, die ohne Zeilenumbruch in die Konfigurationsdatei eingefügt werden muss.
Für jede Samba-Freigabe, die man in einen Nextcloud-Benutzeraccount einbinden will, muss dieser Vorgang wiederholt werden. Für die Freigabe Media muss also der Ordner /mnt/storage/nextcloud-bindfs/heimnetz-media angelegt werden.
Dann wird eine weitere Zeile in die /etc/fstab eingefügt. Dort wird /mnt/storage/shares/tom durch /mnt/storage/shares/media ersetzt und /mnt/storage/nextcloud-bindfs/heimnetz-tom wird durch /mnt/storage/nextcloud-bindfs/heimnetz-media ersetzt.
Um die Konfiguration zu aktivieren wird folgender Befehl ausgeführt.
sudo mount -a
Ordner in Nextcloud einbinden
Um die soeben erstellten Ordner in Nextcloud verfügbar zu machen, wird nun das External-Storage-Plugin installiert. Hierzu loggt man sich mit dem bei der Installation erstellten Administratoraccount in Nextcloud ein.
Dann klickt man oben rechts auf das Icon mit dem Anfangsbuchstaben des Benutzernamens und anschließend auf „+ Apps„.
Hier findet man nun bei den deaktivierten Apps die App „External Storage Support“ die mit einem Klick auf Aktivieren installiert wird.
Zum Einbinden der Ordner in Nextcloud klickt man wieder auf das Icon oben rechts und anschließend auf Einstellungen. Im linken Bereich findet man verwirrender Weise zwei Punkte mit dem Namen „Externe Speicher„. In diesem Fall wird der untere benötigt.
Ordnername: Mit diesem Namen erscheint die Samba-Freigabe in Nextcloud. Es kann ein beliebiger Name vergeben werden.
Verfügbar für: Alle Nextcloud-Benutzernamen, die auf diese Freigabe zugreifen dürfen.
Mit einem Klick auf den Haken wird der Ordner in Nextcloud aktiviert.
Sicherheitshinweis: Wenn der Haken bei „Benutzern erlauben, externen Speicher einzubinden“, darf jeder Nextcloudnutzer Ordner außerhalb seines Nextcloud-Accounts selbständig einbinden. Das bedeutet, wenn Lena den Pfad /mnt/storage/nextcloud-bindfs/heimnetz-tom kennt, kann sie die eigentlich privaten Dateien von Tom einbinden.
Wenn man nun über das Ordner-Icon in der Menüleiste zu den Dateien in Nextcloud wechselt, findet man hier den neuen Ordner Heimnetz-Tom. Hierüber hat man nun Zugriff auf die Dateien aus der Samba-Freigabe.
Zur Organisation und Wiedergabe von Musik und Videos wird Plex verwendet. Plex besteht aus zwei Komponenten, dem Server und den Clients. Die Serverkomponente wird auf dem Homeserver installiert. Hier werden alle Audio- und Videodateien zentral verwaltet und der Mediaserver organisiert.
Die Clients sind die Wiedergabegeräte. Dies kann ein Mediacenter-PC, ein iPhone, ein Android-Smartphone oder ein Fernseher mit Amazon FireTV oder Google Chromecast sein. Diese verbinden sich mit dem Server. Anschließend kann die komplette Mediathek auf dem Client wiedergegeben werden.
Plex ist in einer kostenlosen und in einer kostenpflichtigen Version erhältlich. Vorteil der kostenpflichtigen Version ist vor allem, dass Inhalte auch auf das Smartphone heruntergeladen werden können, um diese offline zu konsumieren. Die Unterschiede zwischen kostenloser und kostenpflichtiger Version werden auf der Homepage von Plex erklärt.
Die Installation und Einrichtung von Plex ist dank der fertigen Installationspakete relativ schnell erledigt.
Um Plex zu nutzen, muss man sich zuerst einen kostenlosen Account auf der plex.tv anlegen.
Plex Mediaserver installieren
Auch der Plex Mediaserver ist als Snap-Paket für Ubuntu verfügbar. Da die Nutzung dieser Version sowohl die Einrichtung vereinfacht, als auch die Sicherheit verbessert, wird in dieser Anleitung der Plex Mediaserver als Snap-Paket installiert. Dies geschieht mit folgendem Befehl.
sudo snap install plexmediaserver
SSL-Zertifikat für den Mediaserver erstellen
Damit die Verbindung zum Plex-Mediaserver über das Internet verschlüsselt erfolgt, muss auch hier ein Verschlüsselungszertifikat eingerichtet werden. Hierfür kann das Zertifikat verwendet werden, dass bereits für Nextcloud erstellt wurde.
Allerdings liegt dieses bisher in einer Form vor, die der Plexserver nicht versteht. Das Zertifikat muss also umgewandelt werden. Außerdem muss auch dieser Umwandlungsprozess automatisiert werden, da das Zertifikat ansonsten nach drei Monaten abläuft und nicht mehr funktioniert.
Als Erstes wird das vorhandene Zertifikat in ein anderes Format konvertiert, das Plex verarbeiten kann. Hier muss jeweils der eigene DynDNS Name angepasst werden und ein Passwort vergeben werden. Der erste Befehl legt einen Ordner an, in welchem das Zertifikat für Plex gespeichert wird. Anschließend wird das bereits vorhandene Zertifikat umgewandelt und im gerade erstellten Ordner gespeichert.
Wichtig: Es handelt sich um einen langen Befehl, der in einer Zeile eingegeben werden muss.
Let’s Encrypt Zertifikate sind immer nur drei Monate gültig, dann muss ein neues Zertifikat ausgestellt werden. Für Nextcloud geschieht dies automatisch. Die Umwandlung des Zertifikats für Plex muss jedoch manuell konfiguriert werden. Zum Glück sieht Certbot, das Programm welches die Zertifikate erzeugt, solche Fälle vor und verarbeitet nach dem Erstellen eines Zertifikats alle Skripte, die unter /var/snap/nextcloud/current/certs/certbot/config/renewal-hooks/ gespeichert sind.
In diesem Schritt wird also ein Skript erstellt, dass die Konvertierung des Zertifikats vornimmt. Das Skript wird in einem Ordner im Homeverzeichnis des aktuellen Users gespeichert. In diesem Ordner wird später auch das Skript für das Backup untergebracht. Anschließend wird das Skript in einen speziellen Ordner von Certbot verlinkt, wodurch es immer dann ausgeführt wird, wenn Certbot ein neues Zertifikat über Let’s Encrypt erzeugt hat.
Achtung: Es kann sein, dass bei einer Aktualisierung des Nextcloud-Snap-Pakets diese Verknüpfung gelöscht wird. Dann wird das Zertifikat nicht mehr automatisch für Plex erstellt. Daher sollte man nach einem Update des Nextcloud-Snap-Pakets den letzten Befehl erneut ausführen.
Dann wird die Datei mit einem Texteditor geöffnet und folgender Inhalt in die Datei geschrieben. Hier muss wieder die eigene Domain und das gewählte Passwort angepasst werden.
Mit Strg+O wird die Datei gespeichert und mit Strg+X der Texteditor wieder geschlossen. Auch hier muss bitte wieder beachtet werden, dass es sich um einen langen Befehl handelt, der nicht mit einem Zeilenumbruch unterbrochen werden darf. Der Inhalt der Datei muss also folgendermaßen aussehen.
Von nun an wird jedes mal, wenn ein neues Let’s Encrypt Zertifikat für Nextcloud erzeugt wird, automatisch auch eine Version für Plex erstellt.
Plex Mediaserver konfigurieren
Der Plex Mediaserver wird komplett über eine Konfigurationsoberfläche im Webbrowser eingerichtet. Für die Erstkonfiguration wird diese über die lokale IP-Adresse aufgerufen. Später funktioniert auch der Aufruf über die Domain.
http://192.168.30.114:32400/web
Achtung: Da die Verwendung des SSL-Verschlüsselungszertifikats noch nicht im Mediaserver konfiguriert ist, erfolgt die Verbindung noch unverschlüsselt. Bis die Konfiguration abgeschlossen ist, sollte man den Mediaserver nur im eigenen Heimnetzwerk verwenden.
Als Erstes muss man sich mit seinem Plex-Account einloggen. Nach dem Login wird man auf den kostenpflichtigen Plex-Pass hingewiesen, der einige Zusatzfeatures bietet. Das Fenster kann über das „X“ in der Ecke geschlossen werden.
In Schritt 1 muss ein beliebiger Name für den Server vergeben werden. Ich bleibe in diesem Beispiel bei Mimas.
In Schritt 2 werden Mediatheken hinzugefügt. Dies kann auch später noch geändert oder ergänzt werden. Wir legen in diesem Beispiel zwei Mediatheken an. Eine für unsere Audio- und eine für die Videodateien. Entsprechend wird der Typ Filme/Serien oder „Andere Videos“ gewählt.
Für die Audiodateien wählen wir Musik.
Als Ordner für die Mediathek wird der Pfad zu den eigenen Audiodateien gewählt. Beispielsweise /mnt/storage/shares/media/audio gewählt.
Unter Optionen steht uns nur die Möglichkeit eine einfache Musik-Mediathek erstellen zur Verfügung. Für die Premium-Mediathek ist ein kostenpflichtiger Plexpass nötig.
Die Einstellungen unter Erweitert können unverändert bleiben.
Die Mediathek wird nun erstellt, die Dateien durchsucht und in die Datenbank des Mediaservers eingetragen. Diese Schritte müssen nun wiederholt werden für alle Medien die über Plex eingebunden und gestreamt werden sollen. Also Audiodateien, Videodateien und Bilder.
In Schritt 3 folgt ein Hinweis auf die zur Verfügung stehenden Apps, die zum Abspielen auf dem Smartphone oder dem Fernseher benötigt werden. Mit einem Klick auf Fertig ist der erste Teil der Konfiguration abgeschlossen.
Nun wird man auf die normale Benutzer- und Konfigurationsoberfkäche von Plex weitergeleitet. Grundsätzlich kann der Mediaserver bereits genutzt werden. Als letzter Schritt sollte nun aber noch die verschlüsselte Verbindung konfiguriert werden.
Dazu geht man in die Servereinstellungen, welche man über das Werkzeugsymbol in der rechten oberen Ecke erreicht. Anschließend wählt man in der linken Seitenleiste den Menüpunkt „Netzwerk“ aus.. Eventuell muss man mit einem Klick auf erweiterte Optionen weitere Felder freischalten. Nun werden folgende Eintragungen vorgenommen.
Sichere Verbindung: Bevorzugt, wenn alles funktioniert sollte dies auf Erforderlich umgestellt werden.
Eigener Zertifikatsschlüssel: Das Passwort welches für das Zertifikat vergeben wurde
Eigene Zertifikatsdomain: Die DynDNS Adresse. Hier mimashome.ddns.net
Die weiteren Felder müssen nicht ausgefüllt, bzw. verändert werden. Ganz unten auf der Seite findet man den Button zum Speichern der Einstellungen.
Unter dem Punkt Fernzugriff muss nun noch der Zugriff aus dem Internet erlaubt werden und der entsprechende Port angegeben werden. Dazu einen Haken bei „Öffentlichen Port manuell definieren“ setzen und den Port 32400 angeben.
Anschließend auf „erneut versuchen“ klicken. Nach einem kurzen Moment sollte die rote Warnmeldung verschwinden und durch eine grüne Erfolgsmeldung ersetzt werden. Wichtig ist hierzu, dass die entsprechende Portweiterleitung im Router korrekt gesetzt ist.
Damit Plex die Änderungen übernimmt und das Zertifikat einliest, muss der Plexserver neu gestartet werden. Dies geschieht mit folgendem Befehl.
sudo snap restart plexmediaserver
Damit ist der Plex Mediaserver auf unserem selbstgebauten NAS bzw. Homeserver auch über das Internet erreichbar.
In die Plexapp, oder den Webbrowser muss ab jetzt folgende Adresse eingegeben werden, um den eigenen Streamingserver zu erreichen
https://mimashome.ddns.net:32400
Wichtig ist das https. Damit wird eine sichere, verschlüsselte Verbindung zum Mediaserver über das Internet aufgebaut.