Normale Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.
Ältere BeiträgeHaupt-Feeds

Übersicht: Ubuntu 20.04 Homeserver/NAS, Teil 1

Von: Niko
16. August 2020 um 11:27

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.

KomponenteModellPreis ca.
Barebone (Gehäuse, Netzteil, Mainboard)Asrock Deskmini A300 (90BXG3G01-A30GA0W)138 €
ProzessorAMD Athlon 200 GE, 2x 3,2GHz, (YD200GC6FBBOX)47 €
RAMCrucial S0-DIMM 8GB, DDR4-2666 (CT8G4SFS8266)28 €
NVMe-SSD für das BetriebssystemKingston A2000 NVMe PCIe 250GB (SA2000M8/250G)39 €
2,5″ Festplatten für Nutzerdaten (2x)Western Digital RED 2,5 Zoll, 1TB2x 77€
oder 2,5″ SSDWestern Digital RED SA500 NAS 2,5″ SATA SSD, 1TB2x 111€
Gesamtpreis mit 2x SATA-Festplatten406 €
Gesamtpreis mit 2x SATA-SSDs474 €

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.

KomponenteModellPreis ca.
Mini PC Barebone (Gehäuse, Netzteil, Mainboard, CPU)NUC Intel Pentium Silver, 1,50 GHz, j5005 (nuc7pjyh)165 €
RAM 2x4GBCrucial S0-DIMM 4GB, DDR4, 2400 (CT4G4SFS824A)2x 16 €
SSD für das BetriebssystemWestern Digital RED SA500 NAS 2,5 SATA 500 GB54 €
Gesamtpreis PC251 €

Ü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-RD3621U353 €
oder FANTEC Qb-X2US3R68 €

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 PRO2x 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 VarianteIntel NUC, Icy Box, 2x WD RED504 €
AlternativeIntel NUC, Fantec RAID-Gehäuse, 2x WD RED Pro653 €

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.

Los geht’s


Übersicht: Ubuntu 20.04 Homeserver/NAS, Teil 1
Installation des Betriebssystems: Ubuntu 20.04 Homeserver/NAS, Teil 2
Grundkonfiguration: Ubuntu 20.04 Homeserver/NAS, Teil 3
Ordnerfreigaben: Ubuntu 20.04 Homeserver/NAS, Teil 4
Nextcloud: Ubuntu 20.04 Homeserver/NAS, Teil 5
Plex Mediaserver: Ubuntu 20.04 Homeserver/NAS, Teil 6
Backup: Ubuntu 20.04 Homeserver/NAS, Teil 7


Übersicht: Ubuntu 20.04 Homeserver/NAS, Teil 1 ist ein Beitrag von techgrube.de.

Installation des Betriebssystems: Ubuntu 20.04 Homeserver/NAS, Teil 2

Von: Niko
16. August 2020 um 11:27

Dieser Artikel ist Teil der Reihe selbstgebauter Ubuntu 20.04 Homeserver/NAS


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.

Screenshot der Downloadseite für Ubuntu Server 20.04

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.

Balena Etcher kann kostenlos von der Herstellerseite heruntergeladen werden.

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.

USB-Stick mit Balena Etcher erstellen

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.


Übersicht: Ubuntu 20.04 Homeserver/NAS, Teil 1
Installation des Betriebssystems: Ubuntu 20.04 Homeserver/NAS, Teil 2
Grundkonfiguration: Ubuntu 20.04 Homeserver/NAS, Teil 3
Ordnerfreigaben: Ubuntu 20.04 Homeserver/NAS, Teil 4
Nextcloud: Ubuntu 20.04 Homeserver/NAS, Teil 5
Plex Mediaserver: Ubuntu 20.04 Homeserver/NAS, Teil 6
Backup: Ubuntu 20.04 Homeserver/NAS, Teil 7


Installation des Betriebssystems: Ubuntu 20.04 Homeserver/NAS, Teil 2 ist ein Beitrag von techgrube.de.

Grundkonfiguration: Ubuntu 20.04 Homeserver/NAS, Teil 3

Von: Niko
16. August 2020 um 11:27

Dieser Artikel ist Teil der Reihe selbstgebauter Ubuntu 20.04 Homeserver/NAS


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.

IP Adresse des Homeservers herausfinden. Möglichkeit 1

Alternativ kann man folgenden Befehl verwenden. Damit werden alle Adressen aller Netzwerkschnittstellen angezeigt.

ip addr
IP Adresse des Homeservers herausfinden. Möglichkeit 2

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
SSH Verbindungsaufbau mit der Powershell

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.

Ubuntu Server verfügbare Updates

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.

Homeserver Neustart erforderlich

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.

sudo apt install -y language-pack-de language-pack-de-base

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.

Configure locales

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.

Configure locales Schritt 2

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.

No-IP.com Dyndns Account erstellen

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”.

No-IP Hostname erstellen

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.

No-IP account in Fritzbox eintragen

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.

Portfreigabe in Fritzbox erstellen

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:

Portfreigaben Fritzbox für den Homeserver

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.

Relay Server Prinzip

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.

Interface ID in Fritzbox eintragen
Interface ID herausfinden
  • 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.

Internetfreigaben Fritzbox Übersicht

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.

Beispielsweise: mimas.​lasdgoetnvklvwph.​myfritz.​net

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.
Feste-ip.net Portmapper einrichten

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.


Übersicht: Ubuntu 20.04 Homeserver/NAS, Teil 1
Installation des Betriebssystems: Ubuntu 20.04 Homeserver/NAS, Teil 2
Grundkonfiguration: Ubuntu 20.04 Homeserver/NAS, Teil 3
Ordnerfreigaben: Ubuntu 20.04 Homeserver/NAS, Teil 4
Nextcloud: Ubuntu 20.04 Homeserver/NAS, Teil 5
Plex Mediaserver: Ubuntu 20.04 Homeserver/NAS, Teil 6
Backup: Ubuntu 20.04 Homeserver/NAS, Teil 7


Grundkonfiguration: Ubuntu 20.04 Homeserver/NAS, Teil 3 ist ein Beitrag von techgrube.de.

Ordnerfreigaben: Ubuntu 20.04 Homeserver/NAS, Teil 4

Von: Niko
16. August 2020 um 11:27

Dieser Artikel ist Teil der Reihe selbstgebauter Ubuntu 20.04 Homeserver/NAS


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.

sudo mkdir -p /mnt/storage/shares/{tom,lena,media,familie}
sudo chown -R smb: /mnt/storage/shares

Einrichten der Freigaben

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.

Schnellzugriff auf Netzwerkfreigaben mit Windows 10

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.

Windows 10 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.

Netzlaufwerk in Windows 10 eingerichtet

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.

Ubuntu Desktop auf SMB-Freigaben zugreifen

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

mkdir ~/.credentials
touch ~/.credentials/smbcredentials
nano ~/.credentials/smbcredentials

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.

sudo chown root: .credentials/smbcredentials
sudo chmod 600 .credentials/smbcredentials

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.

sudo nano /etc/fstab
#Mount Homeserver
//192.168.30.153/Tom /home/MEINUSERNAME/Homeserver/Tom cifs credentials=/home/MEINUSERNAME/.credentials/smbcredentials,users,uid=1000,gid=1000 0 0
//192.168.30.153/Familie /home/MEINUSERNAME/Homeserver/familie cifs credentials=/home/MEINUSERNAME/.credentials/smbcredentials,users,uid=1000,gid=1000 0 0
//192.168.30.153/Media /home/MEINUSERNAME/Homeserver/Media cifs credentials=/home/MEINUSERNAME/.credentials/smbcredentials,users,uid=1000,gid=1000 0 0

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.

sudo mount -a
Ubuntu Netzwerkfreigaben dauerhaft eingebunden

Übersicht: Ubuntu 20.04 Homeserver/NAS, Teil 1
Installation des Betriebssystems: Ubuntu 20.04 Homeserver/NAS, Teil 2
Grundkonfiguration: Ubuntu 20.04 Homeserver/NAS, Teil 3
Ordnerfreigaben: Ubuntu 20.04 Homeserver/NAS, Teil 4
Nextcloud: Ubuntu 20.04 Homeserver/NAS, Teil 5
Plex Mediaserver: Ubuntu 20.04 Homeserver/NAS, Teil 6
Backup: Ubuntu 20.04 Homeserver/NAS, Teil 7


Ordnerfreigaben: Ubuntu 20.04 Homeserver/NAS, Teil 4 ist ein Beitrag von techgrube.de.

Nextcloud: Ubuntu 20.04 Homeserver/NAS, Teil 5

Von: Niko
16. August 2020 um 11:27

Dieser Artikel ist Teil der Reihe selbstgebauter Ubuntu 20.04 Homeserver/NAS


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.

sudo mkdir -p /mnt/storage/nextcloud/data

sudo chown -R root:root /mnt/storage/nextcloud/data

sudo chmod 0770 /mnt/storage/nextcloud/data

Nun wird die Konfigurationsdatei angepasst, in welcher steht, wo Nextcloud das Datenverzeichnis einrichten soll.

sudo nano /var/snap/nextcloud/current/nextcloud/config/autoconfig.php

Hier wird die Zeile mit „directory“ angepasst und der Pfad zum Datenverzeichnis auf dem RAID eingetragen.

 // ...
 'directory' => '/mnt/storage/nextcloud/data',
 // ...

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.

Nextcloud im Webbrowser aufrufen

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.

sudo /snap/bin/nextcloud.enable-https lets-encrypt

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.

Let's Encrypt Zertifikat einrichten

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.

Verschlüsselte Verbindung zu Nextcloud eingerichtet

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.

sudo sudo snap refresh nextcloud
sudo nextcloud.occ upgrade

sudo snap restart nextcloud

Samba-Freigaben in Nextcloud einbinden

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.

sudo mkdir -p /mnt/storage/nextcloud-bindfs/heimnetz-tom

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.

bindfs#/mnt/storage/shares/tom /mnt/storage/nextcloud-bindfs/heimnetz-tom fuse force-user=root,force-group=root,create-for-user=smb,create-for-group=smb,chgrp-ignore,chown-ignore,chmod-ignore 0 0
Ordner mit Bindfs mounten

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.

External-Storage-Support-Plugin aktivieren

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.
  • Externer Speicher: Lokal
  • Authentifizierung: Keine
  • Konfiguration: /mnt/storage/nextcloud-bindfs/heimnetz-tom
  • 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.

Ordner mit dem External-Storage-Plugin in Nextcloud einbinden

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.

Ordner mit dem External-Storage-Plugin in NExtcloud eingefügt.

Übersicht: Ubuntu 20.04 Homeserver/NAS, Teil 1
Installation des Betriebssystems: Ubuntu 20.04 Homeserver/NAS, Teil 2
Grundkonfiguration: Ubuntu 20.04 Homeserver/NAS, Teil 3
Ordnerfreigaben: Ubuntu 20.04 Homeserver/NAS, Teil 4
Nextcloud: Ubuntu 20.04 Homeserver/NAS, Teil 5
Plex Mediaserver: Ubuntu 20.04 Homeserver/NAS, Teil 6
Backup: Ubuntu 20.04 Homeserver/NAS, Teil 7


Nextcloud: Ubuntu 20.04 Homeserver/NAS, Teil 5 ist ein Beitrag von techgrube.de.

Plex Mediaserver: Ubuntu 20.04 Homeserver/NAS, Teil 6

Von: Niko
16. August 2020 um 11:27

Dieser Artikel ist Teil der Reihe selbstgebauter Ubuntu 20.04 Homeserver/NAS


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.

sudo mkdir -p /mnt/storage/plexmediaserver/cert
sudo openssl pkcs12 -export -nodes -out /mnt/storage/plexmediaserver/cert/mimashome.ddns.net.pfx -inkey /var/snap/nextcloud/current/certs/certbot/config/live/mimashome.ddns.net/privkey.pem -in /var/snap/nextcloud/current/certs/certbot/config/live/mimashome.ddns.net/cert.pem -certfile /var/snap/nextcloud/current/certs/certbot/config/live/mimashome.ddns.net/chain.pem -passout pass:meinpasswort

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.

mkdir ~/skripte

touch ~/skripte/plexcert.sh

chmod +x ~/skripte/plexcert.sh

sudo ln -s ~/skripte/plexcert.sh /var/snap/nextcloud/current/certs/certbot/config/renewal-hooks/post/

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.

nano ~/skripte/plexcert.sh
#!/bin/bash
sudo openssl pkcs12 -export -nodes -out /mnt/storage/plexmediaserver/cert/mimashome.ddns.net.pfx -inkey /var/snap/nextcloud/current/certs/certbot/config/live/mimashome.ddns.net/privkey.pem -in /var/snap/nextcloud/current/certs/certbot/config/live/mimashome.ddns.net/cert.pem -certfile /var/snap/nextcloud/current/certs/certbot/config/live/mimashome.ddns.net/chain.pem -passout pass:meinpasswort  && snap restart plexmediaserver

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.

Let's Encrypt Zertifikat für Plex automatisch konvertieren

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 Zertifikatsspeicherort: /mnt/storage/plexmediaserver/cert/mimashome.ddns.net.pfx
  • 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.

SSL Zertifikat in Plex konfiguriert

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.

Plex Fernzugriff konfigurieren

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.


Übersicht: Ubuntu 20.04 Homeserver/NAS, Teil 1
Installation des Betriebssystems: Ubuntu 20.04 Homeserver/NAS, Teil 2
Grundkonfiguration: Ubuntu 20.04 Homeserver/NAS, Teil 3
Ordnerfreigaben: Ubuntu 20.04 Homeserver/NAS, Teil 4
Nextcloud: Ubuntu 20.04 Homeserver/NAS, Teil 5
Plex Mediaserver: Ubuntu 20.04 Homeserver/NAS, Teil 6
Backup: Ubuntu 20.04 Homeserver/NAS, Teil 7


Plex Mediaserver: Ubuntu 20.04 Homeserver/NAS, Teil 6 ist ein Beitrag von techgrube.de.

Backup: Ubuntu 20.04 Homeserver/NAS, Teil 7

Von: Niko
16. August 2020 um 11:27

Dieser Artikel ist Teil der Reihe selbstgebauter Ubuntu 20.04 Homeserver/NAS


Im letzten Kapitel geht es um die Datensicherung. Der Homeserver dient als zentrale Ablage für eine Vielzahl wichtiger Dateien. Eventuell sogar von mehreren Personen. Ein Verlust der Daten wäre daher verheerend.

Das RAID-System schützt zwar vor dem Verlust der Daten durch einen Hardwaredefekt an einer Festplatte, vor versehentlichem Löschen von Dateien schützt es jedoch nicht. Auch im unwahrscheinlichen Fall, dass zwei Festplatten gleichzeitig ausfallen, kann das RAID die Daten nicht mehr schützen. Ein Backup ist also in jedem Fall Pflicht.

In diesem Kapitel werden zwei mögliche Backuplösungen vorgestellt. Beide haben ihre Vor- und Nachteile. Je nachdem welche Anforderungen man hat, kann man beide Lösungen zusammen oder nur eine einsetzen.

Zuerst wird die Einrichtung eines Backups mit der Software Duplicati beschrieben. Duplicati besitzt eine grafische Benutzeroberfläche, die sich über einen Webbrowser von jedem beliebigen Rechner im Netzwerk bedienen lässt. Das macht die Nutzung von Duplicati sehr einfach und intuitiv. Außerdem unterstützt Duplicati eine vielzahl von Speicherlösungen und bietet außerdem die Möglichkeit Backups zu verschlüsseln. Damit ist Duplicati die ideale Lösung um verschlüsselte Onlinebackups mit Ubuntu zu machen.

Duplicati wird seit vielen Jahren sehr aktiv entwickelt. Allerdings konnte sich der Entwickler bisher noch nicht dazu entschließen eine Version als final zu bezeichnen. Ich bin mittlerweile skeptisch, ob das jemals passieren wird. Stattdessen findet die Entwicklung in sogenannten experimentellen Versionen statt. In regelmäßigen Abständen wird eine stabile und zuverlässige Version als Beta gekennzeichnet. Die Beta-Versionen findet man auf der Homepage zum Download und ich setze sie seit vielen Jahren ohne größere Probleme ein.

Zwei Nachteile von Duplicati möchte ich trotzdem erwähnen. Erstens: Es ist relativ langsam, insbesondere dann, wenn sich viele Dateien geändert haben, oder wenn alte Backups aufgeräumt werden. Ich empfehle daher, mehrere Backupjobs einzurichten, anstatt einem großen. Beispielsweise einen Backupjob für Dokumente, einen für Bilder, einen für Musik etc. Dadurch wird das einzelne Backup schneller abgeschlossen. Außerdem ist dies ein Vorteil, wenn es zum zweiten Nachteil kommt. Wenn ein laufendes Backup unterbrochen wird, beispielsweise durch einen Stromausfall oder bei Verbindungsproblemen mit dem Cloudspeicher, sind die lokale Datenbank und die Datenbank im Backupspeicher nicht mehr synchron. In diesem Fall muss die Datenbank von Duplicati repariert werden, was, je nach Datenmenge durchaus einen ganzen Tag dauern kann.

Das zweite Backup ist ein lokales Backup auf eine externe Festplatte. Zum Sichern der Daten wird Rsync verwendet, was als Standardwerkzeug bei Ubuntu bereits vorinstalliert ist. Rsync ist alt, bewährt, robust und sehr zuverlässig.

Durch ein kleines Backupskript werden die Daten vom Homeserver auf eine externe Festplatte kopiert. Dabei wird für jedes Backup ein eigener Ordner erstellt und mit Datum versehen. Rsync arbeitet dabei mit sogenannten Hardlinks. Das bedeutet, dass die gleichen Daten nur einmal übertragen und auf der Festplatte gespeichert werden. Auch wenn es so aussieht, als wäre die Datei in mehreren Backups gespeichert, liegt sie tatsächlich nur einmal auf der externen Festplatte. Das spart Speicherplatz und sorgt für eine schnelle Übertragung. Ein weiterer Vorteil dieser Sicherung ist, dass die Daten auf der externen Festplatte genau so vorliegen wir auf dem Homeserver. Das bedeutet, dass die externe Festplatte einfach an einen anderen Rechner angeschlossen werden kann und man ganz bequem mit dem Dateimanager auf die Daten zugreifen kann. Ohne, dass eine spezielle Backupsoftware nötig wäre um die Daten wiederherzustellen.

Ich verwende eine Kombination aus beiden Methoden. Mit Duplicati sichere ich die wichtigsten Daten verschlüsselt in der Cloud. Damit sind diese Daten auch im Falle eines Wohnungsbrands oder Diebstahls noch sicher. Zusätzlich sichere ich sämtliche Daten auf externen Festplatten, da auf diese Weise auch große Datenmengen schnell und günstig gesichert werden können.

Die Installation von Duplicati

Zuerst wird der Downloadlink für die aktuelle (Beta-)Version für Ubuntu von der Duplicati Downloadseite benötigt. Um diese zu erhalten, macht man einen Rechtsklick auf den Button zum Download der Ubuntuversion und wählt „Adresse des Links kopieren“ (je nach Browser unterschiedlich) im Kontextmenü. Damit wird der Downloadlink in die Zwischenablage kopiert. Über die Kommandozeile auf dem Homeserver wird die Installationsdatei dann heruntergeladen.

cd

wget https://updates.duplicati.com/beta/duplicati_X.X.X.X-X_all.deb

Im nächsten Schritt wird das heruntergeladene .deb Installationspaket installiert. Da Duplicati in C# geschrieben ist, wird zur Ausführung unter Linux das Mono-Framework benötigt, welches automatisch aus den Ubuntu Paketquellen mitinstalliert wird. Die Installation erfolgt mit folgendem Befehl.

sudo apt install ./duplicati_*.deb -y

Standardmäßig erlaubt Duplicati den Zugriff auf das Webinterface nur von derselben Maschine aus. Aber natürlich soll es möglich sein, von einem beliebigen Computer aus auf das Webinterface zugreifen. Um dies zu ermöglichen, muss die Konfigurationsdatei /etc/default/duplicati angepasst werden. Dazu wird diese wieder zuerst mit einem Texteditor geöffnet.

sudo nano /etc/default/duplicati

In der Konfigurationsdatei werden in der Zeile DAEMON_OPTS die benötigten Optionen konfiguriert, indem die Zeile wie folgt ergänzt wird.

DAEMON_OPTS="--webservice-port=8200 --webservice-interface=any"

Die Konfigurationsdatei sieht nun so aus.

Duplicati Konfigurationsdatei

Jetzt wird der Duplicati-Dienst noch aktiviert, sodass die Software nach einem Neustart automatisch wieder aktiv ist. Außerdem wird Duplicati gestartet, sodass es direkt einsatzbereit ist.

sudo systemctl enable duplicati.service
sudo systemctl start duplicati.service

Nun kann Duplicati über den Webbrowser über folgende Adresse aufgerufen werden, wobei die IP-Adresse natürlich an das eigene System angepasst werden muss.

http://192.168.30.153:8200

Die Konfiguration von Duplicati

Beim ersten Aufruf von Duplicati sieht man einen Sicherheitshinweis. Man kann zuerst ein Passwort für die Benutzeroberfläche festlegen, um zu verhindern, dass Unbefugte Zugriff auf die Einstellungen und die Backups bekommen. Da die Konfigurationsoberfläche von Duplicati von jedem Computer im Netzwerk erreicht werden kann, ist es sinnvoll hier ein Passwort festzulegen. Dies kann aber auch später in den Einstellungen jederzeit nachgeholt werden.

Duplicati Benutzeroberfläche

Die Konfigurationsoberfläche und das Einrichten von Backups mit Duplicati ist selbsterklärend und kinderleicht. Aus diesem Grund verzichte ich auf eine Anleitung zum Einrichten des Backups.

Man sollte bei der Einrichtung darauf achten die Ordner /etc sowie /mnt/storage zu sichern. Im ersten liegen die Konfigurationsdateien des Systems, im zweiten unsere Daten. Auch das Sichern des /home Verzeichnisses ist in der Regel sinnvoll.

Außerdem ist es sinnvoll die Konfiguration des Backups z.B. auf einem USB-Stick zu sichern, oder sich diese für den Fall der Fälle per E-mail zu senden. Damit ist es möglich die Duplicati Konfiguration auf einem neu aufgesetzten System einfach wieder zu importieren.
Hierzu klickt man auf den Namen des Backups, in diesem Fall „Home“. Damit klappen weitere Optionen herunter. Hier findet man unter dem Punkt Konfiguration -> Exportieren die Möglichkeit sich alle Einstellungen des Backupjobs „Home“ als Datei herunterzuladen.

Konfiguration von Duplicati exportieren

Lokales Backup auf eine externe Festplatte

In diesem Kapitel wird ein lokales Backup auf eine externe Festplatte mit Rsync konfiguriert. Gegenüber einem Cloudbackup und einer komplexen Software wie Duplicati hat dies einige Vorteile. Rsync ist ein Kommandozeilentool um Dateien und Ordner zu kopieren, das sich umfangreich konfigurieren lässt. Es ist alt, bewährt und sehr zuverlässig. Mit Rsync werden die Daten die gesichert werden auf eine externe Festplatte kopiert. Dort kann man ohne Zusatzsoftware einfach auf die Daten zugreifen. Bei einem Totalausfall des Homeservers kommt man so schnell und einfach an seine Daten, indem man die externe Festplatte einfach an einen anderen Computer anschließt.

Verglichen mit einem Cloudbackup ist ein lokales Backup sehr schnell, sodass auch große Datenmengen gesichert werden können. Außerdem ist Speicherplatz auf einer externen Festplatte auf Dauer sehr viel billiger als Cloudspeicher. Jedenfalls dann, wenn man große Datenmengen speichern möchte.

Standardmäßig werden bei einem Ubuntu Server (im Gegensatz zum Desktop Ubuntu) USB-Laufwerke nicht automatisch eingebunden. Damit die Backupfestplatte beim Einstecken automatisch in das Dateisystem eingebunden wird, wird das Programm usbmount installiert. Rsync ist bei Ubuntu bereits vorinstalliert, sodass dieses nicht installiert werden muss.

USBMount installieren und konfigurieren

USBMount ist zwar in den Paketquellen von Ubuntu vorhanden, allerdings hat diese Version einen Fehler und funktioniert mit Ubuntu 20.04 nicht. Zwar wurde der Fehler im Quellcode von USBMount behoben, allerdings basiert die Version in den Paketquellen nicht auf dem aktuellen Code. Aus diesem Grund muss man eine funktionierende Version von USBMount für Ubuntu 20.04 aus dem aktuellen Quellcode selber bauen, was jedoch auch mit ein paar Befehlen erledigt ist.

Der erste Befehl wechselt zurück in das Homeverzeichnis des aktuellen Benutzers. Anschließend wird Git installiert und der Quellcode von USBMount heruntergeladen.

cd ~

sudo apt install git

git clone https://github.com/rbrito/usbmount

Dann werden zusätzliche Pakete installiert, die benötigt werden, um das Installationspaket aus dem Quellcode zu bauen.

sudo apt install debhelper build-essential lockfile-progs -y

Nun wechselt man in das Verzeichnis, in welchem der heruntergeladene Quellcode gespeichert wurde. Anschließend wird aus diesem Code ein Installationspaket für USBMount gebaut.

cd usbmount

dpkg-buildpackage -us -uc -b

Jetzt kann die funktionierende Version von USBMount für Ubuntu 20.04 aus dem erstellten Paket installiert werden,

sudo dpkg -i ../usbmount*.deb

Usbmount ist direkt nach der Installation einsatzbereit. Steckt man eine USB-Festplatte ein, wird dieses automatisch in /media/usb in das Dateisystem eingebunden. Steckt man mehrere USB-Laufwerke an, so werden die Einbindungspunkte nummeriert, also /media/usb1, /media/usb2 usw.

Standardmäßig unterstützt usbmount die Dateisysteme vfat ext2 ext3 ext4 und hfsplus. Wenn die Backupfestplatte nur für den Homeserver genutzt wird sollte sie mit dem Dateisystem ext4 formatiert werden, da dies das Standarddateisystem von Ubuntu und vielen anderen Linuxsystemen ist. Wenn man die Festplatte unbedingt auch auf Windows PCs nutzen möchte und die Festplatte somit NTFS formatiert sein muss, muss dieses Dateisystem in der Konfigurationsdatei von usbmount aktiviert werden.

Dazu wird die Datei /etc/usbmount/usbmount.conf mit dem Texteditor geöffnet und in die Zeile FILESYSTEMS= noch ntfs hinzugefügt, sodass die Zeile wie folgt aussieht.

FILESYSTEMS="vfat ext2 ext3 ext4 hfsplus ntfs"

Ich würde davon jedoch abraten, da NTFS viele Funktionen, die von einem Linux-System verwendet werden, nicht unterstützt. Beispielsweise gehen sämtliche Dateiberechtigungen verloren, wenn man eine Datei auf einer NTFS-formatierten Festplatte speichert. Wenn man Daten aus einem solchen Backup auf den Homeserver zurückspielt, müssen alle Dateiberechtigungen (also welcher User Eigentümer ist, wer schreiben und ausführen darf etc.) wieder manuell gesetzt werden.

Wer nur einen Windows-PC verwendet, aber trotzdem auf die Daten einer mit ext4 formatiert Festplatte zugreifen möchte, der kann dazu beispielsweise Ubuntu Live auf dem Computer starten. Dieses startet direkt von einem USB-Stick und muss nicht installiert werden.

Jetzt kann die USB-Festplatte eingesteckt werden. Ob die externe Festplatte erkannt und eingebunden wurde, kann man mit folgendem Befehl prüfen.

df -h

Wenn alles geklappt hat, ist die externe Festplatte unter /media/usb oder /media/usb0 aufgelistet.

USBMount Mountpunkt

Einfaches Backupskript mit Rsync einrichten

Nun wird das Skript, welches die Backups mit Rsync erstellt, eingerichtet. Um Ordnung zu halten, wird zuerst ein Ordner erstellt, in welchem das Skript gespeichert wird. Dann wird die Datei erstellt, die zunächst noch leer ist. Um das Skript komfortabel ausführen zu können, wird die Datei ausführbar gemacht.

mkdir ~/skripte

touch ~/skripte/backup.sh

chmod +x ~/skripte/backup.sh

Die leere Datei wird nun mit einem Texteditor geöffnet.

nano ~/skripte/backup.sh

Dann wird folgender Inhalt in den Texteditor eingefügt.

#!/bin/sh
date=`date "+%Y-%m-%dT%H_%M_%S"`
BACKUPSOURCE='/home /etc /mnt/storage/shares'
BACKUPDIR=/media/usb
rsync -av --log-file=$BACKUPDIR/rsync.log --link-dest=$BACKUPDIR/latest $BACKUPSOURCE $BACKUPDIR/back-$date
rm -f $BACKUPDIR/latest
ln -s back-$date $BACKUPDIR/latest

Mit dieser Konfiguration werden die Ordner /home, /etc und /mnt/storage/shares nach /media/usb gesichert. Dabei wird für jedes Backup ein eigener Ordner erstellt und mit dem aktuellen Datum benannt. Beide Pfade können ergänzt oder angepasst werden.

Wichtig: Wenn das Skript ausgeführt wird, muss auch eine externe Festplatte unter /media/usb vorhanden sein. Ansonsten wird das Backup auf die Systemplatte geschrieben.

Das Praktische an Rsync ist, dass es mit sogenannten Hardlinks arbeitet. Das bedeutet, dass eine Datei die bereits auf die externe Festplatte kopiert wurde, bei einem neuen Backup nicht erneut kopiert wird. Eine identische Datei benötigt also nur einmal Speicherplatz, auch wenn sie in mehreren Backups enthalten ist.

Alte Backups werden mit diesem Skript nicht gelöscht. Das ist durchaus beabsichtigt, da es nicht ungefährlich ist, ein Programm automatisch alte Backups löschen zu lassen. Das bedeutet aber auch, dass irgendwann der Speicherplatz auf der externen Festplatte ausgeht. Wenn dieser Fall eintritt, kann man einfach die ältesten Order löschen.

Lokales Backup manuell oder automatisch ausführen

Man kann sich nun für einen der beiden Wege entscheiden. Entweder führt man das lokale Backup in regelmäßigen Abständen manuell aus, oder man lässt es automatisch ausführen. Beide Varianten haben ihre Daseinsberechtigung.

Manche Leute haben beispielsweise eine externe Festplatte in einem feuerfesten Safe um die Backups bei einem Brand zu schützen. In diesem Fall wird die Festplatte beispielsweise einmal pro Monat an den Homeserver angeschlossen und das Backup manuell ausgeführt. Dafür wird dann folgender Befehl ausgeführt, nachdem die Festplatte angesteckt wurde.

sudo ~/skripte/backup.sh

Wenn die externe Festplatte dauerhaft mit dem Homeserver verbunden ist, dann kann man das Backup auch automatisieren. Hierzu wird ein Cronjob erstellt, der in regelmäßigen Abständen den Backupbefehl ausführt. Damit das Skript die nötigen Rechte hat um auch Systemdateien zu sichern, muss es als Root ausgeführt werden. Dies wird in der Datei /etc/crontab konfiguriert, die mit einem Texteditor geöffnet wird.

sudo nano /etc/crontab 

Für ein tägliches Backup wird folgende Zeile vor der abschließenden Raute eingefügt. Anstatt USERNAME muss der eigene Benutzername eingetragen werden.

@daily         root    /home/USERNAME/skripte/backup.sh

Alternativ zu @daily steht auch @weekly für ein wöchentliches, oder @monthly für ein monatliches Backup zur Verfügung.

Crontab für Backups

Mit Strg+O wird die Datei wieder gespeichert und mit Strg+X der Texteditor geschlossen. Von nun an wird einmal täglich ein Backup auf die externe Festplatte erstellt.

Schluss

Damit steht nun ein vielseitiges und zuverlässiges System bereit, das kommerziellen fertig NAS-Systemen in Funktionalität und Flexibilität in nichts nachsteht. Im Gegenteil. Da es sich beim selbstgebauten Homeserver/NAS um einen normalen Computer mit einem vollwertigen Server-Betriebssystem handelt, sind den Einsatz- und Funktionsmöglichkeiten kaum Grenzen gesetzt. Der Vorteil eines selbstgebauten Homeservers ist eben, dass sich dieser speziell auf die eigenen Bedürfnisse ausrichten lässt.

Diese Anleitung soll es insbesondere Einsteigern erleichtern ein solches System aufzusetzen und zu betreiben. Die Einsatzmöglichkeiten gehen jedoch weit über die in dieser Artikelreihe beschriebenen Möglichkeiten hinaus. So kann beispielsweise mit Tiny-Tiny RSS ein RSS-Reader eingerichtet werden der mit der App auf dem Smartphone synchronisiert wird. Damit hat mein ein komfortables Tool zur Verfügung um sich über das Weltgeschehen und andere Dinge auf dem Laufenden zu halten. Mit Tiny Tiny RSS lassen sich Dienste wie Feedly oder Inoreader mit einem eigenen System ersetzen.

Oder man installiert sich eine Wallabag Instanz, und ersetzt einen read it later Dienst wie Pocket oder Instapaper. Mit Samba lässt sich sogar ein vollwertiger Windows-Domänencontroller einrichten, wie er in Unternehmensnetzwerken verwendet wird. Somit bietet das System reichlich Potential um mit den Kenntnissen und Fähigkeiten der Administratoren und Administratorinnen zu wachen.


Übersicht: Ubuntu 20.04 Homeserver/NAS, Teil 1
Installation des Betriebssystems: Ubuntu 20.04 Homeserver/NAS, Teil 2
Grundkonfiguration: Ubuntu 20.04 Homeserver/NAS, Teil 3
Ordnerfreigaben: Ubuntu 20.04 Homeserver/NAS, Teil 4
Nextcloud: Ubuntu 20.04 Homeserver/NAS, Teil 5
Plex Mediaserver: Ubuntu 20.04 Homeserver/NAS, Teil 6
Backup: Ubuntu 20.04 Homeserver/NAS, Teil 7


Backup: Ubuntu 20.04 Homeserver/NAS, Teil 7 ist ein Beitrag von techgrube.de.

❌
❌