Microsofts Suchmaschine Bing zeigt als Hintergrund ein täglich wechselndes Bild auf der Webseite. Die Bilder sind durchweg sehr hochwertig und zeigen spanende Orte oder Szenen. Aus diesem Grund sind die Bing-Bilder nicht nur bei mir als Desktophintergrund beliebt.
Für Windows gibt es mehrere Tools, die täglich das aktuelle Bing-Bild herunterladen und als Hintergrund setzen. Das Interesse an den Bildern war so groß, dass Microsoft irgendwann sogar ein offizielles Tool herausgebracht, das die Bilder automatisch als Hintergrundbild bei Windows setzt.
Auch für Linux gibt es solche Programme. Ein Programm das diesen Job erledigt und seit einiger Zeit fehlerfrei bei mir im Einsatz ist, ist Bing Wall.
BingWall ist kostenlos und Open Source. Das Installationspaket wird aber derzeit nur als Snap-Paket angeboten. Alternativ kann natürlich der Quellcode auch selbst kompiliert werden. Dies ist auf der Projekthomepage auf GutHub beschrieben.
BingWall installieren und konfigurieren
Auf einem System das Snaps unterstützt, kann BingWall mit folgendem Befehl installiert werden. Unter Linux Mint muss zuerst die Blockade für Snaps entfernt werden, wie im Beitrag [Snap-Pakete unter Linux Mint installieren] beschrieben.
sudo snap install bing-wall
Damit das Programm im Startmenü auftaucht, ist eventuell ein Neustart nötig. Das war zumindest bei Linux Mint bei mir der Fall. Anschließend kann man BingWall starten und in die Einstellungen wechseln.
Damit das Programm die Zeitzone kennt sollte das korrekte Land ausgewählt werden.
Um automatisch das tagesaktuelle Bing-Bild als Hintergrund zu setzen, muss man den Haken bei „Set wallpaper of the day on System StartUp“ setzen. Damit wird nach jedem Systemstart das aktuelle Bing-Bild heruntergeladen und als Hintergrund gesetzt.
Leider wird das Hintergrundbild nur bei einem Neustart automatisch aktualisiert. Wenn man den Computer nicht täglich neu startet, sondern einfach zuklappt und in den Standby schickt, dann ändert sich das Hintergrundbild nicht automatisch.
Dies muss man dann manuell aktualisieren, indem man BingWall öffnet und auf den Button in der Mitte des Vorschaubildes klickt. Auf diese Weise können auch ältere Bilder als Hintergrund eingerichtet werden, wenn einem ein altes Bild besser gefällt, als das des aktuellen Tages.
Seit vielen Jahren bin ich zufriedener Linux Mint Nutzer. Immer wieder stoße ich auf Software die als Snap-Paket angeboten wird und die dich gerne nutzen möchte. Das ist unter Mint allerdings standardmäßig nicht möglich, denn die Installation dieser Pakete wird von Mint aktiv verhindert.
Das Mint entschieden hat, dass sie Snaps doof finden, nicht unterstützen und nicht verwenden ist natürlich eine völlig legitime Designentscheidung. Aktiv zu verhindern dass User Snaps installieren, ist es meiner Meinung nach nicht.
Zum Glück lässt sich die Sperre leicht entfernen.
Snapd unter Linux Mint installieren
Snapd ist die zentrale Instanz, die die Snaps auf dem System verwaltet. Dessen Installation wird standardmäßig verhindert. So lässt sich die Sperre entfernen und Snapd installieren.
Zuerst muss die Datei /etc/apt/preferences.d/nosnap.pref entfernt werden, welche die Installation von Snapd verhindert.
sudo rm /etc/apt/preferences.d/nosnap.pref
Anschließend die Paketquellen aktualisieren.
sudo apt update
Jetzt kann Snapd installiert werden
sudo apt install snapd
Und nun können auch Snaps unter Linux Mint installiert werden. Beispielsweise der Snap Store
sudo snap install snap-store
Oder das von mir sehr geschätzte Screenshot-Tool Flameshot
sudo snap install flameshot
Damit die Programme im Startmenü von Linux Mint auftauchen, war bei mir teilweise ein Neustart des Rechners notwendig. Erst dann hat sich das Menü aktualisiert.
Andreas hat einen Nextcloud-Server auf Debian-Basis installiert und dabei seine Vorgehensweise dokumentiert. Diese basiert zum großen Teil, aber nicht ausschließlich auf meinem Homeserver-Tutorial zu Ubuntu 18.04 [Homeserver/NAS mit Ubuntu 18.04: Teil 1, Einleitung, Hardware und Kosten]. Jedoch mit einigen Abweichungen, da sich Debian und Ubuntu doch in einigen Details unterscheiden.
Die Dokumentation seiner Vorgehensweise hat er mit freundlicherweise zur Veröffentlichung zukommen lassen.
In dieser Anleitung geht es darum Debian Buster (10) Server zu installieren, dazu wird das Serversystem ohne Gui und lediglich mit OpenSSH sowie Systemwerkzeugen installiert.
Im Rechner befindet sich eine SSD für das System und eine große HDD als Datenlaufwerk, diese HDD wird während der Installation von Debian Server als /mnt/storage eingebunden.
Nextcloud soll dann so funktionieren das man über die Sambafreigabe die Daten im Netzwerk überspielt und diese Daten einfach in Nextcloud übernimmt, also nicht über Internet hochladen, sondern einfach über das eigene Netzwerk einspielt.
Debian Server ist bereits installiert und der User ist angemeldet, wir fahren wie folgt fort:
Bei der Abfrage nach Namen usw. muss man nichts eingeben, einfach Enter drücken, am Ende mit Ja bestätigen.
sudo smbpasswd -a heimnetz
Neues Passwort für den User „heimnetz“ eingeben und ein weiteres Mal bestätigen. Nun werden die Ordner für die Samba-Freigaben angelegt und die Benutzerrechte vergeben.
Nun wird die Datenbank für Nextcloud konfiguriert. Zuerst loggt man sich im Datenbankserver ein.
Anschließend wird die Datenbank für NExtcloud angelegt. Achtung: ‚passwort‘ unbedingt durch ein selbst gewähltes Passwort ersetzen.
mysql -u root -p
CREATE DATABASE nextclouddb;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON nextclouddb.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Nach einem weiteren „exit“ arbeitet man wieder mit normalen Userrechten.
Es wird jetzt noch das „externe“ Laufwerk eingebunden.
Bei den Apps findet man unter dem Punkt deaktivierte Apps die App External Storage Support, welche mit einem Klick auf aktivieren verfügbar gemacht wird.
Zum Einbinden der vorhandenen Ordner gehen wir wieder auf das Symbol in der rechten oberen Ecke und anschließend auf Einstellungen. Im linken Bereich findet man verwirrender Weise zwei Punkte mit dem Namen „Externe Speicher„. Zum Einrichten benötigen wir den unteren.
Ordnername wird entsprechend der Freigabe benannt. Z.B. lokale Videos
Externer Speicher ist SMB/CIFS
Authentifizierung ist Benutzername und Passwort
Konfiguration:
Host ist localhost Share ist der Name der Freigabe. Z.B. Video Entfernter Unterordner bleibt leer Domain bleibt ebenfalls leer Benutzername ist heimnetz oder heimgast. Je nachdem ob dieDateien mit Schreibrechten (heimnetz) oder aus Sicherheitsgründen nur mit Leserechten (heimgast) eingebunden werden sollen Passwort ist das zum Benutzername gehörende Passwort
Ein Klick auf den kleinen Haken am Ende des Formularfeldes bindet den Ordner in Nextcloud ein.
Optionale Nextcloud-Konfigurationen
Da NextCloud ab und zu Dateien blockiert (File is locked), füge ich folgendes in der config.php ein:
Mittlerweile ist Ubuntu 20.04 erschienen. Hierbei handelt es sich wieder um eine LTS-Version (long term support), die 5 Jahre mit Updates versorgt wird. Also bis April 2025. Damit wird Ubuntu 18.04 abgelöst, auf welchem die bisherige Homeserver-Anleitung basiert.
Ubuntu 18.04 war ebenfalls eine LTS-Version und wird noch bis April 2023 mit Sicherheitsupdates versorgt. Wer also bereits einen Server, basierend auf der vorherigen Anleitung betreibt, der kann diesen auch noch viele Jahre sicher weiterverwenden.
Wer jedoch ein eigenes NAS auf Ubuntu-Server-Basis neu einrichten möchte, der greift jetzt natürlich zur Version 20.04.
Im laufenden Betrieb wird man keine großen Änderungen zwischen Ubuntu 18.04. und 20.04. feststellen. Jedenfalls bei der Server-Version. Trotzdem haben sich einige Dinge geändert.
Bisher wurden zwei Installationsmedien angeboten. Eine mit dem klassischen Debian-Installer (Alternate-CD) und eine mit der Eigenentwicklung Subiquity. Mit Ubuntu 20.04 wurde die Alternate-CD eingestellt. Der Subiquity-Installer ist somit der neue Standard und die bisherige Artikelreihe funktioniert an dieser Stelle nicht mehr.
Unter anderem aus diesem Grund habe ich mich entschlossen, die Artikelreihe Homeserver/NAS auf Basis von Ubuntu Server neu zu erstellen. Dieses Mal auf Basis von Ubuntu Server 20.04. Außerdem möchte ich eine Reihe weiterer Änderungen vorschlagen oder vorstellen.
Da ich diese Tutorial-Reihe bewusst so einsteigerfreundlich wie möglich halten möchte, will ich eine zusätzliche Hardware-Option vorstellen. Neben der Installation mit einem klassischen Software-Raid, wird auch die Installation mit einem externen RAID-Gehäuse behandelt. Dies reduziert den Einrichtungs- und Wartungsaufwand nochmals erheblich.
Aus dem gleichen Grund wird Nextcloud und der Plex-Mediaserver als Snap-Paket installiert. Mir ist klar, das Snaps durchaus umstritten sind und auch ich sehe Canonicals erneuten Alleingang bei diesem Thema kritisch. Ich habe beim Einrichten und Testen des hier beschriebenen Setups jedoch festgestellt, dass die Nutzung der Snaps für Nextcloud und Plex die Einrichtung und Wartung extrem vereinfachen. Und genau das ist eines der Ziele dieser Artikelreihe. Auch aus Sicherheitsgründen dürfte die Verwendung der Snaps Vorteile bieten. Wer lieber auf die klassische Variante mit separat installiertem Webserver, Datenbank etc. setzen möchte, der kann gerne die Artikelreihe zu Ubuntu 18.04 anschauen. Die Installation und Konfiguration funktioniert unter Ubuntu 20.04 weitestgehend identisch.
Immer mehr Internetanschlüsse haben leider keine öffentliche IPv4-Adresse mehr (DS-Lite), sodass der Zugriff über das Internet auf den Homeserver mit klassischen DynDNS-Diensten nicht mehr funktionieren. Daher wird auch der Zugriff über das Internet auf den Homeserver mit einem DS-Lite-Anschluss behandelt werden.
Vor- und Nachteile eines selbstgebauten Homeserver/NAS
Ein selbstgebauter Homeserver/NAS muss mit verschiedenen Systemen konkurrieren. Und jedes Setup hat seine eigenen Vor- und Nachteile. Konkurrenten sind vor allem fertige NAS-Systeme von Herstellern wie Synology oder QNAP. Aber auch Clouddienste wie Dropbox oder Google Drive.
Der Vorteil einer selbstgebauten Lösung ist vor allem die Flexibilität. So kann man die Hardware so dimensionieren, wie man sie benötigt. Außerdem lässt sich jede beliebige Software installieren und man ist nicht darauf angewiesen, dass der Hersteller diese für das eigene NAS als Plugin zur Verfügung stellt.
Ein weiterer Vorteil ist die Langlebigkeit. Ubuntu LTS-Versionen, zu denen 20.04 gehört, werden 5 Jahre mit Sicherheitsupdates versorgt. So lange kann das System weitgehend unverändert eingesetzt werden. Eine anschließende Aktualisierung auf eine neue Betriebssystemversion ist problemlos möglich, da ganz normale Computerhardware verwendet wird. Und selbst wenn Ubuntu nicht mehr weiterentwickelt werden sollte, kann man jederzeit auf ein anderes Betriebssystem umsteigen, wobei dann natürlich eine Neuinstallation fällig ist.
Wie lange ein fertiges NAS-System vom Hersteller unterstützt wird, ist beim Kauf völlig unklar. Gerade No-Name-Produkte sind eher dafür bekannt, dass sie überhaupt keine Sicherheitsupdates erhalten. Die bekannten Hersteller verhalten sich im NAS-Sektor zwar recht vorbildlich, dass dies aber die kommenden Jahre so bleibt und dass die Firma weiter existiert kann niemand garantieren.
Ein Vorteil gegenüber Clouddiensten ist die Privatsphäre. Wer einen eigenen Homeserver oder NAS in den eigenen vier Wänden betreibt, der muss seine Daten keinem Dienstleister wie Google, Dropbox anderen Unternehmen anvertrauen.
Die Anforderungen
Folgende Anforderungen soll der selbstgebaute Homeserver/NAS auf Basis von Ubuntu Server 20.04 erfüllen.
Möglichst geringer Stromverbrauch, da das System 24/7 laufen soll.
Möglichst zuverlässig und wartungsarm.
Schutz der Daten vor einem Festplattenausfall durch Speicherung auf mehreren Datenträgern.
Bereitstellen von Netzwerkfreigaben zum einfachen Zugriff auf die Daten mit Windows und Linux.
Synchronisieren bestimmter Daten über mehrere Geräte (sodass diese auch lokal vorliegen).
Bereitstellen von zentralem Adressbuch und Kalender und Synchronisierung mit Mobilgeräten
Zugriff auf die Daten über das Internet von unterwegs.
Streamen von Audio und Video über das Internet.
Tägliches automatisches und verschlüsseltes Backup der wichtigsten Daten auf einen Cloudspeicher außer Haus.
Zusätzliches Backup sämtlicher Daten auf einen externen Datenträger.
Die verwendete Software
Als Betriebssystem kommt Ubuntu Server 20.04 zum Einsatz. Die Server-Version hat in den letzten Jahren bewiesen, dass sie sehr robust und zuverlässig ist. Aus diesem Grund setze ich weiterhin auf dieses Betriebssystem.
Netzwerkfreigaben für das lokale Netzwerk werden von SAMBA bereitgestellt. SMB/CIFS-Freigaben mit SAMBA sind schnell und werden von allen gängigen Betriebssystemen (Linux, Windows, MacOS) standardmäßig unterstützt.
Nextcloud wurde in den letzten Jahren sehr aktiv weiterentwickelt und mit vielen neuen Funktionen ergänzt. Erfreulicherweise hat sich der Update-Mechanismus von Nextcloud als sehr sicher und zuverlässig herausgestellt, was das Upgrade auf neue Nextcloud-Versionen zum Kinderspiel macht. Das ist alles andere als selbstverständlich. Wenn es um die Synchronisierung von Dateien, Kontakten oder Kalendereinträgen geht, führt auf daher kaum ein Weg an Nextcloud vorbei.
Den Plex-Mediaserver verwende ich nach wie vor zum Streamen von Musik und Video über das lokale Netzwerk und über das Internet. Plex ist leider keine Open-Source-Anwendung. Gegenüber den mir bekannten freien Projekten hat Plex den Vorteil, dass Apps und Clients für eine Vielzahl von Systemen vorhanden sind. So lassen sich Videos und Musik gleichermaßen auf das Smartphone, den Fernseher oder den Computer übertragen.
Die Verschlüsselung der Verbindung über das Internet wird mit einem kostenlosen Let’s Encrypt Zertifikat abgesichert. So lassen sich die Daten sicher über das Internet übertragen, ohne dass es zu Problemen und Fehlermeldungen kommt, die mit selbstsignierten Zertifikaten auftreten.
Die verschlüsselte Sicherung der Daten in der Cloud übernimmt Duplicati. Auch dieses Projekt wird erfreulicher Weise sehr aktiv weiterentwickelt.
Für das zweite Backup auf eine externe Festplatte setze ich wieder auf ein Backupskript und Rsync. Damit werden sämtliche Daten täglich gesichert, ohne dass bereits vorhandene Dateien neu übertragen und doppelt gespeichert werden. Rsnapshots, welches ich in der letzten Version der Artikelreiche verwendet habe, hat sich als unnötig kompliziert in der Konfiguration und Verwendung herausgestellt.
Die Hardware
Grundsätzlich eignet sich jeder Computer um daraus einen Homeserver/NAS zu erstellen. Wer also noch alte Hardware hat, der kann diese selbstverständlich verwenden. Mit einem externen RAID-Gehäuse lässt sich sogar ein alter Laptop sinnvoll zum Homeserver umrüsten. Einzig den Stromverbrauch sollte man im Blick behalten, wenn man seinen alten Computer umfunktionieren will. Ein alter Gaming-PC ist hier eventuell nicht gut geeignet, wenn der Homeserver 24/7 laufen soll.
Für alle die mit dem Gedanken spielen sich neue Hardware anzuschaffen, gebe ich ein paar Anregungen, welche Hardware geeignet sein kann. Die unten aufgeführte Hardware soll lediglich ein Vorschlag sein, den man an die eigenen Bedürfnisse anpassen sollte, je nachdem welche Ansprüche man an das System hat.
Alle Optionen haben eines gemeinsam, und darauf basieren auch die folgenden Schritte bei der Installation des Systems. Das Betriebssystem wird auf einem eigenen, separaten Datenträger installiert. Beispielsweise eine kleine SSD. Die wichtigen Daten wie Bilder, Videos und Dokumente werden auf einem RAID-System gespeichert. Das bedeutet, dass diese Daten immer auf zwei Festplatten gleichzeitig gespeichert werden, sodass bei einem Festplattenausfall keine Daten verloren gehen.
Die Installation des Betriebssystems auf einem separaten Datenträger erleichtert die Installation des Betriebssystems ungemein. Hierzu gehe ich bei der Installation des Betriebssystems näher ein. Die geringere Ausfallsicherheit für das Betriebssystem halte ich für vertretbar. Ist dieser Datenträger defekt, muss lediglich das Betriebssystem neu installiert werden, und veränderte Konfigurationsdateien aus einem Backup kopiert werden. Mit ein bisschen Routine kann dies in einer halben Stunde erledigt werden. Das Wiederherstellen eines defekten RAID für das Betriebssystem auf der Kommandozeile ist dagegen sehr viel komplizierter.
Option 1: Der Selbstbau PC
Ein Selbstbau-PC ist die mit Abstand flexibelste Option um sich einen eigenen Homeserver/NAS zu bauen. So kann man das System komplett an die eigenen Anforderungen anpassen. Sowohl was Leitung, als auch was Preis angeht. Aus diesem Grund ist es schwer, einen Bauvorschlag zu erstellen, der allen Anforderungen gerecht wird. Da bei mir kein Neukauf ansteht, kann ich in diesem Fall auch keine eigene und aktuelle Hardware vorschlagen.
Für den Selbstbau-PC empfehle ich daher den Bauvorschlag für den 7-Watt-Spar-Mini aus der Zeitschrift c’t Ausgabe 24/2019. Die verwendete Hardware ist sparsam und gut für einen Homeserver geeignet. In Ausgabe 25/2019 wird noch auf Probleme bei der Nutzung mit Linux hingewiesen. Diese Beschränkten sich jedoch auf die Verwendung des Display-Port Ausgangs (HDMI war kein Problem) und des optionalen WLAN-Adaptern. Außerdem wurde der USB-Bootstick nicht automatisch erkannt. Man musste zuerst das UEFI aufrufen und dort den USB-Stick als Bootmedium auswählen. Ansonsten gab es keine Probleme mit Linux. Möglicherweise sind die Probleme mit den aktuellen Linux-Versionen auch behoben.
Den vollständigen Artikel zum Bauvorschlag kann man bei Heise für 1,49 € kaufen. Das komplette Heft mit weiteren Bauvorschlägen gibt es für 5,20 €. Wer den Bauvorschlag nachbauen möchte, erfährt dort alle Details zum Selbstbau-PC.
Im genannten Bauvorschlag kommt weitestgehenduntenstehende Hardware zum Einsatz. Allerdings habe ich die Datenträger angepasst, damit sie zu dieser Anleitung passen. In das Gehäuse passen lediglich 2x 2,5″ Datenträger. Diese werden für das RAID-System verwendet. Die Schreibgeschwindigkeit der kleinen Datenträger ist in der Regel geringer, als bei großen 2,5″ Festplatten. Dafür ist der Stromverbrauch geringer. Alternativ kann man anstatt der Festplatten auch SSDs im Homeserver einbauen. Wer mehr Speicherplatz braucht und große 3,5″ Festplatten nutzen möchte, der benötigt ein größeres Gehäuse. Dann ist es sinnvoll, ein Mainboard, Netzteil und Gehäuse getrennt zu kaufen. Alternativ kann man auch auf die internen Festplatten verzichten und ein externes Festplattengehäuse über USB anschließen, wie in Option 2 beschrieben. Das Betriebssystem wird auf einer NVMe-SSD installiert, die direkt auf das Mainboard gesteckt wird.
Komponente
Modell
Preis ca.
Barebone (Gehäuse, Netzteil, Mainboard)
Asrock Deskmini A300 (90BXG3G01-A30GA0W)
138 €
Prozessor
AMD Athlon 200 GE, 2x 3,2GHz, (YD200GC6FBBOX)
47 €
RAM
Crucial S0-DIMM 8GB, DDR4-2666 (CT8G4SFS8266)
28 €
NVMe-SSD für das Betriebssystem
Kingston A2000 NVMe PCIe 250GB (SA2000M8/250G)
39 €
2,5″ Festplatten für Nutzerdaten (2x)
Western Digital RED 2,5 Zoll, 1TB
2x 77€
oder 2,5″ SSD
Western Digital RED SA500 NAS 2,5″ SATA SSD, 1TB
2x 111€
Gesamtpreis mit 2x SATA-Festplatten
406 €
Gesamtpreis mit 2x SATA-SSDs
474 €
Option 2: Mini-PC mit externem RAID-Gehäuse
Diese Variante ist für diejenigen interessant, die keine Lust auf Hardwarebasteln haben, aber trotzdem einen eigenen Homeserver aufsetzen möchten. In dieser Version wird ein beliebiger Fertig-PC mit einem externen RAID-Gehäuse kombiniert. Als PC bietet sich dabei ein Mini-PC wie beispielsweise ein Intel NUC an. Alternativ kann auch jeder vorhandene Computer verwendet werden. Beim Computer muss lediglich auf Linux-Kompatibilität geachtet werden. In den meisten Fällen ist dies jedoch nur dann ein Problem, wenn Hardware verwendet wird, die sehr neu auf dem Markt ist. Ältere Computersysteme funktionieren in der Regel problemlos mit Linux. Untenstehende Konfiguration ist ein Beispiel. Wie gesagt, grundsätzlich ist jeder (Mini-)PC geeignet.
Komponente
Modell
Preis ca.
Mini PC Barebone (Gehäuse, Netzteil, Mainboard, CPU)
Über USB wird ein externes RAID-Gehäuse angeschlossen, auf dem die Daten gespeichert werden. So profitiert man von der Datensicherheit die ein RAID bietet, spart sich jedoch die Einrichtung, Wartung und Überwachung eines Software-Raids. Beim Kauf eines RAID-Gehäuses muss das RAID-Level 1 oder höher unterstützt. Bei RAID 0 oder JBOD werden die Daten nicht auf mehrere Festplatten gespiegelt, sodass keine zusätzliche Datensicherheit entsteht.
Die von mir verwendete Icy Box IB-RD3621U3 erfüllt seit Langem problemlos ihren Dienst an einem Linux-PC. Allerdings muss ich darauf hinweisen, dass ich den eingebauten Lüfter gegen ein anderes Modell getauscht und den Luftauslass im Gehäuse vergrößert habe. Wenn große Datenmengen geschrieben wurden, wurden die Festplatten mit dem Standardlüfter so heiß, dass ein Berühren schmerzhaft war. Ich habe mir daher Sorgen um die Lebensdauer der Festplatten gemacht. Andere Modelle haben dieses Problem möglicherweise nicht.
Icy Box IB-RD3621U3
53 €
oder FANTEC Qb-X2US3R
68 €
Zusätzlich werden zwei Festplatten benötigt. Vor einiger Zeit stellte sich heraus, dass alle Festplattenhersteller (nicht nur Western Digital) das SMR (Shingled Magnetic Recording) Verfahren für ihre Festplatten verwenden. Das Verfahren ermöglicht höhere Datendichten pro Scheibe, wodurch weniger Scheiben verbaut werden müssen und somit Produktionskosten gespart werden. Der Nachteil ist, dass die Schreibgeschwindigkeit dramatisch einbricht, wenn regelmäßig größere Datenmengen geschrieben werden, da teilweise auch vorhandene Daten neu geschrieben werden müssen. Siehe u.a. [Computerbase: NAS-Festplatten: WD Red fortan nur als „Plus“ oder „Pro“ ohne SMR]. Das gesagte gilt gleichermaßen für die anderen Hersteller. Wer mit den genannten Nachteilen leben kann, der kann weiterhin die regulären günstigen NAS-Festplatten kaufen. Ich würde jedoch zu den teureren WD Pro greifen, auch wenn es mich ärgert. Denn diese Festplatten verwenden nach wie vor das klassische und teurere Aufzeichnungsverfahren.
Für ein RAID1 werden zwei Festplatten gleicher Größe benötigt.
Western Digital WD RED 4TB (SMR Verfahren)
2x 100 €
Western Digital WD RED 4TB PRO
2x 167 €
Insbesondere das externe RAID-Gehäuse kann auch mit jedem anderen Computer sinnvoll kombiniert werden. Dieses lässt sich beispielsweise auch an einen Selbstbau-PC anschließen. Die Festplatten werden dann nicht an das Mainboard des PCs angeschlossen, sondern im externen RAID-Gehäuse verbaut. Dieses wiederum wird über USB mit dem Mainboard verbunden.
Mit diesem Setup spart man sich auch beim Selbstbau-PC das Einrichten, Warten und Überwachen des Software-RAIDs. Dies übernimmt komplett das externe RAID-Gehäuse. Damit lässt sich auch ein bereits vorhandener Computer (sogar ein Raspberry Pi) zu einem vollwertigen NAS umrüsten, auf dem Daten sicher vor einem Festplattenausfall gespeichert werden können.
Preise für die komplette Setup mit Mini-PC und externem RAID-Gehäuse
Günstigste Variante
Intel NUC, Icy Box, 2x WD RED
504 €
Alternative
Intel NUC, Fantec RAID-Gehäuse, 2x WD RED Pro
653 €
Die laufenden Kosten
Neben den Anschaffungskosten sind vor allem die laufenden Kosten, also der Stromverbrauch, wichtig. Gerade der Stromverbrauch ist jedoch extrem von der verwendeten Hardware und auch von der Konfiguration abhängig. Es ist daher schwer, hier eine allgemeine Aussage zu machen.
Wer bereits vorhandene Hardware nutzen möchte, der sollte deren Stromverbrauch messen und ausrechnen, wie viel der Betrieb kostet, wenn der Homeserver 24 Stunden am Tag läuft. Hierfür eignen sich günstige Strommeßgeräte, die man zwischen die Steckdose und das Netzteil des Homeservers schaltet. Zwar sind diese Geräte nicht hundertprozentig korrekt, es genügt jedoch, um herauszufinden, in welcher Größenordnung die verursachten Kosten liegen werden.
Die Geräte haben einen weiteren Vorteil. Sie sind nicht nur günstig, sie können den Stromverbrauch auch über einen längeren Zeitraum aufzeichnen. Zeichnet man den Stromverbrauch über eine komplette Woche auf, so erhält man ein gutes Bild, wie viel Strom das eigene Setup im Durchschnitt verbraucht. Bei vielen Geräten kann man auch den eigenen Strompreis eingeben, sodass die Kosten gleich ausgerechnet werden.
Ansonsten lassen sich die Kosten auch leicht selbst ausrechnen. Bei einer Leistungsaufnahme von durchschnittlich 25 Watt und einem Strompreis von 0,3 €/kWh sieht die Rechnung folgendermaßen aus.
25 Watt x 24 Stunden x 365 Tage / 1000 x 0,3 € = 65,7 €/Jahr
25 Watt ist ein realistischer Wert für einen PC mit zwei drehenden 3,5″ Festplatten. Und dies sind die Stromkosten, wenn der Homeserver 24 Stunden am Tag mit drehenden Festplatten aktiv ist. Wer die Festplatten bei Nichtbenutzung in den Standby schickt, und auch ansonsten ein kleines und sparsames System verwendet, kann die Stromkosten deutlich reduzieren.
Berücksichtigt man noch die Anschaffungskosten scheint das relativ viel, im Vergleich zu einem Dropbox-Abo, das ca. 120 €/Jahr kostet und keine Anschaffungskosten benötigt. Allerdings kostet Dropbox 120 € pro Jahr und pro Benutzer. Mit jeder zusätzlichen Person, die den Homeserver verwendet, wird dieser finanziell attraktiver. Bei Google Drive muss man knapp 100 € pro Jahr für 2 TB Speicherplatz bezahlen. Dieser Speicherplatz kann zwar von mehreren Personen geteilt werden, trotzdem fällt der Preis pro Jahr an.
Was die laufenden kosten angeht, ist man mit einem eigenen Homeserver oder NAS also fast immer günstiger als mit einer Cloudlösung. Entscheidend sind also viel mehr die Anschaffungskosten. Je nachdem welche Anforderungen man hat und welche Hardware bereits vorhanden ist, können diese zwischen 0 € und mehren hundert Euro liegen. Wenn es keine Hardwareausfälle gibt, kann ein solches System problemlos 5-10 Jahre betrieben werden, ohne dass weitere Investitionen nötig sind.
Zuerst wird das Betriebssystem Ubuntu Server 20.04 (Focal Fossa) installiert. Mit dieser Version wurde ein neues Installationsprogramm eingeführt, sodass sich die Installation von den Vorgängerversionen unterscheidet.
Das Kapitel zur Partitionierung der Festplatten unterteilt sich in zwei Teile. Je nachdem ob man ein System mit internen Festplatten und Software-Raid verwendet, oder ob man ein externes RAID-Gehäuse nutzt, läuft die Partitionierung anders ab. Mit einem RAID-Gehäuse ist die Installation noch einfacher, da die Einrichtung des Software-Raids komplett entfällt.
Ubuntu 20.04 für Server herunterladen
Das Betriebssystem kann kostenlos heruntergeladen und verwendet werden. Ich empfehle den Download von der deutschsprachigen Seite ubuntuusers.de
Auf der Downloadseite von ubuntuusers.de wählt man die Server-Edition, die sich über den Direktlink als ISO-Datei herunterladen lässt.
ISO-Datei auf einen USB-Stick zur Installation übertragen
Das Betriebssystem wird später von einem USB-Stick auf dem Homeserver installiert. Daher muss die ISO-Datei zuerst auf einen USB-Stick übertragen werden. Allerdings kann man die Datei nicht einfach auf den Stick kopieren. Stattdessen wird ein Programm benötigt, das aus der ISO-Datei einen bootfähigen USB-Stick erstellt.
Ich empfehle hierzu das Programm Balena Etcher. Etcher ist kostenlos, Open Source und sowohl für Linux, als auch für Windows und MacOS verfügbar.
Für Linux steht das Programm als Appimage zur Verfügung. Nach dem Download erhält man eine ZIP-Datei, die man zuerst entpacken muss. Daraus erhält man eine AppImage-Datei, die man mit einem Doppelklick direkt starten kann.
Wenn das Programm nicht startet, muss man der Datei möglicherweise erlauben, als Programm ausgeführt zu werden. Unter Ubuntu oder Linux Mint klickt man dazu mit der rechten Maustaste auf die AppImage-Datei und wählt im Kontextmenü den Punkt „Eigenschaften“. Hier wechselt man zum Reiter „Zugriffsrechte“ und setzt den Haken bei „Der Datei erlauben sie als Programm auszuführen“. Anschließend sollte sich Etcher mit einem Doppelklick auf die Datei öffnen.
Das Übertragen der ISO-Datei auf den USB-Stick mit Etcher ist dann selbsterklärend. Nachdem der Kopiervorgang abgeschlossen ist, kann man den Stick entnehmen und an den Homeserver anstecken, um die Installation zu starten.
Installation von Ubuntu Server 20.04 starten
Nun kann das Betriebssystem auf dem Homeserver vom USB-Stick installiert werden. Hierzu muss der Computer vom Stick gebootet werden. Wie dies funktioniert ist leider bei jedem Computer unterschiedlich.
Häufig erkennt der Computer einen bootfähigen USB-Stick und bootet diesen automatisch.
Ansonsten wird kurz nach dem Starten im Bootscreen angezeigt, mit welcher Taste man das Bootmedium auswählen kann. Häufig ist das die Taste F11 oder F12, die beim Starten des Computers gedrückt werden muss.
Machmal muss das Bootmedium auch im Bios/UEFI eingestellt werden. Wie dieses gestartet wird, wird ebenfalls im Bootscreen angezeigt. Meistens lässt sich das Bios, bzw. UEFI mit der Entfernen-Taste (DEL) aufrufen.
Hat dies geklappt, wird man vom Ubuntu Installationsprogramm begrüßt.
Zuerst wird die Sprachauswahl gestartet. Hier wählt man die gewünschte Sprache, in diesem Fall „Deutsch„. Unter Umständen folgt nun der Hinweis, dass eine neue Version des Installationsprogramms vorliegt. Hier wählt man „Aktualisieren auf neuen Installer„. Wenn das Installationsprogramm bereits aktuell ist, kommt diese Abfrage nicht.
Im nächsten Schritt wird das Tastaturlayout und Sprache festgelegt. Mit einer normalen deutschen Tastatur wählt man hier dementsprechend sowohl bei Belegung als auch bei Variante „Deutsch“ aus.
Dann folgt die Konfiguration der Netzwerkschnittstelle. Wer sich hier unsicher ist, der lässt die Einstellungen unverändert und geht direkt auf den Button „Erledigt„. Wer eine statische IP-Adresse für seinen Server vergeben möchte und bereits weiß welche IP-Adresse frei ist, also nicht vom DHCP-Server des Routers vergeben wird, der kann hier direkt eine statische IP-Adresse vergeben. Die Konfiguration im Installer ist einfacher als die nachträgliche Konfiguration über Textdateien.
Die nun folgende Abfrage nach einem Proxy kann in einem Heimnetzwerk einfach mit dem Button „Erledigt“ übersprungen werden.
Im nächsten Schritt kann man die Server ändern, von denen das System Software und Betriebssystemupdates bezieht. Auch diesen Schritt kann man mit „Erledigt“ direkt überspringen.
Partitionierung der Datenträger
Nun folgt die Partitionierung und Formatierung der Datenträger. Dies unterscheidet sich, je nachdem ob man die klassische Variante mit eingebauten Festplatten und Software-Raid nutzt, oder ob man ein externes RAID-Gehäuse verwendet. Hier muss man dementsprechend die Option wählen, die zum eigenen Setup passt.
In dieser Anleitung wird das Betriebssystem in beiden Fällen auf einem einzelnen separaten Datenträger installiert. Beispielsweise einer kleinen, internen SSD. Die eigentlichen Daten, wie Bilder, Videos, Dokumente lagern auf einem RAID System, sodass diese Daten vor einem Festplattenausfall geschützt sind.
Die Installation des Betriebssystems auf einem separaten Datenträger vereinfacht die Einrichtung deutlich, denn in diesem Fall kann die automatische Partitionierung für die Systemfestplatte verwendet werden. Dies ist ein enormer Vorteil, da die manuelle Partitionierung der Systemplatte von System zu System unterschiedlich ist, sodass hierfür kaum eine allgemeingültige Anleitung geschrieben werden kann. Die Partitionierung unterscheidet sich, je nachdem ob das Mainboard ein UEFI, ein UEFI im Bios-Kompatibilitätsmodus oder noch ein altes BIOS besitzt. Teilweise wird nur die Einrichtung eines Master-Bootrecords (MBR) unterstützt, oder nur die GUID-Partition-Table (GPT).
Die automatische Partitionierung erkennt selbständig welche Einstellungen für die Systemplatte vorgenommen werden müssen, sodass die hier beschriebenen Schritte auf allen Systemen funktionieren sollten.
Die geringere Ausfallsicherheit für das System halte ich für vertretbar. Auf der Systemplatte liegen keine wichtigen Daten, da Videos, Dokumente, Bilder usw. sicher auf dem RAID gespeichert werden. Somit muss im Falle eines Ausfalls der Systemplatte nur die Installation des Betriebssystems wiederholt werden. Von den Konfigurationsdateien existiert hoffentlich ein Backup, sodass die Konfigurationsdateien nur kopiert werden müssen. Im Zweifel ist dies sogar schneller und einfacher als die Wiederherstellung eines defekten RAIDs auf der Kommandozeile.
Option 1: Interne Festplatten, Software RAID
Bei dieser Option wird das Betriebssystem auf einem einzelnen separaten Datenträger installiert. Zusätzlich wird ein Software-RAID aus zwei weiteren, ebenfalls internen Datenträgern eingerichtet. Die Daten auf diesem RAID werden immer auf beide Festplatten gespiegelt, sodass keine Daten verloren gehen, wenn eine Festplatte ausfällt.
Zuerst wird die automatische Partitionierung für die Systemplatte verwendet. Hierzu wählt man die Option „Eine ganze Festplatte verwenden„. Mit den Pfeiltasten navigiert man nach unten. Mit der Enter-Taste öffnet sich ein Menü, das alle vorhandenen Datenträger auflistet. Hier wählt man den Datenträger aus, auf dem das Betriebssystem installiert werden soll. Diesen Datenträger erkennt man am einfachsten an der Größe. Für das RAID werden die beiden gleich großen Festplatten verwendet. Der dritte Datenträger mit einer anderen Größe wird für das System verwendet.
Mit dem Button „Erledigt“ bestätigt man die Auswahl. Damit ist die Einrichtung der Systemplatte bereits abgeschlossen. Nun wird eine Übersicht der vorhandenen Datenträger und deren Partitionierung angezeigt.
Oben sieht man die Systemplatte, die bereits automatisch partitioniert wurde. Dies kann je nach verwendetem System anders aussehen als in unten stehendem Screenshot. Darunter sieht man die beiden nicht verwendeten Datenträger für das RAID.
Um das Software-RAID unter Ubuntu Server 20.04 zu erstellen, wählt man nun den Menüpunkt „Software-Raid (md) erstellen„.
Im folgenden Schritt kann auf Wunsch ein Name vergeben werden. Man kann jedoch auch die Vorgabe „md0“ lassen. In jedem Fall sollte man einen einfachen Namen ohne Leerzeichen verwenden.
Als RAID-Level wählt man „1 mirrored“. Damit werden alle Daten auf beiden Festplatten gespiegelt. Es sind also immer alle Daten auf beiden Festplatten vorhanden.
Unter „Geräte“ aktiviert man die beiden nicht verwendeten Festplatten und wählt anschließend „Erledigt„.
Man gelangt nun wieder zur Übersicht mit den verfügbaren Datenträgern und Partitionen. Unter „Verfügbare Geräte“ ist nun ein neuer Datenträger entstanden. Das gerade erstellte RAID-System. Im nächsten Schritt muss nun festgelegt werden, wie das System das RAID verwenden soll.
Hierzu wechselt man mit den Pfeiltasten so lange durch die Liste, bis das RAID-System (md0 neu) aktiviert ist. Mit einem Druck auf die Enter-Taste öffnet sich ein neues Menü. Hier wählt man die Option „Formatieren“ aus.
Nun öffnet sich das Fenster mit den Formatierungsoptionen. Bei Format kann man die Option „ext4“ unverändert lassen. Hierbei handelt es sich um das Standarddateisystem von Ubuntu und vielen anderen Linux-Betriebssystemen. Ext4 hat sich über viele Jahre bewährt.
Unter „Mount“ wird der Ordner angegeben, über welchen das RAID-System später in das Betriebssystem eingebunden wird. Laufwerke haben unter Linux keine Buchstaben, wie unter Windows, sondern werden als Ordner eingebunden. Hier sollte man den Mountpunkt unbedingt ändern. Dazu wählt man zuerst die Option „Andere“ und gibt anschließend einen Pfad an. In dieser Artieklreihe verwende ich /mnt/storage. Mit „Erledigt“ werden die Einstellungen übernommen.
Nun kommt man wieder zur Zusammenfassung der Dateisystemkonfiguration. Hier sollte man nun einerseits die Partitionierung der Systemplatte und das RAID-System unter /mnt/storage sehen. Ist hier alles korrekt, kann die Partitionierung mit „Erledigt“ abgeschlossen werden und die Installation des Betriebssystems fortgesetzt werden. Im folgenden Schritt muss man noch bestätigen, dass die gerade vorgenommenen Einstellungen übernommen werden sollen. Hierbei wird darauf hingewiesen, dass alle eventuell vorhandenen Daten auf den Festplatten verloren gehen. Dies bestätigt man mit „Fortfahren„.
Option 2: Externes USB RAID-Gehäuse
Auch bei dieser Option wird das Betriebssystem auf einem separaten Datenträger installiert, aus den oben genannten Gründen. Die wichtigen Daten, wie Bilder, Videos und Dokumente landen jedoch nicht auf einem intern verbauten Software-Raid, sondern auf einem externen RAID-Gehäuse, das über USB angeschlossen ist.
Dieses Setup vereinfacht die Installation und die spätere Wartung nochmals deutlich. Mit dieser Methode muss man weder ein RAID-System einrichten, noch dieses überwachen. Dies übernimmt das RAID-Gehäuse vollautomatisch. Wenn eine Festplatte ausfällt, muss man diese lediglich im Gehäuse austauschen (unbedingt Bedienungsanleitung beachten, das Vorgehen ist je nach Modell unterschiedlich). Für den Computer sieht das Ganze aus, wie eine normale USB-Festplatte.
Zuerst wird der Datenträger für das Betriebssystem eingerichtet. Hierzu wählt man die Option „Eine ganze Festplatte verwenden„. Mit den Pfeiltasten wechselt man nach unten und klappt mit der Enter-Taste die Liste mit verfügbaren Datenträgern aus. Hier wählt man die interne Festplatte, zu erkennen am Speicherplatz. Mit dem Button „Erledigt“ werden die Einstellungen übernommen.
Man kommt nun zur Übersicht aller vorhandenen Datenträger und Partitionen. Oben sieht man die automatisch erstellten Partitionen der Systemplatte. Unter „Verfügbare Geräte“ wird das externe, über USB angeschlossene, RAID-System angezeigt. Mit den Pfeiltasten wählt man dieses aus und öffnet mit der Enter-Taste die weiteren Optionen. Hier wählt man den Menüpunkt „Formatieren„.
Im folgenden Fenster wählt man unter „Format“ das Dateisystem Ext4. Hierbei handelt es sich um das Standarddateisystem von Ubuntu und vielen anderen Linux-Distributionen.
Unter „Mount“ wird der Mountpunkt für das externe RAID-System angegeben. Unter Linux bekommen Laufwerke keinen Buchstaben zugeordnet, wie unter Windows. Stattdessen werden sie als Ordner in das Dateisystem eingebunden. Dieser Ordner ist der sogenannte Mountpunkt. Hier wählt man zuerst die Option „Andere“ und vergibt dann einen eigenen Pfad. In dieser Artikelreihe verwende ich /mnt/storage. Mit dem Button „Erledigt“ werden die Einstellungen übernommen.
Nun gelangt man wieder zur Übersicht der verfügbaren Datenträger und Partitionen. Hier sind nun die automatisch erstellten Partitionen für das Betriebssystem zu sehen, sowie das externe RAID-System, das unter /mnt/storage eingebunden wird. Mit „Erledigt“ wird nun die Partitionierung und Formatierung anhand der vorgenommenen Einstellungen automatisch durchgeführt.
Im folgenden Schritt muss man noch bestätigen, dass die gerade vorgenommenen Einstellungen übernommen werden sollen. Hierbei wird darauf hingewiesen, dass alle eventuell vorhandenen Daten auf den Festplatten verloren gehen. Dies bestätigt man mit „Fortfahren„.
Fortsetzen der Installation des Betriebssystems
Die folgenden Schritte sind bei allen Hardwarekonfigurationen wieder identisch. Im folgenden Schritt wir der Account des Hauptbenutzers/Administratosr angelegt, sowie ein Name für den Server vergeben. Diese Einstellungen kann man nach Belieben vornehmen. Der Servername darf jedoch keine Leerzeichen oder Sonderzeichen enthalten.
Dann bietet das Installationsprogramm an, direkt einen SSH-Server zu installieren. Diese Option sollte man aktivieren, da der SSH-Server später zur Fernwartung ohnehin benötigt wird.
Nun kommt eine weitere Übersicht mit zusätzlich installierbarer Software. Hier wird nichts ausgewählt. Alle benötigten Programme werden später manuell installiert und konfiguriert. Daher wird der Schritt mit dem Button „Erledigt“ übersprungen.
Jetzt erfolgt die eigentliche Installation des Betriebssystems automatisch, anhand der gemachten Einstellungen. Dabei werden auch vorhandene Updates direkt heruntergeladen und installiert.
Ist die Installation abgeschlossen, erscheint der Button „Neustart„. Wenn man diesen betätigt, wird der Computer neu gestartet und das gerade installierte Betriebssystem geladen.
In den beiden vorherigen Teilen wurde die Hardware eingerichtet und das Betriebssystem installiert. Bevor es nun an das Installieren und Einrichten der eigentlichen Dienste geht, sollten noch ein paar Grundeinstellungen vorgenommen werden. Außerdem gilt es ein paar grundlegende Dinge bei der Administration zu beachten.
Gleichbleibende IP-Adresse im Router aktivieren
Damit der Zugriff über das Netzwerk auf den Server zuverlässig funktioniert, darf sich dessen IP-Adresse nicht verändern.
Normalerweise wird aus diesem Grund für Server eine statische IP-Adresse konfiguriert. Das bedeutet, dass in den Konfigurationsdateien des Servers eine bestimmte IP-Adresse fest hinterlegt wird. Dazu muss man jedoch die Netzwerkkonfiguration seines Heimnetzes genau kennen. Insbesondere muss man die IP-Range für den DHCP-Server im Router kennen. Das sind die IP-Adressen, die der Router den Geräten im Netzwerk eigenständig zuteilen darf.
Einfacher ist es, den Router so zu konfigurieren, dass er dem Homeserver immer dieselbe IP-Adresse zuteilt. Moderne Router bieten diese Option in den allermeisten Fällen an.
In der Benutzeroberfläche der FritzBox navigiert man zu Heimnetz > Netzwerk. Hier findet man eine Liste mit allen Geräten, die im Heimnetz aktiv sind oder waren. Aus dieser Liste wählt man den Homeserver aus. Dann muss nur noch der Haken bei „Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen“ gesetzt werden.
Am besten notiert man sich in diesem Schritt auch gleich die IP-Adresse, die der Router dem Homeserver zugeteilt hat.
Login auf den Server mit SSH
Die Einrichtung und die spätere Wartung und Administration nimmt man am besten über eine SSH-Verbindung vor. Auf diese Weise kann man sich sicher über das Netzwerk mit der Kommandozeile des Homeservers verbinden. Hierzu wird jedoch die IP-Adresse des Servers benötigt.
Wenn diese nicht bekannt ist, muss man die IP-Adresse zuerst herausfinden. Hierzu muss man sich wieder direkt am Homeserver einloggen.
Nach dem Login wird eine Reihe von Systeminformationen angezeigt. Hier findet man auch die IP-Adresse des Homeservers.
Alternativ kann man folgenden Befehl verwenden. Damit werden alle Adressen aller Netzwerkschnittstellen angezeigt.
ip addr
Anschließend kann man sich von jedem beliebigen Computer mit dem Homeserver via SSH verbinden.
Wenn man ein Linux-Betriebssystem oder einen Mac verwendet muss man hierzu das Terminal öffnen. Unter Windows 10 verwendet man die PowerShell. Wer noch eine ältere Version von Windows verwendet, der benötigt eine Zusatzsoftware wie Putty. Der Einfachheit halber werde ich immer von Terminal sprechen, auch wenn die PowerShell gemeint ist.
Mit folgendem Befehl wird eine Verbindung zum Homeserver hergestellt. Benutzername und IP-Adresse muss natürlich an das eigene Setup angepasst werden.
ssh benutzername@ip-adresse
z.B.
ssh nikobra@192.168.30.153
Das Betriebssystem immer aktuell halten
Software ist komplex und daher anfällig für Fehler. Das gilt ganz besonders für Betriebssysteme, da diese eben sehr komplex sind. Daher gibt es in regelmäßigen Abständen Updates, die Fehler beseitigen und Sicherheitslücken schließen. Aus diesen Gründen sollte man sein System immer aktuell halten.
Nach dem Login zeigt das System direkt an, ob Updates verfügbar sind. In diesem Fall sind 56 Updates verfügbar, von denen 27 Sicherheitsupdates sind und dementsprechend zügig eingespielt werden sollten.
Mit folgendem Befehl prüft man auf verfügbare Updates für das Betriebssystem und sämtliche andere Software, die aus den Paketquellen installiert wurde. Sind Updates verfügbar, dann werden diese direkt installiert.
sudo apt update && sudo apt upgrade
Eigentlich handelt es sich hierbei um zwei Befehle, die nacheinander ausgeführt werden und durch das „&&“ verbunden werden. Das doppelte &-Zeichen soft dafür, dass der zweite Befehl nur ausgeführt wird, wenn der erste Befehl erfolgreich ausgeführt wurde.
Das vorangestellte „sudo“ sorgt dafür, dass der Befehl mit erhöhten Rechten (Rootrechte, entspricht Administratorrechten unter Windows) ausgeführt wird. Ansonsten hat man nicht die Berechtigung Systemdateien zu verändern. Sudo darf nur von Benutzern ausgeführt werden, für die dies konfiguriert wurde. Der Account, der bei der Installation angelegt wurde, hat dieses Recht automatisch.
Apt ist der Paketmanager. Mit dem Zusatz „update“ prüft der Paketmanager, ob aktualisierte Software in den Paketquellen verfügbar ist. Der Zusatz „upgrade“ installiert die verfügbaren Updates.
Eventuell ist nach der Installation von Updates ein Neustart nötig, um die Änderungen zu übernehmen. Ein Neustart wird mit folgendem Befehl ausgeführt.
sudo reboot
Wenn man den Computer herunterfahren möchte, ohne einen Neustart auszuführen, dann wird folgender Befehl verwendet.
sudo shutdown -h now
Ubuntu 20.04. Server Systemsprache auf Deutsch umstellen
Wenn die Installation der Updates mit „Y“ für yes bestätigt werden musste, anstatt mit „J“ ja, dann steht die Systemsprache auf Englisch. Dies hat noch weitere Auswirkungen in der Bedienung, beispielsweise bei der Bedienung des Texteditors Nano. Daher sollte man die Sprache noch auf Deutsch umstellen. Dazu werden zuerst die deutschen Sprachpakete installiert.
Dann kann man die gewünschten Spracheinstellungen mit folgendem Befehl auswählen.
sudo dpkg-reconfigure locales
Im nächsten Schritt wird eine lange Liste mit Lokalisierungsoptionen angezeigt. Hier aktiviert man die Option „de_DE.UTF-8 UTF-8„, indem man mit der Leertaste ein Sternchen vor die entsprechende Zeile setzt. Wenn bei irgendeiner anderen Zeile ein Sternchen vorhanden ist, kann man dieses auf die gleiche Weise entfernen. Mit OK kommt man zum nächsten Schritt.
Wenn mehrere Lokalisierungsoptionen vorhanden sind, muss man hier die Option auswählen, die standardmäßig verwendet werden soll. Auch hier wählt man wieder die Zeile „de_DE.UTF-8 UTF-8“ und bestätigt die Auswahl mit OK.
Nach einem Neustart ist die Systemsprache auf Deutsch umgestellt. Tatsächlich sind nicht alle Elemente des Systems übersetzt. Die meisten Bedienoberflächen, wie beispielsweise beim Texteditor Nano sind nun deutsch. Vor allem aber ist das Tastaturlayout nun passend eingestellt.
Homeserver aus dem Internet erreichbar machen
Natürlich ist es praktisch, wenn man einen zentralen Netzwerkspeicher im Heimnetz hat. Wirklich uneingeschränkt nutzen lässt sich der Homeserver aber erst, wenn man ihn auch von unterwegs über das Internet erreichen kann.
Nur so kann man auch unterwegs auf seine Daten zugreifen und Kontakte und Kalender mit mehreren Geräten synchronisieren.
Leider gibt es dabei mittlerweile ein Problem. Um von außer Haus über das Internet auf den Homeserver zugreifen zu können, muss der heimische Internetanschluss über eine öffentliche IP-Adresse verfügen. Und immer weniger Internetanschlüsse bekommen eine eigene, öffentliche IPv4 Adresse von ihren Providern zugeteilt.
Glücklicherweise unterstützen alle halbwegs aktuellen Internetanschlüsse und Router IPv6 und bekommen hier ausreichend Adressen zugeteilt. Wenn also alle beteiligten Geräte IPv6 unterstützen, dann steht dem Zugriff von außerhalb des Heimnetzes nichts im Wege. Dafür muss aber sowohl der Internetanschluss zu Hause, als auch der Internetanschluss den man unterwegs verwendet IPv6 unterstützen.
Leider ist die Situation nicht so einfach. Gerade im Mobilfunknetz, das man ja unterwegs häufig verwendet um auf den Homeserver zuzugreifen, bekommt man oft nur IPv4 Adressen und auch in Hotels oder Firmennetzen ist das häufig der Fall. Damit kann man aber den Homeserver mit seiner IPv6 Adresse nicht erreichen.
Um den Zugriff über das Internet auf den Homeserver zu konfigurieren, muss man also wissen, ob der eigene Internetanschluss über eine öffentliche IPv4 Adresse verfügt.
Wenn der Internetanschluss über eine öffentliche IPv4 Adresse verfügt, dann ist der Zugriff über das Internet kein Problem. In diesem Fall kann man diesen über einen normalen DynDNS-Dienst realisieren.
Hat der Internetanschluss nur eine öffentliche IPv6-Adresse, wird es komplizierter. Damit man auch von einem Internetanschluss ohne IPv6 (Hotel, Mobilfunk) auf den Homeserver zugreifen kann, benötigt man einen Relay-Dienst, der quasi von IPv4 nach IPv6 übersetzt.
Dieser Abschnitt beinhaltet also zwei Anleitungen, je nachdem über welche Art von Internetanschluss man verfügt.
Option 1: Anschluss verfügt über öffentliche IPv4-Adresse
Häufig handelt es sich DSL-Anschlüsse.
Anschluss verfügt meistens über eine eigene, global erreichbare IPv4 und IPv6 Adresse(n).
Zugriff auf das NAS mit DynDNS-Adresse und Portfreigaben im Router problemlos möglich.
Option 2: Anschluss verfügt nicht über eine öffentliche IPv4-Adresse
Oft Dual-Stack-Lite (auch: DS-Lite, nicht verwechseln mit der Abkürzung DSL):
Anschluss verfügt nicht über eine öffentliche IPv4-Adresse
In der Regel Kabelanschlüsse (Internet über Fernsehkabel).
Anschluss verfügt lediglich über eine öffentliche IPv6-Verbindung. IPv4-Verbindungen erfolgen über eine private Adresse, die sich mehrere Anschlüsse teilen. Dabei sorgt ein Server des Internetanbieters dafür, dass jeder Anschluss die für ihn bestimmten IPv4 Pakete erhält (Carrier-Grade-NAT).
Zugriff von außen auf das Heimnetz nur über IPv6 möglich.
Eingehende IPv4-Verbindungen scheitern am Carrier-Grade-NAT.
Komfortabler Zugriff von außen nur mit erhöhtem Aufwand und Umwegen möglich.
Homeserver aus dem Internet erreichbar machen, Option 1: Mit öffentlicher IPv4 Adresse
Die wohl bekannteste Lösung um den eigenen Internetanschluss über das Internet erreichbar zu machen ist DynDNS. Ein System, dass die hinter einem Domainnamen stehende IP-Adresse bei jeder Änderung aktualisiert. Somit ist das NAS von unterwegs immer über eine leicht zu merkende Internetadresse erreichbar.
Um die Einstiegshürde so niedrig wie möglich zu halten, zeige ich die Einrichtung in diesem Artikel anhand des Anbieters No-IP.com, welcher einerseits direkt von der Fritzbox unterstützt wird und außerdem kostenlos genutzt werden kann. Natürlich kann auch jeder andere Anbieter genutzt werden.
Als Erstes muss man sich einen Account bei No-IP.com anlegen. Nach dem Login kann man einen Domainname anlegen. Hierzu geht man links im Menü auf Dynamic DNS und anschließend auf den Menüpunkt Create Hostname.
Nun kann man sich einen Hostnamen und eine Domain auswählen. Daraus setzt sich dann die Adresse zusammen, über die man den Homeserver später über das Internet erreichen kann. In diesem Beispiel ist das https://mimashome.ddns.net. Die anderen Felder können ignoriert werden bzw. müssen nicht verändert werden. Angelegt wird die Adresse mit einem Klick auf den Button “Create Hostname”.
DynDNS Dienst in der FritzBox aktivieren
Da No-IP von der Fritzbox standardmäßig unterstützt wird, ist die Konfiguration schnell erledigt. Die Einstellungen hierzu findet man in der Benutzeroberfläche der FritzBox unter Internet -> Freigaben -> DynDNS
Dort gibt man seinen gerade erstellten Domainname sowie seinen Benutzernamen und das Passwort von No-IP ein.
Mit einem Klick auf den Button “Übernehmen” meldet sich die Fritzbox bei No-IP an und informiert ab sofort den Anbieter jedes Mal, wenn sich die IP-Adresse ändert. Auf diese Weise funktioniert der Zugang zum Heimnetz über DynDNS auch dann, wenn sich die IP-Adresse am Internetanschluss ändert, was häufig einmal pro Tag der Fall ist.
Portfreigabe für den Zugriff auf den Homeserver einrichten
Grundsätzlich ist das Heimnetzwerk nun über das Internet erreichbar. Versucht man allerdings über die oben vergebene Adresse auf das Heimnetz zuzugreifen, dann scheitert der Zugang jedoch am Router, in diesem Beispiel an der Fritzbox, die standardmäßig alle Zugriffe auf das Heimnetz blockt. Damit man von unterwegs auf den Homeserver zugreifen kann, muss eine Portfreigabe eingerichtet werden. Auf der Fritzbox findet man die Einstellungen hierzu unter Internet -> Freigaben -> Portfreigaben. Dort wählt man dann den Button “Gerät für Freigabe hinzufügen”
Im Dropdown-Menü sollte bereits der Homeserver mit dem Namen Mimas vorhanden sein. Fall das Gerät fehlt, sollte man den Homeserver einmal neu starten. Nachdem der Rechner gestartet ist muss die Konfigurationsoberfläche im Browser neu geladen werden. Dann sollte das Gerät in der Liste erscheinen.
Im unteren Bereich muss zum Erstellen einer Portfreigabe noch der Button “Neue Freigabe” geklickt werden. Im nächsten Fenster wird als Anwendung “HTTPS-Server” ausgewählt, wodurch alle weiteren Felder automatisch ausgefüllt werden. Falls man einen Router besitzt, der das automatische Ausfüllen nicht anbietet, muss als Portnummer sowohl für interne als auch externe Ports die Nummer 443 und als Protokoll TCP angegeben werden. Mit einem Klick auf “OK” wird der Homeserver wirklich über das Internet erreichbar gemacht.
Diesen Schritt muss man für die Portnummern 80 sowie 32400 wiederholen. Port 80 wird für unverschlüsselte http-Verbindungen benötigt. Außerdem wird der Port verwendet, um das Let’s Encrypt Zertifikat für die verschlüsselte https-Verbindung auszustellen. Port 32400 ist der Standardport von Plex für das Streaming von Musik und Videos. Für die Freigabe des Ports 32400 wird im Menü bei Anwendung „Andere Anwendung“ ausgewählt, damit kann man eine beliebige Portnummer freigeben.
Nach dem Speichern der angelegten Freigaben sieht die Übersicht in der Fritzbox folgendermaßen aus:
Es wurde also eine Freigabe, bzw. Portweiterleitung für folgende Ports eingerichtet.
80
443
32400
Homeserver aus dem Internet erreichbar machen, Option 2: Ohne öffentliche IPv4 Adresse
An einem DS-Lite Internetzugang, bzw. jedem Internetzugang ohne öffentliche IPv4-Adresse hat man mit folgenden Schwierigkeiten zu kämpfen.
Der Internetzugang hat keine öffentliche IPv4 Adresse. Damit ist von außen keine Verbindung zum Heimnetz via IPv4 möglich.
Gerade im Mobilfunknetz bekommt man häufig nur eine IPv4 Adresse und keine IPv6-Adresse. In der Praxis bedeutet das, dass man mit dem Smartphone nicht auf das Heimnetz zugreifen kann.
Der Internetzugang verfügt jedoch über eine öffentliche IPv6 Adresse. Ein Zugang ist somit über IPv6 möglich.
Jedes Gerät im Heimnetz hat seine eigene öffentliche IPv6 Adresse (nicht nur eine einzige für den Router, wie bei IPv4).
Klassisches DynDNS im Router und Portfreigaben funktionieren nicht, da man über die DynDNS-Adresse nur auf den Router zugreifen könnte, da dessen Adresse im DynDNS-System hinterlegt ist. Diese Situation könnte man u. a. dadurch lösen, dass man auf dem Homeserver/NAS einen DynDNS-Client laufen lässt und nicht die Funktion im Router nutzt.
Hierfür kann man eine Software wie ddclient auf dem Homeserver verwenden, um bei der DynDNS-Adresse die IPv6 Adresse zu aktualisieren. Wer dies umsetzen möchte, findet hierzu eine hilfreiche Beispielkonfiguration im Wiki von Ubuntuusers unter https://wiki.ubuntuusers.de/DDNS-Clients/
Relativ elegant lassen sich all die genannten Probleme lösen, wenn man über einen Relay-Server auf das Heimnetz zugreift. Das bedeutet, dass man sich von unterwegs nicht direkt mit dem Homeserver im Heimnetz, sondern mit einem Server im Internet verbindet. Dieser Server ist sowohl via IPv4, als auch via IPv6 erreichbar und baut wiederum via IPv6 eine Verbindung zum eigenen Internetanschluss und dem Homeserver auf. Er dient damit als eine Art Zwischenstation und Übersetzer von IPv6 auf IPv4.
Der Vorteil dieser Lösung ist, dass man nun wieder aus allen Netzen von unterwegs auf das Heimnetz zugreifen kann. Dabei ist es egal, ob die Endgeräte über eine IPv4 oder eine IPv6 Adresse verfügen.
Allerdings hat die Lösung auch Nachteile. So wird der gesamte Datenverkehr zwischen den Geräten außerhalb des Heimnetzes (Smartphone, Laptop etc.) und dem Homeserver im Heimnetz über den Relay-Server umgeleitet. Dies kann sich negativ auf Paketlaufzeit und die Geschwindigkeit auswirken. Wenn der Traffic unverschlüsselt ist (also nicht über https), dann hat der Anbieter des Relay-Servers die Möglichkeit den Internetverkehr mitzulesen. Nicht nur aus diesem Grund sollte man Daten über das Internet nur verschlüsselt übertragen. Da für den Anbieter des Relay-Servers ggf. große Datenmengen entstehen, ist ein solcher Dienst in der Regel kostenpflichtig. Es gibt auch kostenlose Dienste, deren Performance aber entsprechend gering ist.
Die Einrichtung eines solchen Dienstes unterscheidet sich sehr stark, je nachdem welchen Anbieter und welchen Router man verwendet. Es ist daher kaum möglich, eine Anleitung zu schreiben, die für jeden funktioniert. Als Beispiel wird in dieser Anleitung die Einrichtung mit einer Fritzbox, dem MyFritz-Dienst als DynDNS-Service und feste-ip.net als Betreiber des Relay-Servers beschrieben. Dieses Setup ist relativ einfach und kostengünstig einzurichten. Außerdem ist die Fritzbox weit verbreitet.
MyFritz!-Konto einrichten
Zuerst wird ein kostenloses MyFritz-Konto eingerichtet und mit der Fritzbox verbunden. Je nach Anbieter ändern sich leider auch die IPv6-Adressen, die man vom Internetanbieter erhält, sodass man nach wie vor einen DynDNS-Anbieter benötigt. Die Verwendung von MyFritz hat den Vorteil, dass der Dienst automatisch eine Subdomain für alle Computer im Heimnetz anlegt, für die Freigaben ins Internet eingerichtet wurden. Damit wird kein eigener DynDNS-Client auf dem Homeserver benötigt, was das Setup noch komplexer machen würde, als es ohnehin ist.
Als Erstes loggt man sich in der Benutzeroberfläche der Fritzbox ein
Dort klickt man auf “Internet”.
Im Menü „Internet“ wählt man „MyFRITZ!-Konto„.
In das Eingabefeld “Ihre E-Mail-Adresse” muss man eine gültige E-Mail-Adresse eintragen.
Mit einem Klick auf den Button “Weiter” sendet MyFRITZ! eine E-Mail mit dem Bestätigungslink an die eingegebene Adresse.
In der E-Mail muss man auf die Schaltfläche „Ihre FRITZ!Box registrieren“ klicken. Damit wird man auf die MyFRITZ!-Internetseite weitergeleitet. Dort klickt man auf den Link „MyFRITZ!-Konto einrichten„.
Hier vergibt man über die Eingabefeldern „Kennwort“ und „Kennwort bestätigen“ ein eigenes Passwort. Dieses wird benötigt, um sich künftig auf myfritz.net anzumelden.
Mit einem Klick auf den Button „Vorgang abschließen“, ist die Anmeldung bei MyFritz beendet.
Internetzugriff zum Homeserver über MyFritz! einrichten
Nun wird der Zugriff zum Homeserver konfiguriert. Auch dies geschieht über die Benutzeroberfläche der FritzBox.
In der Benutzeroberfläche der Fritzbox klickt man auf den Menüpunkt “Internet” und anschließend auf “Freigaben”.
Hier wählt man den Reiter “Portfreigaben”.
Dann klickt man den Button “Gerät für Freigaben hinzufügen”.
Im Dropdown-Menü “Gerät” wählt man den Homeserver aus, in diesem Beispiel hat er den Namen Mimas.
Wichtig ist, dass man an dieser Stelle darauf achtet, dass die IPv6 Interface-ID die in der Fritzbox angezeigt wird, und die tatsächliche Interface-ID des Homeservers übereinstimmen. Andernfalls funktioniert der Zugang nicht. Um dies zu prüfen, loggt man sich auf dem Homeserver ein und gibt folgenden Befehl in das Terminal ein.
ip -6 addr
Damit werden alle IPv6 Adressen aufgelistet, die dem Homeserver zugeordnet sind. Aus dieser Liste sucht man sich die IPv6-Adresse aus, die NICHT mit fd00 oder fe80 beginnt. Die letzten vier Blöcke der Adresse müssen mit der Interface-ID in der Fritzbox übereinstimmen. Ist dies nicht der Fall, muss man den Eintrag in der Fritzbox manuell anpassen.
Zum Erstellen der Freigabe klickt man jetzt auf den Button “Neue Freigabe”.
Dort wählt man die Option “MyFRITZ!-Freigabe”.
Im Menü “Anwendung” wählt man HTTP-Server aus.
Die anderen Felder müssen nicht ausgefüllt werden. Mit einem Klick auf “OK” wird die Freigabe eingerichtet.
Diesen Vorgang wiederholt man nun und wählt im Menü “Anwendung” HTTPS-Server aus.
Anschließend erstellt man noch eine Freigabe für den Port 32400.
Mit einem Klick auf “OK” werden die Freigaben erstellt.
Achtung: Port 32400 fehlt im Screenshot. Muss aber ebenfalls angelegt werden, wenn man Plex über das Internet verwenden will. Wenn man nur Nextcloud verwendet, reichen die Ports 80 und 443.
Jetzt wird noch die individuelle MyFRITZ-Adresse benötigt, die mit der Freigabe automatisch für den Homeserver erstellt wurde. Diese kann man sich anzeigen lassen, wenn man die Option zum Bearbeiten der Freigabe aufruft.
Hierzu klickt man auf das Stift-Icon auf der rechten Seite
Im folgenden Fenster klickt man wieder auf das Stift-Icon neben einer beliebigen Freigabe.
Im Feld “MyFRITZ!-Adresse” sieht man nun die individuelle MyFritz-Adresse für den Homeserver, gefolgt von der Portnummer nach dem Doppelpunkt.
Der Teil nach dem http:// und vor dem :80 wird im nächsten Schritt zum Einrichten des Relay-Servers benötigt.
Portmapper von Feste-IP.Net als Relayserver einrichten
Um das Problem mit der fehlenden öffentlichen IPv4-Adresse zu lösen, muss nun noch ein Relayserver eingerichtet werden. Beim Anbieter Feste-IP.Net sind diese unter den Produktnamen Portmapper erhältlich. Da der Betrieb der Server Geld kostet, ist das Angebot zwar nicht kostenlos, je nach Produktvariante aber sehr kostengünstig.
Man muss zwei Produkte unterscheiden, den universellen Portmaper von Feste-IP.Net und den dedizierten Portmapper.
Der universelle Portmapper teilt sich eine IPv4 Adresse mit anderen Nutzern auf demselben Server. Diese Version ist für knapp 4 € pro JAHR zu bekommen. Allerdings bekommt man hier keine Standardports, da diese pro IP-Adresse nur einmal verfügbar und dementsprechend knapp sind. Dies bedeutet, dass man beim Aufrufen seiner Internetadresse immer die Portnummer angeben muss. So kann man beispielsweise seine Nextcloud auf dem Homeserver nicht mit einer Adresse wie https://mymxtcloud.feste-ip.net aufrufen. Stattdessen muss man beispielsweise https://mymxtcloud.feste-ip.net:56083 verwenden.
Beim dedizierten Portmapper bekommt man eine eigene IPv4 Adresse. Damit kann man Standardports verwenden und sein NAS ohne angehängte Portfreigabe aufrufen. Hierfür werden zusätzlich 3,50 € pro Monat fällig.
In diesem Beispiel wird der universelle Portmapper verwendet. Bei der Anmeldung bei Feste-IP.Net erhält man 50 Credits Startguthaben, um das Angebot zu testen. Dies reicht, um den universelle Portmapper 50 Tage kostenlos zu testen.
Nach der Anmeldung bei Feste-IP.Net klickt man auf der Webseite auf den Button “Mein Account”
Hier wählt man in der Seitenleiste die Option “Universelle Portmapper”.
Als Mapping-Server wählt man einen beliebigen Server in seiner Nähe. Dies verringert die Paketlaufzeiten.
Der Alias ist die DynDNS-Adresse, über die man später den Homeserver aus dem Internet erreichen möchte.
Bei “DNS oder IPv6 Ziel” gibt man die MyFRITZ-Adresse des Homeservers ohne http:// und ohne Portnummer ein. Beispielsweise: mimas.lasdgoetnvklvwph.myfritz.net
Bei Ports gibt man die Ports an, über die man seinen Homeserver zugreifen möchte. Also “80” und “443” ein
Im Menü “1:1 Portmapper” wählt man “1x 1:1 Portmapper erstellen”
Über den Button “System eintragen und Portmapings erstellen” wird der Portmapper angelegt.
Achtung: Port 32400 fehlt im Screenshot. Muss aber ebenfalls angelegt werden, wenn man Plex über das Internet verwenden will. Wenn man nur Nextcloud verwendet, reichen die Ports 80 und 443.
In der Übersicht werden jetzt die Portnummern angezeigt, die man vom universellen Portmapper zugeteilt bekommen hat. In diesem Beispiel würde man den Homeserver über eine unverschlüsselte HTTP-Verbindung nun über http://mynxtcloud.feste-ip.net:10623 erreichen. Für eine verschlüsselte HTTPS-Verbindung müsste man https://mynxtcloud.feste-ip.net:10725 verwenden. Verwendet man den dedizierten Portmapper, ist keine Angabe von Portnummern nach der Domain nötig.
Die Verbindung zum Homeserver im Heimnetz funktioniert über diese Adressen aus dem Internet sowohl via IPv4 als auch via IPv6.
Das Betriebssystem wurde in den letzten Teilen installiert und die wichtigsten Grundkonfigurationen vorgenommen. Nun können die ersten Dienste auf dem Homeserver installiert werden.
In diesem Teil werden die Ordnerfreigaben für das lokale Heimnetz erstellt. Die Software, die hierfür verwendet wird, ist SAMBA-Server. Damit können über das SMB/CIFS-Protokoll Freigaben im lokalen Netz erstellt werden. Diese Art der Freigaben wird von allen Betriebssystemen wie Windows, MacOS, Linux usw. unterstützt. Die Freigaben können beispielsweise in Windows als Netzlaufwerk eingebunden werden, sodass man bequem auf alle Dateien auf dem Homeserver zugreifen kann. Auch mit Software wie dem Mediacenter Kodi kann man direkt und ohne Umwege über diese Freigaben auf Filme, Videos und Bilder zugreifen. Ein weiterer Vorteil ist, dass die Datenübertragung mit dem SMB/CIFS-Protokoll sehr schnell ist, sodass auch große Dateimengen im lokalen Netzwerk schnell auf den Homeserver übertragen werden können.
Aus Sicherheitsgründen ist der Zugriff auf diese Freigaben auf das Heimnetz beschränkt, d.h. es werden keine Freigaben im Router erstellt, über die man aus dem Internet zugreifen könnte. Die Datenübertragung über das Internet sollte ausschließlich verschlüsselt erfolgen. SMB ist jedoch unter Umständen unverschlüsselt.
Der Zugriff über das Internet wird im folgenden Teil konfiguriert. Hierfür wird eine sichere, verschlüsselte Verbindung über Nextcloud verwendet.
In diesem Beispiel werden vier Benutzer angelegt.
Tom: Der Name ist willkürlich gewählt. Hier wird eine private Freigabe für das Familienmitglied Tom erstellt, auf welche nur dieser User Zugriff hat. Lena: Ebenfalls ein willkürlich gewählter Name für ein weiteres Familienmitglied. Media: Ein spezieller Benutzername für den Zugriff auf Bilder, Videos usw. mit einem Mediaplayer wie Kodi. smb: Ein Benutzername, der nur vom System verwendet wird, um Dateien zu schreiben. Damit werden Probleme mit den Dateiberechtigungen vermieden, da ansonsten eine von Tom erstellte Datei nicht von Lucy geändert werden könnte. Man könnte stattdessen auch jeden anderen Benutzer (z.B. Tom) verwenden. Ich erstelle der Verständlichkeit halber einen eigenen Benutzer.
Anschließend werden vier Freigaben erstellt.
Tom: Eine private Freigabe, auf die nur Tom zugreifen kann. Lena: Eine private Freigabe, auf die nur Lena zugreifen kann. Familie: Auf diese Freigabe haben Tom und Lena Zugriff. Media: Eine Freigabe für Videos und Bilder. Tom und Lena haben Lese- und Schreibzugriff. Der User media kann jedoch nur Dateien lesen und nichts verändern.
Achtung: Der Administrator des Homeservers hat immer vollständigen Zugriff auf alle Daten auf der Festplatte. Das bedeutet, die Passwörter schützen lediglich vor unbefugtem Zugriff über das Netzwerk. Das sollte man allen Familienmitgliedern auch so kommunizieren. Vor unbefugtem Zugriff durch den Administrator auf private Daten schützt nur eine Verschlüsselung der Dateien. Das gilt übrigens auch für die großen Clouds wie Google Drive, Dropbox, Onedrive usw.
Installation des Sambaservers und Anlegen der Benutzer
Im ersten Schritt wird der Samba-Server installiert. Dies geschieht mit folgendem Befehl.
sudo apt install -y samba samba-common
Dann werden die Systembenutzer im Betriebssystem angelegt. Diese Benutzer werden nur vom System dazu verwendet, auf Samba-Freigaben zuzugreifen. Daher wird kein Homeverzeichnis angelegt und der Login direkt am System deaktiviert. Die Abfragen von Name, Zimmer usw. können einfach mit Enter übersprungen werden.
sudo adduser --no-create-home --disabled-login --shell /bin/false tom
sudo adduser --no-create-home --disabled-login --shell /bin/false lena
sudo adduser --no-create-home --disabled-login --shell /bin/false media
sudo adduser --no-create-home --disabled-login --shell /bin/false smb
Im folgenden Schritt werden die Passwörter vergeben, mit denen die Freigaben geschützt werden.
sudo smbpasswd -a tom
sudo smbpasswd -a lena
sudo smbpasswd -a media
Übrigens: Wenn man die Passwörter später ändern möchte, dann kann der Befehl einfach erneut ausgeführt werden.
Anlegen der Ordner
Nun werden die Ordner angelegt, in denen die Daten gespeichert werden, die man auf den Homeserver überträgt. Da das RAID-System für die Daten unter /mnt/storage eingebunden wurde, müssen alle Order als Unterordner von mnt/storage/ angelegt werden. Ansonsten würden die Daten auf der Systemplatte landen und wären nicht durch das RAID geschützt.
Die Freigaben werden über die Konfigurationsdatei /etc/samba/smb.conf konfiguriert. Die Datei kann mit jedem Texteditor bearbeitet werden. Mit dem folgenden Befehl wird die Konfigurationsdatei mit dem Texteditor Nano geöffnet, da dieser einsteigerfreundlich und leicht zu bedienen ist.
sudo nano /etc/samba/smb.conf
In der Datei scrollt man mit der Pfeil-nach-unten Taste ganz ans Ende. Dort werden folgende Zeilen eingefügt, um die Freigaben zu erstellen.
[Tom]
comment = Tom
path = /mnt/storage/shares/tom
write list = tom
valid users = tom
force user = smb
[Lena]
comment = Lena
path = /mnt/storage/shares/lena
write list = lena
valid users = lena
force user = smb
[Familie]
comment = Familie
path = /mnt/storage/shares/familie
write list = tom,lena
valid users = tom,lena
force user = smb
[Media]
comment = media
path = /mnt/storage/shares/media
write list = tom,lena
valid users = tom,lena,media
force user = smb
Damit der Zugriff auch mit Windows 10 funktioniert, muss noch eine Zeile in der Konfigurationsdatei geändert werden. Und zwar muss die Zeile „map to guest = bad user“ zu „map to guest = never“ geändert werden.
Wenn man diese Zeile nicht ändert, bekommt man beim Zugriffsversuch mit Windows 10 eine Fehlermeldung wie: „Auf 192.168.30.119 kann nicht zugegriffen werden. Vergewissern Sie sich, dass der Name richtig geschrieben wurde. Möglicherweise besteht ein Netzwerkfehler. Klicken Sie auf Diagnose“.
map to guest = bad user
map to guest = never
Mit den Tastenkombinationen Strg+o wird die Datei gespeichert. Mit Strx+x wird der Editor wieder beendet.
Die Angabe in den eckigen Klammern ist der Name der Freigabe, mit der diese im Netzwerk sichtbar ist. Der Kommentar ist ein beliebiges Wort oder Satz, der die Freigabe beschreibt. Hinter „path“ wird der Pfad im Dateisystem angegeben, wo die Daten für diese Freigabe gespeichert werden. Write list ist eine Liste mit allen Benutzernamen, die über das Netzwerk auf dieser Freigabe Dateien verändern dürfen. Dazu gehört auch das Erstellen und Löschen von Dateien und Ordnern. Valid users ist eine Liste mit Benutzernamen, die auf die Freigabe zugreifen können. Ist ein Benutzername in der Liste „valid users“, nicht jedoch in der Liste „write list“, dann darf der Benutzer zwar auf die Freigabe zugreifen und Dateien lesen, nicht jedoch verändern. Force user gibt den Benutzername an, mit dem Samba die Daten auf die Festplatte schreibt. So wird sichergestellt, dass alle Daten mit demselben Benutzernamen geschrieben werden. Fehlt die Angabe, wird der Benutzer verwendet, der auf die Freigabe zugreift, also Tom, Lena etc.
Damit die Änderungen aktiv werden, muss der Samba-Server einmal neu gestartet werden.
sudo systemctl restart smbd.service
Schnellzugriff auf Freigaben mit Windows 10
Für Tests, oder wenn man nur gelegentlich auf eine Freigabe zugreifen will, lohnt es sich nicht, diese dauerhaft als Netzlaufwerk einzubinden. Die schnellste und einfachste Möglichkeit mit Windows 10 auf die Freigaben des Homeservers zuzugreifen ist, die IP-Adresse des Homeservers in die Adressleiste des Explorers einzugeben. Und zwar in folgender Form: \\192.168.30.153
Nach der Passworteingabe werden alle Freigaben die unter dieser Adresse zu finden sind im Windows-Explorer angezeigt.
Freigaben unter Windows 10 dauerhaft als Netzlaufwerk einbinden
Wenn man häufig über die Freigaben auf den Homeserver zugreift, ist der Schnellzugriff unpraktisch und unbequem. In diesen Fall ist es sinnvoller die Freigaben dauerhaft als Netzlaufwerk im Windows Explorer einzubinden.
Zur Einrichtung des Netzlaufwerks öffnet man den Explorer und macht einen Rechtsklick auf das Dieser-PC-Icon. Dann klickt man auf Netzlaufwerk verbinden.
Im Feld „Ordner“ gibt man die Netzwerkadresse der Freigabe ein. Beispielsweise \\192.168.30.153\Media.
Mit einem Klick auf „Fertig stellen“ wird ein neues Laufwerk im Windows-Explorer erstellt, das jedoch tatsächlich den Inhalt der Freigabe auf dem Homeserver zeigt.
Schnellzugriff auf die Freigaben mit Ubuntu Desktop
Auch unter Ubuntu ist ein einfacher Schnellzugriff auf die Freigaben möglich. Dies ist besonders geeignet, wenn die Freigaben nicht dauerhaft verfügbar sein müssen, z.B. für einen Gast. Für den schnellen Zugriff öffnet man Dateien und wählt in der linken Menüleiste Andere Orte. Im unteren Bereich gibt es das Feld mit Server verbinden. Hier gibt man die Adresse des Homeservers ein, in der Form smb://192.168.30.153.
Mit einem Klick auf Verbinden werden alle unter dieser Adresse gefundenen Freigaben angezeigt.
Dauerhaftes Einbinden der Freigaben auf einem Ubuntu Desktop-System
Bei allen selbst genutzten Computern ist es praktischer, die Freigaben dauerhaft zu mounten, damit man immer ein bequemer Zugriff auf den Homeserver möglich ist. Dies ist ein bisschen aufwändiger als unter Windows, dafür sind die Freigaben anschließend nahtlos in das Dateisystem eingebunden und können genau wie lokale Ordner auf der Festplatte genutzt werden.
Damit Ubuntu Sambafreigaben beim Start mounten kann, muss das Paket cifs-utils installiert werden.
sudo apt install cifs-utils
Anschließend werden die Ordner auf der lokalen Festplatte angelegt, in denen die Freigaben unseres Homeservers später zu finden sein werden. In diesem Fall wird ein Ordner namens Homeserver erstellt und unterhalb, je ein Ordner für die Freigaben.
mkdir -p ~/Homeserver/{Tom,Media,Familie}
Damit die Zugangsdaten nicht nach jedem Neustart neu eingegeben werden müssen, werden diese in einer Datei abgelegt, auf welche nur der Rootuser Zugriff hat. Zuerst wird die Datei erstellt und anschließend mit dem Texteditor geöffnet
in diese Datei kommen Benutzername und Passwort in folgender Form.
username=tom
password=MEINPASSWORT
Die Datei wird mit Strg+o gespeichert und mit Strg+x wird der Texteditor wieder geschlossen. Aus Sicherheitsgründen werden nun die Lese und Schreibrechte zu dieser Datei so angepasst, dass nur der Rootuser Zugriff darauf hat.
Damit Ubuntu die Freigaben kennt müssen diese in die Datei /etc/fstab eingetragen werden. Die Datei wird wieder mit dem Texteditor geöffnet und folgender Text am Ende der Datei eingefügt.
Es muss darauf geachtet werden, dass jeder Eintrag in einer langen Zeile eingetragen wird. Also dass jede Zeile mit //192.168.30….. beginnt.
MEINUSERNAME muss durch den eigenen Benutzernamen ersetzt werden, mit welchem man sich an seinem Laptop oder Desktop angemeldet hat. Bei UID und GID muss es sich um die IDs des eigenen Benutzers handeln. Bei einer Standardinstallation mit nur einem Benutzer ist dies 1000 und muss dementsprechend nicht angepasst werden. Wenn aber mehrere Benutzer einen Computer nutzen, haben diese unterschiedliche IDs. Welche das ist lässt sich im Terminal mit dem einfachen Befehl id herausfinden.
Nach einem Neustart sollten die Freigaben unseres Homeservers nun im lokalen Dateisystem eingebunden sein, ganz so als würden sie auf der lokalen Festplatte liegen. Wer ungeduldig ist, oder den Rechner nicht neu starten möchte, kann das Einbinden der Freigaben auch manuell erledigen mit dem Befehl.
Nextcloud hat sich mittlerweile zum Quasi-Standard für selbstgehostete Cloudanwendungen entwickelt. Nextcloud kann uneingeschränkt kostenlos genutzt werden.
In Nextcloud können Kalender und Kontakte gespeichert und mit dem Smartphone synchronisiert werden. So kann man Dienste wie Google Calender komplett ersetzen. Außerdem gibt es einen Deskop-Client, mit welchem man Dateien über mehrere Computer synchronisieren kann, ganz so, wie man es beispielsweise von Dropbox kennt. Eine offizielle Smartphone-App für Android und iOS ermöglicht es, auch von unterwegs sicher auf alle seine Daten zuzugreifen. Außerdem unterstützt die App den automatischen Bilderupload, sodass Fotos, die mit dem Smartphone gemacht werden automatisch auf den Homeserver übertragen werden.
Nextcloud ist mittlerweile als Snap-Paket für Ubuntu verfügbar, was die Installation und Einrichtung extrem vereinfacht. Wer die volle Kontrolle haben möchte, kann weiterhin den Weg der manuellen Installation und Konfiguration gehen, wie er in der alten Anleitung für Ubuntu 18.04. beschrieben ist [Homeserver/NAS mit Ubuntu 18.04: Teil 5, Nextcloud]. Dieser Weg funktioniert auch unter Ubuntu 20.04.
Da diese Anleitung bewusst möglichst einsteigerfreundlich sein soll, wird Nextcloud als Snap-Paket installiert. Damit reduziert sich die Installation auf einige wenige Kommandos und Nextcloud ist direkt einsatzbereit und fertig konfiguriert.
Nextcloud als Snap-Paket installieren
Mit folgendem Befehl wird Nextcloud installiert.
sudo snap install nextcloud
Die Installation von Nextcloud ist damit abgeschlossen. Die Benutzeroberfläche kann über die IP-Adresse des Homeservers bereits von jedem Computer im Heimnetz aufgerufen werden. In diesem Beispiel über http://192.168.30.153.
Allerdings sollte man Nextcloud noch nicht einsetzen, sondern zuerst weitere Konfigurationen vornehmen.
Übrigens: Die Nextcloud-Installation aus dem Snap-Paket befindet sich unter /var/snap/nextcloud/current.
Nextcloud konfigurieren
Bevor man Nextcloud im Browser aufrufen und verwenden kann, müssen ein paar zusätzliche Konfigurationen vorgenommen werden.
Datenverzeichnis von Nextcloud auf das RAID verschieben
Wenn wir nun anfangen Nextcloud zu verwenden, werden alle Daten auf der Systemplatte gespeichert. Dies ist natürlich nicht gewollt, da die Daten bei einem Festplattenausfall verloren wären. Stattdessen muss Nextcloud nun vor der ersten Nutzung so konfiguriert werden, dass das Datenverzeichnis auf dem RAID gespeichert wird.
Snaps werden in einer gesicherten Umgebung ausgeführt und dürfen aus Sicherheitsgründen nur auf bestimmte Verzeichnisse zugreifen. Sie können jedoch so konfiguriert werden, dass sie auch auf Daten in /media und /mnt zugreifen können, da hier normalerweise Wechseldatenträger eingebunden werden. Damit Nextcloud überhaupt auf das RAID-System unter /mnt/storage Zugriff bekommt, muss folgender Befehl ausgeführt werden. Zugriff auf alle anderen Order auf der Festplatte wird weiterhin vom System verhindert.
sudo snap connect nextcloud:removable-media
Zuerst wird das Datenverzeichnis auf dem RAID angelegt und die korrekten Benutzerrechte gesetzt.
Jetzt wird der PHP-Service neu gestartet, damit Nextcloud die geänderten Daten übernimmt.
sudo snap restart nextcloud.php-fpm
Nextcloud verwenden
Die eigene Nextcloud auf dem Homeserver kann nun von jedem beliebigen Browser aufgerufen werden, indem man http:// gefolgt von der IP-Adresse des Homeservers im Browser eingibt. Beispielsweise http://192.168.30.153.
Zuerst wird man aufgefordert einen Administratoraccount für Nextcloud einzurichten. Hier kann ein beliebiger Benutzername und Passwort vergeben werden. Außerdem bietet Nextcloud an, beliebte Apps und Zusatzfunktionen wie Kalender und Kontakte gleich automatisch mitzuinstallieren. Ich empfehle, diesen Haken zu setzen. Stellt sich heraus, dass man manche Funktionen nicht benötigt, können die dazugehörigen Apps später mit einem Klick wieder deinstalliert werden.
Nachdem die Installation abgeschlossen ist, kann Nextcloud grundsätzlich bereits genutzt werden. Allerdings ist der Aufruf bisher nur über eine unverschlüsselte Verbindung möglich. Dadurch ist eine sichere Nutzung über das Internet natürlich nicht möglich. Aus diesem Grund wird als Nächstes die Verschlüsselung eingerichtet.
Vertrauenswürdige Domain hinzufügen
Damit Nextcloud sowohl über die IP-Adresse, als auch über die in der Grundkonfiguration festgelegte DynDNS-Domain aufgerufen werden kann, muss diese noch als vertrauenswürdige Domain zu Nextcloud hinzugefügt werden. Dies geschieht mit folgendem Befehl, wobei der Domainname natürlich an das eigene Setup angepasst werden muss.
sudo snap run nextcloud.occ config:system:set trusted_domains 1 --value=mimashome.ddns.net
Verschlüsselungszertifikat erstellen
Um problemlos eine verschlüsselte Verbindung über das Internet zu ermöglichen, wird ein kostenloses Verschlüsselungszertifikat von Let’s Encrypt eingerichtet. Auch dies ist mit dem Snap-Paket mit einem Befehl erledigt.
Achtung: Bei diesem Schritt überprüft ein externer Server von Let’s Encrypt, ob die Nextcloud Installation auch wirklich über die angegebene Domain erreichbar ist. Nur wenn dies der Fall ist, wird das Verschlüsselungszertifikat ausgestellt. Der Homeserver muss also unbedingt über Port 80 und 443 aus dem Internet erreichbar sein, wie in der Grundkonfiguration beschrieben.
Im ersten Schritt weist das Tool nochmal auf die genannten Voraussetzungen hin. Außerdem wird auf die Nutzungsbedingungen von Let’s Encrypt hingewiesen, die man akzeptieren muss, wenn man das Zertifikat erstellen und nutzen möchte.
Wenn alle Voraussetzungen erfüllt sind und man die Bedingungen akzeptiert, bestätigt man dies, indem man „y“ eingibt und Enter drückt.
Anschließend wird man nach einer E-Mail-Adresse gefragt. An diese Adresse wird z.B. ein Hinweis gesendet, wenn das Zertifikat abläuft, weil die automatische Erneuerung nicht funktioniert hat.
Nun muss der Domainname eingegeben werden, für den das Zertifikat erzeugt werden soll. In diesem Fall also die DynDNS-Adresse.
Damit sind alle benötigten Eingaben gemacht. Mit der Entertaste werden die Eingaben bestätigt, anschließend versucht Let’s Encrypt über die angegebene Internetadresse eine Verbindung zum Homeserver aufzubauen, um sicherzustellen, dass man auch wirklich über die Rechte an der Domain verfügt. Wenn dies funktioniert, wird das Verschlüsselungszertifikat ausgestellt und automatisch eingerichtet.
Wenn alles geklappt hat, lässt sich Nextcloud nun über eine verschlüsselte Verbindung aufrufen, indem man https:// vor der DynDNS-Adresse im Browser eingibt. Der Webbrowser zeigt dann ein verschlossenen Schloss vor der Domain an.
Updates für Nextcloud einspielen
Wenn Updates für Nextcloud verfügbar sind, muss das Snap-Paket aktualisiert und Nextcloud neu gestartet werden. Dies geschieht mit folgenden Kommandos.
Damit man über Nextcloud auch auf die Dateien zugreifen kann, die über die lokalen Netzwerkfreigaben auf dem Homeserver gespeichert wurden, müssen diese Ordner noch in Nextcloud eingebunden werden.
Das Problem dabei ist, dass Nextcloud und Samba mit unterschiedlichen Systembenutzern laufen, was zu Berechtigungsproblemen führt. Aus diesem Grund kann man nicht einfach die Nextcloud-Datenverzeichnisse der einzelnen Benutzer über Samba freigeben. Der Snap-Dienst, der Nextcloud ausführt, läuft als Rootuser, was unter Windows dem Administratoraccount entspricht. Samba läuft mit einem eigenen Systembenutzer, mit sehr viel weniger Rechten, sodass Samba gar keinen Zugriff auf die Daten in Nextcloud hat.
Den Samba-Server als Root laufen zu lassen wäre eine Lösung, allerdings ein sicherheitstechnisches Desaster, weshalb man dies auf keinen Fall in Erwägung ziehen sollte. Das Nextcloud hier als Root ausgeführt wird ist hingegen nicht vergleichbar. Denn tatsächlich läuft nur der Snap-Dienst als Root, der die einzelnen Snap-Pakete in einer vom restlichen System abgeschotteten Umgebung ausführt.
Einbinden von Samba-Freigaben mit dem External-Storage-Plugin (funktioniert derzeit nicht)
Die bisherige Lösung mit einer klassischen Nextcloud-Installation war das External-Storage-Plugin von Nextcloud. Dies bietet auch eine Schnittstelle für Samba Freigaben an. Damit greift Nextcloud quasi wie jeder andere Computer auf die Freigaben zu, sodass hier keine Berechtigungsprobleme entstehen. Eine einfache wie elegante Lösung.
Leider funktioniert das Einbinden von Samba-Freigaben über das External-Storage-Plugin nicht, wenn man Nextcloud als Snap-Paket einsetzt. Ein entsprechender Bugreport ist schon seit Längerem vorhanden. Allerdings ist das Problem entweder schwer zu lösen, oder es ist den Entwicklern nicht wichtig genug. So oder so, derzeit scheidet diese Lösung leider aus.
Trotzdem möchte ich an dieser Stelle auf diese Möglichkeit hinweisen, falls sich die Situation in Zukunft ändert.
Samba-Freigaben mit Bindfs in Nextcloud einbinden
Als Alternative werden die Samba-Freigaben mittels Bindfs in Nextcloud eingebunden. Bindfs ermöglicht es, Ordner an zusätzlichen Stellen im Dateisystem mit anderen Benutzerrechten einzubinden.
Man kann damit beispielsweise die Samba-Freigabe „Tom“ in das Datenverzeichnis des Nextcloud-Users „Tom“ verlinken. Aus Sicht von Nextcloud sieht es dabei so aus, als ob die Dateien Root gehören, also dem Systemuser, der Snaps und damit auch Nextcloud ausführt. Tatsächlich werden die Daten jedoch mit dem Benutzer smb geschrieben, also dem Systembenutzer von Samba.
Das Problem dabei ist, dass jedes Mal, wenn eine Datei über die Samba-Freigaben hinzugefügt oder geändert wurde mit Nextcloud ein Filsystem-Scan durchgeführt werden muss. Ansonsten bekommt Nextcloud von der neuen Datei nichts mit und die Datei wird in Nextcloud nicht angezeigt. Dieses Problem kann man vermeiden, indem man den mit Bindfs erstellten Ordner wiederum mit dem External-Storage-Plugin in Nextcloud einbindet.
In diesem Beispiel passiert also folgendes:
Der Order mit der Samba-Freigabe /mnt/storage/shares/tom wird mit Bindfs nach /mnt/storage/nextcloud-bindfs/heimnetz-tom verlinkt.
Wenn nun Nextcloud Dateien nach /mnt/storage/nextcloud-bindfs/heimnetz-tom schreibt, werden diese tatsächlich mit dem Systemuser smb nach /mnt/storage/shares/tom geschrieben. Davon merkt Nextcloud aber nichts.
Der Ordner /mnt/storage/nextcloud-bindfs/heimnetz-tom wird über das Nextcloud-Plugin „External Storage“ in den Nextcloud-Account von Tom eingebunden.
Damit ist die Samba-Freigabe „Tom“ auch über Nextcloud nutzbar. Änderungen werden immer mit demselben Systemnutzer auf die Festplatte geschrieben, sodass es nicht zu Berechtigungsproblemen kommt. Außerdem sind Änderungen an Dateien immer sofort in Nextcloud, als auch in den Samba-Freigaben sichtbar.
Bindfs installieren und Ordner mit anderen Benutzerrechten mounten
Zunächst einmal wird Bindfs installiert.
sudo apt install bindfs
Dann muss man für jede einzelne Samba-Freigabe die mit Nextcloud verbunden werden soll eine Zeile in die Datei /etc/fstab einfügen. In diesem Beispiel wird die Nextcloud-Freigabe „Tom“ zur Nextcloud von Tom hinzugefügt.
Zuerst wird der Ordner angelegt, in welchem die Samba-Freigabe mit den Benutzerrechten von Root eingebunden wird.
Dann wird die Datei /etc/fstab im Texteditor geöffnet.
sudo nano /etc/fstab
Hier wird folgende Zeile eingefügt. Achtung: Es handelt sich um eine, sehr lange Zeile, die ohne Zeilenumbruch in die Konfigurationsdatei eingefügt werden muss.
Für jede Samba-Freigabe, die man in einen Nextcloud-Benutzeraccount einbinden will, muss dieser Vorgang wiederholt werden. Für die Freigabe Media muss also der Ordner /mnt/storage/nextcloud-bindfs/heimnetz-media angelegt werden.
Dann wird eine weitere Zeile in die /etc/fstab eingefügt. Dort wird /mnt/storage/shares/tom durch /mnt/storage/shares/media ersetzt und /mnt/storage/nextcloud-bindfs/heimnetz-tom wird durch /mnt/storage/nextcloud-bindfs/heimnetz-media ersetzt.
Um die Konfiguration zu aktivieren wird folgender Befehl ausgeführt.
sudo mount -a
Ordner in Nextcloud einbinden
Um die soeben erstellten Ordner in Nextcloud verfügbar zu machen, wird nun das External-Storage-Plugin installiert. Hierzu loggt man sich mit dem bei der Installation erstellten Administratoraccount in Nextcloud ein.
Dann klickt man oben rechts auf das Icon mit dem Anfangsbuchstaben des Benutzernamens und anschließend auf „+ Apps„.
Hier findet man nun bei den deaktivierten Apps die App „External Storage Support“ die mit einem Klick auf Aktivieren installiert wird.
Zum Einbinden der Ordner in Nextcloud klickt man wieder auf das Icon oben rechts und anschließend auf Einstellungen. Im linken Bereich findet man verwirrender Weise zwei Punkte mit dem Namen „Externe Speicher„. In diesem Fall wird der untere benötigt.
Ordnername: Mit diesem Namen erscheint die Samba-Freigabe in Nextcloud. Es kann ein beliebiger Name vergeben werden.
Verfügbar für: Alle Nextcloud-Benutzernamen, die auf diese Freigabe zugreifen dürfen.
Mit einem Klick auf den Haken wird der Ordner in Nextcloud aktiviert.
Sicherheitshinweis: Wenn der Haken bei „Benutzern erlauben, externen Speicher einzubinden“, darf jeder Nextcloudnutzer Ordner außerhalb seines Nextcloud-Accounts selbständig einbinden. Das bedeutet, wenn Lena den Pfad /mnt/storage/nextcloud-bindfs/heimnetz-tom kennt, kann sie die eigentlich privaten Dateien von Tom einbinden.
Wenn man nun über das Ordner-Icon in der Menüleiste zu den Dateien in Nextcloud wechselt, findet man hier den neuen Ordner Heimnetz-Tom. Hierüber hat man nun Zugriff auf die Dateien aus der Samba-Freigabe.
Zur Organisation und Wiedergabe von Musik und Videos wird Plex verwendet. Plex besteht aus zwei Komponenten, dem Server und den Clients. Die Serverkomponente wird auf dem Homeserver installiert. Hier werden alle Audio- und Videodateien zentral verwaltet und der Mediaserver organisiert.
Die Clients sind die Wiedergabegeräte. Dies kann ein Mediacenter-PC, ein iPhone, ein Android-Smartphone oder ein Fernseher mit Amazon FireTV oder Google Chromecast sein. Diese verbinden sich mit dem Server. Anschließend kann die komplette Mediathek auf dem Client wiedergegeben werden.
Plex ist in einer kostenlosen und in einer kostenpflichtigen Version erhältlich. Vorteil der kostenpflichtigen Version ist vor allem, dass Inhalte auch auf das Smartphone heruntergeladen werden können, um diese offline zu konsumieren. Die Unterschiede zwischen kostenloser und kostenpflichtiger Version werden auf der Homepage von Plex erklärt.
Die Installation und Einrichtung von Plex ist dank der fertigen Installationspakete relativ schnell erledigt.
Um Plex zu nutzen, muss man sich zuerst einen kostenlosen Account auf der plex.tv anlegen.
Plex Mediaserver installieren
Auch der Plex Mediaserver ist als Snap-Paket für Ubuntu verfügbar. Da die Nutzung dieser Version sowohl die Einrichtung vereinfacht, als auch die Sicherheit verbessert, wird in dieser Anleitung der Plex Mediaserver als Snap-Paket installiert. Dies geschieht mit folgendem Befehl.
sudo snap install plexmediaserver
SSL-Zertifikat für den Mediaserver erstellen
Damit die Verbindung zum Plex-Mediaserver über das Internet verschlüsselt erfolgt, muss auch hier ein Verschlüsselungszertifikat eingerichtet werden. Hierfür kann das Zertifikat verwendet werden, dass bereits für Nextcloud erstellt wurde.
Allerdings liegt dieses bisher in einer Form vor, die der Plexserver nicht versteht. Das Zertifikat muss also umgewandelt werden. Außerdem muss auch dieser Umwandlungsprozess automatisiert werden, da das Zertifikat ansonsten nach drei Monaten abläuft und nicht mehr funktioniert.
Als Erstes wird das vorhandene Zertifikat in ein anderes Format konvertiert, das Plex verarbeiten kann. Hier muss jeweils der eigene DynDNS Name angepasst werden und ein Passwort vergeben werden. Der erste Befehl legt einen Ordner an, in welchem das Zertifikat für Plex gespeichert wird. Anschließend wird das bereits vorhandene Zertifikat umgewandelt und im gerade erstellten Ordner gespeichert.
Wichtig: Es handelt sich um einen langen Befehl, der in einer Zeile eingegeben werden muss.
Let’s Encrypt Zertifikate sind immer nur drei Monate gültig, dann muss ein neues Zertifikat ausgestellt werden. Für Nextcloud geschieht dies automatisch. Die Umwandlung des Zertifikats für Plex muss jedoch manuell konfiguriert werden. Zum Glück sieht Certbot, das Programm welches die Zertifikate erzeugt, solche Fälle vor und verarbeitet nach dem Erstellen eines Zertifikats alle Skripte, die unter /var/snap/nextcloud/current/certs/certbot/config/renewal-hooks/ gespeichert sind.
In diesem Schritt wird also ein Skript erstellt, dass die Konvertierung des Zertifikats vornimmt. Das Skript wird in einem Ordner im Homeverzeichnis des aktuellen Users gespeichert. In diesem Ordner wird später auch das Skript für das Backup untergebracht. Anschließend wird das Skript in einen speziellen Ordner von Certbot verlinkt, wodurch es immer dann ausgeführt wird, wenn Certbot ein neues Zertifikat über Let’s Encrypt erzeugt hat.
Achtung: Es kann sein, dass bei einer Aktualisierung des Nextcloud-Snap-Pakets diese Verknüpfung gelöscht wird. Dann wird das Zertifikat nicht mehr automatisch für Plex erstellt. Daher sollte man nach einem Update des Nextcloud-Snap-Pakets den letzten Befehl erneut ausführen.
Dann wird die Datei mit einem Texteditor geöffnet und folgender Inhalt in die Datei geschrieben. Hier muss wieder die eigene Domain und das gewählte Passwort angepasst werden.
Mit Strg+O wird die Datei gespeichert und mit Strg+X der Texteditor wieder geschlossen. Auch hier muss bitte wieder beachtet werden, dass es sich um einen langen Befehl handelt, der nicht mit einem Zeilenumbruch unterbrochen werden darf. Der Inhalt der Datei muss also folgendermaßen aussehen.
Von nun an wird jedes mal, wenn ein neues Let’s Encrypt Zertifikat für Nextcloud erzeugt wird, automatisch auch eine Version für Plex erstellt.
Plex Mediaserver konfigurieren
Der Plex Mediaserver wird komplett über eine Konfigurationsoberfläche im Webbrowser eingerichtet. Für die Erstkonfiguration wird diese über die lokale IP-Adresse aufgerufen. Später funktioniert auch der Aufruf über die Domain.
http://192.168.30.114:32400/web
Achtung: Da die Verwendung des SSL-Verschlüsselungszertifikats noch nicht im Mediaserver konfiguriert ist, erfolgt die Verbindung noch unverschlüsselt. Bis die Konfiguration abgeschlossen ist, sollte man den Mediaserver nur im eigenen Heimnetzwerk verwenden.
Als Erstes muss man sich mit seinem Plex-Account einloggen. Nach dem Login wird man auf den kostenpflichtigen Plex-Pass hingewiesen, der einige Zusatzfeatures bietet. Das Fenster kann über das „X“ in der Ecke geschlossen werden.
In Schritt 1 muss ein beliebiger Name für den Server vergeben werden. Ich bleibe in diesem Beispiel bei Mimas.
In Schritt 2 werden Mediatheken hinzugefügt. Dies kann auch später noch geändert oder ergänzt werden. Wir legen in diesem Beispiel zwei Mediatheken an. Eine für unsere Audio- und eine für die Videodateien. Entsprechend wird der Typ Filme/Serien oder „Andere Videos“ gewählt.
Für die Audiodateien wählen wir Musik.
Als Ordner für die Mediathek wird der Pfad zu den eigenen Audiodateien gewählt. Beispielsweise /mnt/storage/shares/media/audio gewählt.
Unter Optionen steht uns nur die Möglichkeit eine einfache Musik-Mediathek erstellen zur Verfügung. Für die Premium-Mediathek ist ein kostenpflichtiger Plexpass nötig.
Die Einstellungen unter Erweitert können unverändert bleiben.
Die Mediathek wird nun erstellt, die Dateien durchsucht und in die Datenbank des Mediaservers eingetragen. Diese Schritte müssen nun wiederholt werden für alle Medien die über Plex eingebunden und gestreamt werden sollen. Also Audiodateien, Videodateien und Bilder.
In Schritt 3 folgt ein Hinweis auf die zur Verfügung stehenden Apps, die zum Abspielen auf dem Smartphone oder dem Fernseher benötigt werden. Mit einem Klick auf Fertig ist der erste Teil der Konfiguration abgeschlossen.
Nun wird man auf die normale Benutzer- und Konfigurationsoberfkäche von Plex weitergeleitet. Grundsätzlich kann der Mediaserver bereits genutzt werden. Als letzter Schritt sollte nun aber noch die verschlüsselte Verbindung konfiguriert werden.
Dazu geht man in die Servereinstellungen, welche man über das Werkzeugsymbol in der rechten oberen Ecke erreicht. Anschließend wählt man in der linken Seitenleiste den Menüpunkt „Netzwerk“ aus.. Eventuell muss man mit einem Klick auf erweiterte Optionen weitere Felder freischalten. Nun werden folgende Eintragungen vorgenommen.
Sichere Verbindung: Bevorzugt, wenn alles funktioniert sollte dies auf Erforderlich umgestellt werden.
Eigener Zertifikatsschlüssel: Das Passwort welches für das Zertifikat vergeben wurde
Eigene Zertifikatsdomain: Die DynDNS Adresse. Hier mimashome.ddns.net
Die weiteren Felder müssen nicht ausgefüllt, bzw. verändert werden. Ganz unten auf der Seite findet man den Button zum Speichern der Einstellungen.
Unter dem Punkt Fernzugriff muss nun noch der Zugriff aus dem Internet erlaubt werden und der entsprechende Port angegeben werden. Dazu einen Haken bei „Öffentlichen Port manuell definieren“ setzen und den Port 32400 angeben.
Anschließend auf „erneut versuchen“ klicken. Nach einem kurzen Moment sollte die rote Warnmeldung verschwinden und durch eine grüne Erfolgsmeldung ersetzt werden. Wichtig ist hierzu, dass die entsprechende Portweiterleitung im Router korrekt gesetzt ist.
Damit Plex die Änderungen übernimmt und das Zertifikat einliest, muss der Plexserver neu gestartet werden. Dies geschieht mit folgendem Befehl.
sudo snap restart plexmediaserver
Damit ist der Plex Mediaserver auf unserem selbstgebauten NAS bzw. Homeserver auch über das Internet erreichbar.
In die Plexapp, oder den Webbrowser muss ab jetzt folgende Adresse eingegeben werden, um den eigenen Streamingserver zu erreichen
https://mimashome.ddns.net:32400
Wichtig ist das https. Damit wird eine sichere, verschlüsselte Verbindung zum Mediaserver über das Internet aufgebaut.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Converseen ist ein Tool, mit dem sich mehrere Bilder stapelweise verarbeiten lassen. Das Programm bietet die Möglichkeit viele Bilder auf einmal zu vergrößern, zu verkleinern, in ein anderes Format zu konvertieren oder Bilder zu drehen. Zur Bildbearbeitung verwendet Converseen ImageMagick.
Ich speichere die Bilder meiner Kamera im RAW-Format und als JPEG. Die RAW-Bilder verwende ich zur Bearbeitung. Die JPEGs importiere ich beispielsweise in die Fotobibliothek des Smartphones, ohne sie weiter zu bearbeiten. Sie dienen als Erinnerungen.
Irgendwann fiel mir auf, dass ich die JPEG-Version der Bilder nicht in derselben, hohen, Auflösung benötige wie die RAW-Bilder. Also änderte ich die Einstellung in der Kamera, sodass die JPEG-Versionen speicherplatzsparend in einer niedrigeren Auflösung gespeichert werden.
Allerdings wollte ich auch die alten, bereits gespeicherten Bilder verkleinern um Speicherplatz zu sparen, der ja gerade auf dem Smartphone gerne knapp wird.
Alle Bilder mit einem Bildbearbeitungsprogramm wie GIMP zu öffnen, zu verkleinern und wieder zu speichern kam nicht in Frage. Das wäre viel zu zeitaufwändig gewesen. Also habe ich mich auf die Suche nach einem Programm gemacht, dass möglichst alle Bilder auf einmal verkleinern kann.
Gefunden habe ich Converseen, dass genau diese Aufgabe erfüllt.
Viele Bilder auf einmal vergrößern, verkleinern, drehen oder konvertieren
Bei Ubuntu ist Converseen in den Paketquellen enthalten und kann somit direkt installiert werden. Wer die aktuellste Version möchte, der findet ein entsprechendes Repository auf der Projekthomepage (http://converseen.fasterland.net). Dort findet man auch den Quellcode von Converseen, sowie die Windows-Version.
Eigentlich ist Converseen selbsterklärend. Allerdings habe ich nicht auf Anhieb kapiert, dass man links, wo das Vorschaubild gezeigt wird, nach unten scrollen muss, um zu den Bearbeitungsoptionen zu gelangen. Stattdessen habe ich mehrere Minuten damit verbracht, diese in den Menüs zu suchen. Dort findet sich jedoch nichts.
Man muss also im „Actions Panel“ nach unten scrollen, um zu den Bearbeitungsoptionen zu gelangen. Dort kann man beispielsweise die gewünschte Bildgröße in % vom Original, oder in Pixeln angeben.
Außerdem kann der Speicherort für die neuen Bilder ausgewählt werden und die Benennung geändert werden. So kann beispielsweise ein Zusatz vor, oder nach dem ursprünglichen Dateinamen hinzugefügt werden.
Anschließend aktiviert man alle Bilder die bearbeitet werden sollen und klickt auf „Convert“. Damit startet Converseen die Bearbeitung.
Wer sich etwas für Raumfahrt interessiert, dem ist die Webseite Apollo in Real Time wahrscheinlich bereits ein Begriff. Auf dieser Webseite wurde vergangenes Jahr eine riesige Menge an Material zur Apollo 11 Mission, bzw. zur Mondlandung online gestellt. Das besondere ist, dass nicht nur Video- Audio- und Bildmaterial online gestellt wurde, sonder die komplette Mission in Echtzeit miterlebt werden kann.
Nun ist eine weitere, ähnlich bekannte Apollo-Mission hinzugekommen. Apollo 13. Die gescheiterte Mondlandemission und die anschließende (erfolgreiche) Rettungsmission kann man nun in Echtzeit miterleben. Das gesamte Material besteht aus insgesamt neun Missionstagen.
Laut Angabe auf der Webseite ist sämtliches Videomaterial aus dem Kontrollzentrum und Bildmaterial aus dem Weltraum verfügbar. Besonders toll ist, dass zu allen Funksprüchen Transkription vorliegt und man diese in einem Cahtähnlichen Fenster mitverfolgen kann. Dies ist besonders hilfreich, da die Funksprüche nicht immer leicht zu verstehen sind, da die Audioqualität natürlich nicht mit einem Telefonat vergleichbar ist.
Da die Mission sechs Tage dauerte, ist es den meisten von uns wahrscheinlich nicht möglich, den kompletten Missionsverlauf zu verfolgen. Man hat daher zwei Möglichkeiten in die Mission einzusteigen. Zum einen kann man ganz zu Beginn mit dem Start der Mission beginnen.
Außerdem läuft die Mission permanent in Echtzeit ab. Ist die Mission abgeschlossen, beginnt sie von vorne. Auf der Webseite wird angezeigt, an welchem Missionstag und zu welcher Zeit man sich gerade befindet. Ich nutze diese Möglichkeit gerne, um immer wieder für eine halbe Stunde in die Mission einzusteigen. Das Wissen, dass es sich nicht um einen Film handelt, sondern dass dies vor 50 Jahren wirklich passiert ist, verursacht bei mit den ein oder anderen Gänsehautmoment.
Im ersten Moment wird man von der Menge an Informationen auf der Webseite nahezu erschlagen. Hier sollte man sich ein bisschen Zeit nehmen und die verschiedenen Einstellmöglichkeiten erkunden.
Laut Webseite bekommt man während der Mission folgendes Material zu sehen.
Sämtliches Filmmaterial aus dem Kontrollraum
Sämtliches Filmmaterial aus der Kapsel
Sämtliches Audiomaterial aus dem Kontrollraum (7200 Stunden).
144 Stunden an Funksprüchen zwischen Erde und Raumschiff.
Pressekonferenzen
600+ Fotos
Durchsuchbares Transkript
Berichte nach dem Ende der Mission
Wer sich für die Anfänge der Raumfahrt interessiert, oder wer vielleicht einfach nur die Apollo 13 Verfilmung gut fand, der sollte unbedingt einen Blick auf Apollo 13 in Real-Time werfen.
Die Möglichkeiten die die Linux-Kommandozeile bietet sind nahezu unbegrenzt. Es existieren unendlich viele Tools und Befehle und nahezu unendlich viele Möglichkeiten diese zu kombinieren und zu verknüpfen.
Natürlich merkt man sich all das, was man im Alltag verwendet. Aber Funktionen die man nur selten verwendet vergisst man auch leicht. In diesem Fall durchsuche ich die History nach einem Parameter an den ich mich noch erinnere. Sofern der Befehl aber nicht mehr in der History zu finden ist, geht die Sucherei los.
Wenn man nicht gerade beruflich den ganzen Tag mit der Kommandozeile arbeitet, so kennt man deren Möglichkeiten höchstwahrscheinlich nur zum Teil. Jedenfalls geht es mir so. Ich entdecke laufend, mit jedem neuen Problem und jeder neuen Lösung neue Möglichkeiten der Linux-Kommandozeile.
Egal ob man nun etwas sucht, oder einfach nur lernen und stöbern möchte, die Linux Command Library (http://linuxcommandlibrary.com) ist eine tolle Anlaufstelle.
Die Linux Command Library ist unterteilt in drei Kategorien. Commands, Basic und Tips.
In der Kategorie Commands findet man eine riesige Liste mit Befehlen. Ein Klick auf den Befehl zeigt die Manpage des dazugehörigen Tools, ergänzt um ein praktisches TLDR mit den gängigsten Optionen.
Die Kategorie Basic zeigt weitere Unterkategorien an. Beispielsweise System Information, Files/Folders, Network, SSH und viele mehr. Ein Klick auf die Unterkategorie listet passende Befehle und Tools auf. Gerade die Kategorie Basic lädt zum Stöbern ein.
Dann gibt es noch die allgemeine und recht kurze Kategorie Tips. Hier finden sich allgemeine Tipps und Hinweise, beispielsweise zur Verkettung von Befehlen.
Die Linux Command Library gibt es nicht nur im Web, sondern auch als App für Android un iOS. Die App ist zwar Open Source und der Quellcode auf Github, trotzdem scheint es die App für Android nur über Google Play zu geben. Für das iPhone und iPad ist die Linux Command Library logischerweise nur über den App-Store verfügbar.
Der Vorteil der Apps ist, dass diese auch offline funktionieren. Ansonsten funktioniert die Webseite auch ganz hervorragend im Webbrowser auf dem Smartphone.
Um die SSL-Konfiguration eines Webservers zu untersuchen ist SSL Labs von Qualis oft die erste Wahl. Allerdings verwenden nicht nur Webserver SSL, bzw. TLS. Und nicht jeder möchte unbedingt externe Onlinetools für jede Aufgabe verwenden.
Das Linux Magazin stellt in jeder Ausgabe kleine und praktische Tools vor und immer wieder finden sich darunter nette Helfer für den Alltag. In Ausgabe 03/2020 findet testssl.sh Erwähnung.
Testssl.sh ist ein tolles Tool zum prüfen der SSL-Konfiguration. Es läuft lokal auf der Kommandozeile und erzeugt ähnlich übersichtliche und leicht verständliche Reports wie SSL Lab. Außerdem werden verschiedene Protokolle unterstützt, so dass nicht nur Webserver, sondern beispielsweise auch Mailserver getestet werden können.
Ein Aufruf von „./testssl.sh https://example.de“ prüft die SSL-Einstellungen einer Webseite mit den Standardeinstellungen.
Ein Aufruf des Skripts ohne irgendwelche Parameter zeigt eine Liste mit verfügbaren Optionen und Schaltern. Damit können bestimmte Test gewählt werden, oder auch Zugangsdaten für eine via HTTP Basic Auth versperrte Seite.
Die Ergebnisse der einzelnen Tests werden übersichtlich aufbereitet im Terminal ausgegeben. Alternativ kann man die Ergebnisse auch in eine Datei schreiben lassen. Hierfür wird eine Vielzahl an Formaten unterstützt, wie z.b. Text, HTML, CSV, und andere.
Als Tim Berners Lee 1990 am Cern den allerersten Webbrowser programmiert hat, war ich noch viel zu klein um etwas von dieser Entwicklung mitzubekommen. Als Name für seinen Webbrowser wählte er „World Wide Web“.
Das World Wide Web das ich Ende der 90er kennen lernte, war voller blinkender GIFs und greller Laufschrift. Dinge die der erste Webbrowser noch gar nicht darstellen konnte.
Zum dreißigjährigen Geburtstag des WWW haben Anfang 2019 Entwickler am Cern den allerersten Webbrowser innerhalb eines modernen Webbrowsers nachgebaut. Da der echte, erste, Webbrowser noch keine modernen Web- und Verschlüsselungstechnologien unterstützt hat, könnte man mit ihm heute wahrscheinlich keine einzige Webseite mehr aufrufen.
Die nachgebaute Version des World-Wide-Web-Browsers kann auch moderne https-verschlüsselte Seiten öffnen. Behält aber das Look-and-Feel des ursprünglichen Webbrowsers bei. So kann der Browser ausschließlich Text darstellen. In Webseiten eingebundene Bilder werden nicht dargestellt. Java-Script wird sowieso nicht ausgeführt. Alles in allem erinnert das Surfen mit World Wide Web eher an einen Textbrowser wie Lynx als an einen modernen Webbrowser.
Die Neuentwicklung von World Wide Web läuft direkt im Browser und muss nicht installiert werden. Wer Lust hat durch das moderne Web mit den Möglichkeiten von 1990 zu reisen, der findet World Wide Web auf folgender Webseite.
Wenn man einen Server betreibt – und sei es nur ein Raspberry Pi – dann interessiert man sich wahrscheinlich auch dafür wie dieser ausgelastet ist und ob alle Dienste durchgehend funktionieren. Wo Tools wie Grafana oder Munin übertrieben sind, kann Monitorix punkten.
Monitorix ist Open Source, die Entwicklung des Projekts kann man auf Github verfolgen. Fertige Installationspakete für die gängigen Distributionen findet man auf der Downloadseite des Projekts. Seit Buster ist Monitorix auch in den Debian Paketquellen enthalten und kann damit auch auf dem Raspberry Pi mit Raspbian mit einem einfachen sudo apt install monitorix installiert werden.
Monitorix ist in Perl geschrieben und bringt seinen eigenen Webserver mit, der standardmäßig über Port 8080 unter http://localhost:8080/monitorix erreichbar ist und optional mit einem Passwortschutz versehen werden kann.
Für die schnelle Installation und Einrichtung eines Monitoringtools auf dem Homeserver oder Raspberry Pi ist das sicher eine brauchbare Lösung. Wer dem eingebauten Webserver nicht traut, der kann Monitorx auch über einen der bekannten Webserver erreichbar machen.
Apache und lighthttpd können mit mod_cgi den Perl-Code von Monitorix direkt ausführen. Vorschläge für eine entsprechende Serverkonfiguration liefert Monitorix im docs-Verzeichnis mit.
Alternativ kann man Apache oder Nginx als Proxy vor den eingebauten Webserver schalten. Den Zugriff auf den eingebauten Webserver sollte man dann in der Konfigurationsdatei unter /etc/monitorix/monitorix.conf auf die lokale IP-Adresse beschränken und/oder den Zugriff von außen durch Firewallregeln verbieten.
Untenstehende Konfiguration verwende ich um einen NGINX als Proxy vor den Monitorix-Webserver zu setzen und den Zugang mit einem Passwort zu sichern.
## Monitorix start
location /monitorix {
auth_basic "Restricted";
auth_basic_user_file /path/to/auth-basic/monitorix.htpasswd;
include proxy_params;
proxy_pass http://127.0.0.1:8080/monitorix;
allow 127.0.0.0/8;
location ~ ^/monitorix/(.+\.png)$ {
alias /var/lib/monitorix/www/$1;
}
}
## Monitorix end
Monitorix sammelt aus einer Vielzahl an Quellen Daten und bereitet diese zu ansprechenden Graphen auf. Die Liste der unterstützten Datenquellen kann man auf der Webseite unter Features ansehen, die Liste ist wirklich sehr lang. So unterstützt Monitorix auch das Auswerten verschiedener Raspberry Pi Sensoren und kann so u.a. den Verlauf der Kerntemperatur und Taktfrequenz auswerten. Teilweise müssen diese aber erst in der Konfigurationsdatei aktiviert werden.
Auch das Erstellen von Emailreports und Alarmmeldungen, wenn z.B. die load average einen bestimmten Wert übersteigt oder der Speicherplatz zu Neige geht. Natürlich stößt ein ausschließlich lokal installiertes Monitoringtool hier an seine Grenzen. Fällt das System aus, kann es auch keine Warnungen mehr versenden, so dass der Ausfall im Zweifel unbemerkt bleibt.
Wenn man aber bestimmte Daten wie z.B. die Systemauslastung, die Zugriffe auf Webserver und Datenbank im Tagesverlauf visualisieren möchte, ist Monitorix eine Lösung die schnell installiert und eingerichtet ist.
Der Flughafen Stuttgart liegt nur wenige Kilometer von meinem Wohnort entfernt. Da ich aber nicht in der An- oder Abflugrichtung der Flugzeuge wohne, ist der Flughafen für mich fast immer unhörbar. Zum Glück, denn auch ich weiß welchen donnernden Lärm gerade die startenden Jets verursachen können.
Ich war daher sehr neugierig, als ich erfuhr, dass der Flughafen Stuttgart seine Lörmmessungen live im Internet zur Verfügung stellt. Acht Messstationen die sich neben der Startbahn, sowie in der deren Verlängerung in der Umgebung des Flughafens befinden, messen permanent den auftretenden Lärm.
Diese Messungen werden auf einer Karte visualisiert. Dabei wird nicht nur der Lärmpegel angegeben, sondern auch welches Flugzeug gerade startet oder landet. Inklusive Flugnummer sowie Start- und Zielflughafen. Ich freue mich immer sehr, wenn solche Datenerhebungen mit der Öffentlichkeit geteilt werden. Insbesondere wenn es sich um so ein heikles Thema wie Fluglärm handelt.
Es fällt auf, dass der Anflug und Landung relativ leise vonstatten geht. Wie zu erwarten ist, verursachen die startenden Flugzeuge den meisten Lärm. Wie aus dem Nichts taucht dann ein roter Punkt auf der Startbahn auf. Abfliegende Flugzeuge werden rot dargestellt, ankommende Maschinen werden blau angezeigt.
Je nach Lärmpegel werden die Punkte die die Messtationen symbolisieren grün, gelb oder rot eingefärbt. Gelb werden die Punkte häufig wenn sich das Flugzeug direkt über der Messstation befindet. Rote Punkte tauchen häufig auf wenn ein Flugzeug startet.
Natürlich können die Messstationen nicht unterscheiden ob Lärm von einem Flugzeug oder aus einer anderen Quelle stammt. Somit steigt der Lärmpegel auch oft, wenn sich gar kein Flugzeug im Anflug befindet. Vielleicht weil gerade ein Motorrad vorbeigerast ist. Trotzdem sieht man seht schön wie sich der Lärmpegel verändert wenn gerade ein Flugzeug im Anflug oder beim Starten ist.
Der Lärmpegel wird in db(A) angegeben. Zum Vergleich geben diverse Webseiten folgende Werte an: Eine ruhige Straße nachts ca. 40 Dezibel Normaler Straßenverkehr ca. 60 Dezibel Vorbeifahrendes Motorrad ca. 70 Dezibel
Insbesondere im Serverbereich ist Hetzner eine große Nummer. Genauso hat man aber reguläre shared Webhostingangebote im Programm. Da ich seit einiger Zeit Nextcloud Angebote (mittlerweile unter dem Namen Hetzner Storage Share vermarktet) nutze und damit sehr zufrieden bin, hat es sich angeboten, auch das Webhosting bei Hetzner zu testen.
Hetzner nutzt den Apache Webserver, so das die Möglichkeit zur Konfiguration des Servers und PHP über eine HTACCESS-Datei möglich ist. Individuelle PHP-Einstellungen können aber auch über das Webinterface vorgenommen werden. Hier kann z.B. PHP-OPCache aktiviert und deaktiviert werden. Das ist bei den anderen getesteten Hostern nicht möglich. Hier ist OPCache entweder aktiviert, oder wird gar nicht genutzt.
Wie alle getesteten Angebote bietet auch Hetzner kostenlose Let’s Encrypt Zertifikate für alle Domains an. Diese können sowohl mit Domains genutzt werden, die bei Hetzner registriert sind, als auch mit Domains die bei einem anderen Anbieter liegen, sofern deren DNS-Einträge auf den Hetzner Webspace zeigen.
Ich habe mir das Level 9 Paket geholt, welches monatlich 9,90€ und einmalig 4,90€ Einrichtungsgebühr kostet. Das Paket kann monatlich gekündigt werden.
Ladezeit
Die Ladezeiten waren durchweg sehr gut. Ausreißer mit besonders langer Ladezeit, wie sie bei manchen anderen Anbietern regelmäßig auftreten, sind mit beim Webhosting von Hetzner nicht aufgefallen.
Ladezeit all-inkl.com Webhosting, gemessen mit StatusCake, Serverstandort weltweit wechselnd:
Ladezeiten all-inkl.com, gemessen mit Pingdom, Serverstandort Frankfurt:
Bester:
Schlechtester:
Durchschnitt:
Backups
Hetzner erstellt tägliche Backups von Webspace und Datenbanken. Die Backups werden für 14 Tage vorgehalten und können über das Webinterface wieder eingespielt werden.
Besonders erfreulich ist, dass man nicht zwingend das komplette Backup wieder einspielen muss. Stattdessen können auch einzelne Dateien, die man vielleicht versehentlich gelöscht hat, wieder hergestellt werden.
Leider bekommt man weder über den FTP-Client, noch via SSH Zugang zu den Backups. So hat man keine Möglichkeit, diese auf einen externen Speicherplatz zu kopieren.
Wer für seine Backups nicht ausschließlich auf die Hetzner-Infrastruktur vertrauen will, der muss zusätzliche externe Backups über ein WordPress-Plugin anlegen.
Statistiken
Von den getesteten Anbietern ist Hetzner, beim Thema Statistiken, mein Favorit. Die Logfiles werden direkt beim Erstellen anonymisiert, jedenfalls die, auf welche man als Kunde Zugriff erhält.Dabei werden die letzten Ziffern der IP-Adresse nicht entfernt, sondern durch Zufallszahlen ausgetauscht. So sind in den Statisiken zwar vollständige IP-Adressen zu sehen, diese entsprechen aber nicht mehr den echten IPs der Webseitenbesucher. Somit dürften die Statistiken von Hetzner DSGVO-Konform nutzbar sein.
Als Statistiktools sind bei Hetzner AWStats und eine eigene Lösung namens „Report Magic“ verfügbar.
Report Magic bietet, meiner Meinung nach, durch die Nutzung von 3D-Diagrammen eine ansprechendere Aufbereitung der Daten aus den Logfiles.
Letztendlich interessieren mich aber nur zwei Informationen. Wie viele Besucher hat mein Blog und welche Beiträge werden am häufigsten aufgerufen. Ausgerechnet für den zweiten Fall bietet Report Magic aber keinen Report. Daher wäre im Alltag wohl nur AWStats für mich interessant.
IPv6
IPv6 wird unterstützt.
Die Administrationsoberfläche
Hetzner setzt auf eine selbstentwickelte Andministrationsoberfläche. Wie auch die selbsetentickelten Lösungen der Konkurrenz sieht die Oberfläche von Hetzner ziemlich altbacken aus. Im Gegensatz zur verschachtelten Lösung von all-inkl.com, wo ich mich teilweise durch alle Menüpunkte hangeln musste um eine bestimmte Einstellung zu finden, empfinde ich das Interface von Hetzner als recht strukturiert aufgebaut.
Bechten muss man lediglich, dass dem Paket eine Hauptdomain zugewiesen ist. Einige Einstellungen können nur über diese Hauptdomain vorgenommen werden und gelten dann auch für Zusatzdomains, die ebenfalls auf das Paket aufgeschaltet sind. Beispiel hierfür sind die PHP-Einstellungen. Andere Einstellungen wiederum lassen sich individuell pro Domain vornehmen.
Erfreulich flexibel sind die Cronjob-Einstellungen. Hier findet man eine einfache Übersicht, mit welcher man sich Uhrzeit, Interpreter usw. zusammenklicken kann. Allerdings muss man immer den absoluten Pfad zum Skript, welches ausgeführt werden soll, angeben. Hier ist Plesk Anwender-, insbesondere Anfrängerfreundlicher, da man dort das Skript per Klick auswählen kann.
Zusätzlich zur einfachen Ansicht, kann man auf die erweiterte Ansicht umschalten. Hier bekommt man ein leeres Textfeld vorgesetzt, in welchem die Crontab direkt bearbeiten muss. Damit ist man deutlich flexibler, insbesondere was die Ausführungszeiten angeht, als mit der einfachen Ansicht.
Ab dem Tarif „Level 9“ bekommt man auch via SSH Zugriff auf seinen Webspace.
Sonstiges
TLS 1.3 wird noch nicht unterstützt. Der Webserver unterstützt die Versionen 1.0, 1.1 und 1.2. HTTP/2 wird unterstützt.
Fazit Hetzner
Viel gibt es als Fazit zum Hetzner Webhosting gar nicht zu sagen. Es handelt sich um ein solides Angebot, ohne Fallstricke oder Einschränkungen, die es für WordPress-Hosting uninteressant machen würden.
Allerdings gibt es wiederum auch keine Features die es besonders interessant machen würden. Bei wp-projects oder PixelX bekommt man mit dem WordPress-Toolkit von Plesk beispielsweise Werkzeuge an die Hand, die einem eine Testumgebung für die eigene WordPress-Installation einrichten, oder einen bei der Absicherung von WordPress unterstützen (z.B. Anpassung von Lese-/Schreibberechtigungen von Dateien, keine Ausführung von PHP-Dateien im Upload-Ordner usw.) Hier muss man sich beispielsweise über Einträge in der .htaccess selbst helfen.
Erfreulich ist jedoch die direkte Anonymisierung der Logfiles, wodurch die Statistiken von Hetzner Datenschutzkonform nutzbar sind.
Alles in allem bietet Hetzner ein flexibles und solides Paket, das sich nicht nur auf WordPress beschränkt, sich allerdings eher an Anwender richtet, die bereits ein grundsätzliches Verständnis für im Webhosting verwendeten Begrifflichkeiten und Einstellungen haben.
Von den von mir getesteten Hostern ist Hetzner meine Empfehlung für Leute, die neben einem WordPress, auch noch zusätzliche Software wie Matomo oder ein Forum installieren möchten.
Bei PixelX hatte ich vor vielen Jahren einen kleinen privaten Blog und war mit dem Hosting sehr zufrieden. Umso erfreulicher fand ich es, dass PixelX nach wie vor existiert und attraktive Hostingpakete im Angebot hat.
Außerdem kann ein Testaccount für 30 Tage angefordert werden, was ich direkt in Anspruch genommen habe. Bei dem von mir getesteten Angebot handelt es sich um das sogenannte „Cloud Webhosting“ und nicht das ebenfalls angebotene Paket „WordPress Hosting“. WordPress kann natürlich bei beiden Paketen installiert werden.
Da auf der Homepage keine Angabe dazu finden konnte, ob das Webhosting auch mit externen, nicht bei PixelX registrierten Domains genutzt werden kann, habe ich hierzu den Support angeschrieben. die Antwort habe ich bereits nach ca. einer viertel Stunde bekommen. Ja, die Nutzung externer Domains ist möglich.
Wie alle von mir getesteten Hoster bietet auch PixelX kostenlose SSL-Zertifikate für alle Domains via Let’s Encrypt an.
Ladezeit
Ladezeit PixelX, gemessen mit StatusCake, Serverstandort weltweit wechselnd:
Ladezeiten PixelX, gemessen mit Pingdom, Serverstandort Frankfurt:
Bester: 0,68s
Schlechtester: 0,825s
Durchschnitt: 0,758s
Die gemessenen Ladezeiten bei PixelX sind durchweg hervorragend. Der Hoster reiht sich damit in den Kampf um die ersten Plätze ein.
Backups
Auch PixelX setzt, wie Netcup und wp-projects.de auf Plesk als Verwaltungsoberfläche für die Kunden. Das ist insbesondere beim Thema Backups erfreulich, da die Backuplösung die Plesk dem Anwender bietet sehr flexibel ist und über eine Vielzahl an Konfigurationsmöglichkeiten verfügt.
Der Kunde kann eigene Backups konfigurieren und dabei einstellen, wie oft (täglich, wöchtentlich, monatlich) das Backup ausgeführt werden soll. Außerdem kann man festlegen ob jedes Mal ein vollständiges Backup angefertigt werden soll, oder ob nur veränderte Dateien gesichert werden. Wählt man den zweiten Fall, so kann man wiederum festlegen, nach wie vielen Tagen wieder ein vollständiges Backup mit allen Daten erstellt werden soll.
Außerdem können die Backups, auf Wunsch auch verschlüsselt, auf einen beliebigen FTP(S)-Server kopiert werden. Sicherungen werden sowohl vom Webspace als auch von den Datenbanken, Emails und anderen Daten, wie Logfiles, erstellt.
Die Backuplösung von PixelX lässt somit bei mir keine Wünsche offen.
Statistiken
Auch bei den Statistiken setzt man auf die Lösung, die Plesk mitbringt. Das bedeutet, dass für die statistische Auswertung der Logfiles sowohl Webalizer als auch AWStats zur Verfügung steht. Außerdem kann die Erstellung von Statistiken deaktiviert werden.
Das ist grundsätzlich erfreulich. Allerdings verzichtet auch PixelX auf die Anonymisierung der IP-Adressen, so dass eine statistische Auswertung ohne vorherige Einwilligung der Besucherinnen und Besucher wohl eher nicht zulässig ist. Eine DSGVO-konforme Nutzung der Webstatistiken dürfte somit in der Praxis kaum möglich sein.
IPv6
IPv6 wird unterstützt.
Die Administrationsoberfläche
Wie bereits erwähnt, kommt bei PixelX als Administrationsoberfläche Plesk zum Einsatz. Ich finde das immer sehr erfreulich, da ich Plesk als sehr viel Nutzerfreundlicher empfinde als die selbstgestrickten Oberflächen anderer Hoster wie all-inkl.com, 1blu oder Hetzner.
Trotzdem unterscheiden sich die Plesk-Oberflächen der einzelnen Hoster leicht, je nach Konfiguration und Ausstattung. PixelX bietet z.B. die 2-Faktor-Authentifizierung zur Absicherung des Logins via Google Authenticator oder kompatible Apps an, was ich sehr positiv finde.
PixelX setzt auf den Apache Webserver, ohne vorgeschalteten Nginx-Proxy. Viele Einstellungen können somit über die .htaccess-Dateien direkt im Webspace vorgenommen werden.
Zur Absicherung und komfortablen Administration von WordPress ist das WordPress-Toolkit installiert. Damit können automatische Updates, nicht nur für WordPress selbst, sondern auch für Plugins und Themes aktiviert werden. Außerdem können verschiedene Einstellungen zur Absicherung von WordPress vorgenommen werden. So kann beispielsweise das Ausführen von PHP-Dateien im Upload-Ordner unterbunden werden. Ganz einfach mit einem Klick, ohne dass man sich selbst um die umständliche Absicherung via .htaccess kümmern muss.
Ein Zugang via SSH wird leider nicht angeboten.
Sonstiges
Der Webserver unterstützt die TLS-Versionen 1.1 und 1.2. Das moderne 1.3 wird noch nicht unterstützt. Etwas verwunderlich fand ich, dass auch das moderne Übertragungsprotokoll HTTP/2 ebenfalls nicht unterstützt wird. Der Ladezeit hat das im Fall von PixelX allerdings nicht geschadet.
Fazit PixelX
Zumindest der Server auf welchem mein Testaccount lag, schien immer über ausreichend Leistungsreserven zu verfügen. PixelX kam so auf sehr gute Ladezeiten und reiht sich weit vorne unter den getesteten Hostern ein.
Das Thema Backup ist, wie bei allen Plesk-Hostern, hervorragend umgesetzt.
Der Showstopper ist für mich jedoch die fehlende Anonymisierung der Logfiles. Dies verhindert in der Praxis leider eine DSGVO-konforme Nutzung der Webstatistiken. Auch einen SSH-Zugang habe ich vermisst denn dies ist für mich oft die schnellste Methode um etwas an den Dateien auf dem Webspace anzupassen.
Wer auf die Statistiken keinen Wert legt, z.B. weil man Google Analytics oder Matomo nutzt, und keinen SSH-Zugang vermisst, der bekommt bei PixelX ein sehr empfehlenswertes Hostingangebot. Die Ladezeiten sind hervorragend, die Konfigurationsmöglichkeiten umfangreich und der Support reagiert schnell und freundlich.
Bei Pixelx hat man sich die Mühe gemacht, untenstehende ausführliche Email zu meinem Artikel zu verfassen, die ich euch selbstverständlich nicht vorenthalten möchte.
Nicht alle Punkte sind für mich nachvollziehbar. z.B. ist laut PixelX TLS 1.3 nicht stabil und nicht für den Massenbetrieb geeignet. Cloudflare zum Beispiel hat sich entschieden TLS 1.3 zu unterstützen und der Begriff Massenbetrieb passt wohl auf kaum jemanden so gut wie auf Cloudflare. Auch 1blu, all-inkl.com, raidboxes und uberspace unterstützen bereits TLS 1.3. Letztendlich spielt das aber auch keine Rolle, schließlich ist TLS1.3 derzeit kein kaufentscheidender Punkt.
Auf jeden Fall bestätigt die Mail meinen Eindruck, dass man sich bei PixelX viel Zeit für den persönlichen Kontakt nimmt und die Kunden nicht mit teilweise unpassenden Textbausteinen (wie 1blu) abspeist. Und wenn man einmal Probleme hat, ist genau das ein entscheidender Faktor.
Backup: Zusätzlich zu den normal üblichen Plesk-Backups die der Kunde selber konfigurieren kann, erstellen wir von jeder Cloud Instanz mehrfach täglich Snapshots und bewahren diese für 7 Tage auf. Sprich selbst im absoluten Worstcase können wir schnell und einfach einen kompletten Rollback auf eine andere Node machen.
Statistik / DSGVO: Uns ist es extrem wichtig mit allen Produkten konform zur DSGVO zu sein!
Um Statistiken zu erzeugen und ein gewisses Maß an Fehleranalyse zu ermöglichen, werden im ersten Step die IP-Adressen im Log-File erfasst, dann allerdings nach spätestens 24 Stunden (genau ein Mal pro Tag beim Log-Rotate) anonymisiert.
Nur nebenbei bemerkt, die DSGVO schreibt nichts direktes zur Erfassung und Speicherdauer von IP-Adressen, außer das es ein Datensatz mit Personenbezug ist. Die Erfassung von IP-Adressen ist nicht grundsätzlich entgegen der DSGVO, Datenschutz ist hier nicht das höchste Gut. Administratoren müssen die Möglichkeit haben Angriffe zu erkennen und abzuwehren. Eine definitive Entscheidung wird vielleicht irgendwann mal ein Gericht fällen, aktuell werden sinnvolle Zeiträume von bis zu 3 Monaten diskutiert, um eine Fehler- / Angriffsanalyse betreiben zu können. Ich persönlich halte 7-14 Tage für absolut in Ordnung, was auch vor jedem Gericht Bestand haben wird. Das der Nutzer in der jeweiligen Datenschutzerklärung ordentlich darüber aufgeklärt werden muss, versteht sich von selbst.
SSH: Das ist z.B. ein wirklich entscheidender Punkt zur DSGVO, jedes Shared-Hosting auf dem Du SSH bekommst, ist zwangsläufig nicht konform zur DSGVO, da alle Benutzer auf dem System mit SSH viel zu viele Rechte haben und Sachen sehen/machen können, die diese gar nicht sehen dürfen, von der gesamten Systemsicherheit ganz abgesehen. Gleiches gilt im Übrigen auch für jede Form von RAM-Cache (den wir ja gerne auch im Shared-Hosting anbieten würden, Redis z.B.), mit geringen Kenntnissen kann ich den kompletten RAM-Cache eines Systems auslesen, also auch alles was ggf. andere Kunden grad in diesem Cache haben, temporäre Daten einer Bestellung die grad im Gange ist, Login-Prozesse und vieles mehr!
NGINX & HTTP/2: HTTP/2 hatten wir bereits vor einigen Jahren in Kombination mit NGINX in Betrieb. Nach vielen Benchmarks mussten wir feststellen, dass der NGINX auf unserer Infrastruktur eigentlich nur ein weiterer Hop für die Daten ist und letztendlich die Ladezeiten um ca. 0,2 Sek. langsamer machte. Ebenso nutzte im Schnitt 1 von 10.000 Kunden tatsächlich den NGINX mit den von ihm vorgesehenen Funktionen. Daher hatten wir uns damals entscheiden den NGINX aus unserer Infrastruktur zu verbannen, damit damals dann auch vorerst HTTP/2. Geplant war eigentlich parallel noch natives NGINX-Hosting ohne Apache, Plesk hat zwar in diese Richtung entwickelt, funktioniert im Moment aber noch nicht richtig. Unsere Technik hat im Repo die Integration von HTTP/2 nativ über den Apache2 bereits implementiert und die Tests laufen. Geplant ist der Rollout für Ende diesen Jahres.
Sonstiges: Vebserver -> Webserver TLS1.0 ist schon lange abgeschaltet, wo hast Du das noch gesehen? (Anmerkung techgrube.de: Stimmt, Artikel ist korrigiert) TLS1.3 ist noch lange nicht stable und somit nicht für den Massenbetrieb geeignet
Wegen der DSGVO müssen wir und die Kunden leider im Shared-Hosting auf einiges verzichten. Gerade um hier konform zur DSGVO zu sein, haben wir bewusst einige Funktionen wie SSH, RAM-Cache, TSL1.0 etc. ausgeschaltet / entfernt. Kunden die ggf. größere Projekte betreuen sollten so oder so auf eigenen Cloud Servern hosten, hier stehen dem Kunden dann natürlich auch RootSSH und alle anderen Annehmlichkeiten zur Verfügung: https://www.pixelx.de/cloud-server.html
P.S:: Nur zum Spaß falls Du Deinen Testaccount noch hast, installier mal W3 Total Cache und stell alles auf File-Caching. Ich habe binnen der letzten Jahre zig WPs auf Ladezeiten unter 0,12 Sek. bekommen (Aussage gilt nur für unsere Infrastruktur). Bei Fragen gerne auf mich zukommen. Wünsche noch einen schönen Abend!
Über den Hoster wp-projects.de bin ich eher zufällig gestoßen, denn mir war der Hoster bisher nicht bekannt. Die Gründer des Unternehmens scheinen aber in der WordPress-Community recht aktiv und bekannt zu sein, so verwundert es nicht, dass wp-projects ein auf WordPress spezialisiertes Angebot ist.
Im Gegensatz zu Raidboxes handelt es sich bei wp-projects.de jedoch, trotz der Spezialisierung auf WordPress, aus technischer Sicht um ein klassisches Hostingangebot. Auch wenn die Angebote von Ausstattung und Funktionen auf das Hosting von WordPress zugeschnitten sind.
Wer also beispielsweise seinen Blog mit einem Forum kombiniert, der sollte dies mit wp-projects.de problemlos umsetzen können. Mit anderen Hostern die sich auf wordpress spezialisiert haben, wie z.B. Raidboxes, ist das nicht möglich. Auch in den AGB habe ich nichts gefunden, dass den Betrieb von anderer Software als WordPress ausschließen würde. Ausgeschlossen sind lediglich „Programmen oder Anwendungen, die geeignet sind, die Sicherheit, Verfügbarkeit, Integrität und Vertraulichkeit unserer Hostinginfrastruktur zu gefährden“. Solche allgemein gehaltenen Formulierungen findet man jedoch in den AGB aller Hoster.
Zu den speziell für WordPress angebotenen Funktionen gehört beispielsweise die Möglichkeit, eine WordPress-Installation auf eine Subdomain zu klonen. Mit einem Klick bekommt man somit eine Testumgebung die identisch mit der ursprünglichen Webseite ist. Hier lassen sich Änderungen an der Webseite testen, ohne die eigentliche Seite zu gefährden.
Kostenlose Let’s Encrypt Zertifikate können für alle Domains (interne wie externe) erstellt werden. PHP Memory Limit und Execution Time sind je nach Tarif unterschiedlich hoch, jedoch immer großzügig, bzw. ausreichend dimensioniert. PHP Memory Limit reicht von 256-1024 MB, die Max. Execution Time von 60-240 Sekunden.
Ich habe für diesen Test das Paket „Hosting Plus 2.0“ für 9,90€/Monat genutzt.
Ladezeit
Die Ladezeit der Webseite lässt sich bei wp-projects.de durch viele Einstellungen beeinflussen. Insbesondere durch aktivieren oder deaktivieren des statischen Nginx-Caches. Dies ist eine Möglichkeit, die man nur bei sehr wenigen Anbietern hat. Außerdem kann man selbst definieren, wie lange die Inhalte der Webseite zwischengespeichert werden sollen.
Ist der Cache aktiviert, speichert der Webserver eine einmal generierte dynamische Seite für einen festgelegten Zeitraum als statische Seite im Zwischenspeicher ab und liefert bei einem erneuten Aufruf die statische Seite aus. Der Nachteil ist, dass dynamische Inhalte in diesem Zeitraum nicht aktualisiert werden. Das gilt z. B. für Werbebanner oder Kommentare. Man sollte den Cachingzeitraum also eher kurz wählen. Wird eine Seite allerdings aus dem Cache ausgeliefert, so lädt die Seite wahnsinnig schnell. Wer nicht sehr stark auf dynamische Inhalte setzt, der kann von dieser Möglichkeit sehr profitieren.
Ich hatte in diesem Test den Cache deaktiviert. Damit ist wp-projects.de gegenüber Raidboxes im Nachteil. Allerdings ist so eher eine Vergleichbarkeit mit den anderen Angeboten gegeben.
Trotzdem gibt sich wp-projects.de bei der Ladezeit keine Blöße. Die wenigen Ausreißer bei der StatusCake-Messung treten bei den meisten Hostern auf. In der Regel handelt es sich hierbei um Messungen aus weit entfernten Ländern. Bei den Messungen mit Pingdom aus Deutschland traten solche Ausreißer nicht auf. Hier sind die Werte durchweg gut gewesen, wenn auch nicht die Besten im Test.
Ladezeit wp-projects.de, gemessen mit StatusCake, Serverstandort weltweit wechselnd:
Ladezeiten wp-projects.de, gemessen mit Pingdom, Serverstandort Frankfurt:
Bester: 0,759s
Schlechtester: 2,56s
Durchschnitt: 1,28s
Backups
Wp-projects.de setzt, wie beispielsweise auch Netcup und PixelX, auf Plesk als Backend. Das bedeutet, dass man auch die vielen Möglichkeiten der Backupfunktion von Plesk nutzen kann.
Backups von Webspace und Datenbanken werden täglich automatisch erstellt und je nach Tarif für 7-14 Tage vorgehalten. Über das Webinterface können die Backups vom Kunden selbst eingespielt werden. Außerdem können eigene Backups erstellt werden was automatisch oder manuell geschehen kann. Backups können inkrementell oder vollständig erstellt werden und auf Wunsch direkt auf einen externen FTP(S)-Server hochgeladen werden.
Damit erfüllt wp-projects.de alle meine Wünsche, was Backups betrifft. Auf den zusätzlichen Einsatz von Backup-Plugins in WordPress kann man hier verzichten.
Statistiken
Auch diesen Punkt hat wp-projects.de gut umgesetzt. Wie bei den anderen Hostern die Plesk einsetzen, kann man zwischen Webalizer und AWStats wählen. Die IP-Adressen in den Logfiles, auf die man über das Webinterface Zugriff erhält, werden nach einem Tag anonymisiert, hierbei wird der letzte Ziffernblock durch eine Null ersetzt. Leider gilt dies auch für IPv6 Adressen, so dass hier nur die letzten 16 Bit anonymisiert werden. Hier könnte man, meiner Meinung nach, noch weiter gehen. Aus diesen anonymisierten Logfiles werden einmal täglich die Statistiken erstellt.
Die Statistiken von wp-projects.de lassen sich so hoffentlich (im Gegensatz zu Netcup und PixelX) DSGVO-konform nutzen, ohne dass man eine Einwilligung der Webseitenbesucher benötigen würde.
IPv6
IPv6 wird unterstützt.
Die Administrationsoberfläche
Als Administrationsoberfläche kommt, wie gesagt, Plesk zum Einsatz. Meiner Meinung nach ist Plesk deutlich besser, als die meisten selbstgebauten Benutzeroberflächen anderer Hoster (all-inkl.com, 1blu).
Man kann hier umfangreiche Einstellungen zum Webserver vornehmen. So lässt sich hier der Nginx-Cache aktivieren oder deaktivieren, man kann eigene Security-Header setzen, die PHP-Version ändern, externe Domains aufschalten uvm.
Über den WordPress-Toolkit lassen sich spezielle Funktionen für WordPress nutzen. Beispielsweise kann WordPress automatisiert aktualisiert werden und es können Sicherheitseinstellungen aktiviert werden. Dies ist besonders sinnvoll, da standardmäßig ein Nginx-Webserver zum Einsatz kommt und man somit keine eigenen Absicherungen über eine .htaccess-Datei vornehmen kann.
Zwar ist es möglich einen Apache-Webserver zu aktivieren und den Nginx lediglich als Proxy vor den Apache zu schalten. Bei mir hat dies die Performance der Webseite jedoch dramatisch verschlechtert.
Wp-projects.de bietet auch einen SSH-Zugang zum Webspace an. Die zur Verfügung stehenden Tools sind jedoch sehr begrenzt. Mysqldump steht beispielsweise nicht zur Verfügung, was wegen der guten Backupfunktion im Webinterface jedoch zu verschmerzen ist. Als Texteditor ist lediglich vi verfügbar. Für jemanden wie mich, der sich beharrlich weigert die Bedienung von Vi zu lernen (Jaja, ESC -> :q!) ist das natürlich ein Nachteil. Aber da ich ansonsten nichts am Angebot von wp-projects.de zu meckern habe, beschwere ich mich hiermit über den fehlenden Nano.
Der SSH-Zugang eignet sich daher besonders um z.B. bei einem Umzug die Daten via SCP direkt von Server zu Server zu übertragen. Leider steht einem bei wp-projects aber der Befehl „scp“ nicht zur Verfügung. Damit ist man darauf angewiesen, dass der andere Hoster, von dem die Daten übertragen werden, scp zur Verfügung stellt. Ansonsten bleibt der langsamere Weg über einen FTP-Client.
Außerdem können große Datenbanken direkt importiert werden, was zuverlässiger funktioniert als der Import über die Webseite oder Tools wie PHPMyAdmin, was ebenfalls zur Verfügung steht.
Sonstiges
TLS 1.3 wird noch nicht unterstützt. Der Webserver unterstützt TLS 1.0, 1.1, 1.2. HTTP/2 wird unterstützt.
Fazit wp-projects.de
Die Ladezeiten sind von Haus aus gut, PHP Opcache kommt standardmäßig zum Einsatz. Über die umfangreichen Konfigurationsmöglichkeiten, insbesondere den Nginx-Cache lassen sich Ladezeiten weiter optimieren.
Besonders wichtig sind mir automatisierte Backups, auf welche man selber Zugriff bekommen und die sich exportieren lassen. All dies ist bei wp-projects möglich.
Durch das anonymisieren der IP-Adressen in den Logfiles, lassen sich die Statistiken von wp-projects.de datenschutzkonform nutzen. Ein Thema, bei dem nach wie vor ein Großteil der Hoster die Kundinnen und Kunden im Regen stehen lässt.
Man merkt dem Angebot von wp-projects.de an, dass sich die Macher nicht nur mit Hosting, sondern auch mit WordPress beschäftigen. Denn man bietet mehr als einfach nur einen Webserver mit MySQL und PHP. Stattdessen hat man sich bei Ausstattung und Konfiguration offensichtlich Gedanken gemacht, was man zum Betreiben eines WordPress-Blogs benötigt. Herausgekommen ist ein Paket, das alle von mir im Übersichtsartikel formulierten Wünsche an ein Hostingpaket erfüllt.
Eigentlich ist 1blu eher für sehr günstige Webhostingpakete und eher mittelmäßigen Kundensupport bekannt. Allerdings hatte ich vor vielen Jahren auch schon einige Pakete von 1blu im Einsatz und war durchaus zufrieden. Auch den Support musste ich damals bemühen und war auch recht zufrieden.
Mit den Performance-Paketen bietet man mittlerweile auch eine Produktreihe an, die sich von den gewohnten „Kampfpreis-Angeboten“ von 1blu unterscheidet. Hier steht die Leistung im Vordergrund, die Preise sind höher als bei den sogenannten Homepagepaketen.
Für diesen Test habe ich ein Performance Paket M für 8,90€/Monat verwendet.
Die Bestellung habe ich an einem Wochenende vorgenommen und nach dem Bestellvorgang ist erst einmal gar nichts mehr passiert. Es kam nicht einmal eine Bestätigung per Email. Stattdessen erhielt ich am Montag eine Mail, dass ich ich bitte beim Support anrufen soll um meine Daten zu verifizieren. Also rief ich dort an und musste, nach einer kurzen Warteschleife, dem Mitarbeiter die letzten drei Ziffern meiner Bankverbindung nennen. Dann wurde das Paket freigeschaltet. Für die Bestellung eines 08/15 Webhostingpakets ist das mindestens ein ungewöhnliches Vorgehen und nicht sehr kundenfreundlich.
Ladezeit
Bei der Ladezeit gibt sich das 1blu Performance Paket keine Blöße und liegt in etwa gleichauf mit all-inkl.com. Extreme Ausreißer bei der Ladezeit gab es nicht.
Ladezeit 1blu Webhosting, gemessen mit StatusCake, Serverstandort weltweit wechselnd:
Ladezeiten 1blu, gemessen mit Pingdom, Serverstandort Frankfurt:
Bester: 0,675s
Schlechtester: 1,85s
Durchschnitt: 0,95s
Backups
1blu fertigt tägliche Backups von Webspace und Datenbanken an, wobei alte Backups nach 14 Tagen gelöscht werden. Via FTPS oder SSH bekommt man Zugriff auf die Backups. Möchte man ein altes Backup einspielen, so muss man dieses herunterladen und mit einem FTP-Client die aktuellen Daten ersetzen, bzw. via PhpMyAdmin eine ältere Version der Datenbank einspielen. Das Einspielen eines automatisch erstellten Backups über das Webinterface ist nicht möglich.
Ein weiterer positiver Aspekt ist, dass über das Webinterface auch manuelle Backups angestoßen werden können. So lässt sich vor größeren Änderungen an der Webseite die alte, funktionierende Konfiguration mit einem Klick sichern. Die manuell erstellten Backups lassen sich auch über das Webinterface wieder einspielen.
Ein automatischer Export auf einen entfernten Server ist leider nicht vorgesehen. Da die Backups über SSH oder einen FTP-Client erreichbar sind, kann man sich diese automatisiert von einem externen Server abholen lassen. Für mich ist das eine akzeptable Lösung.
Etwas anders ist die Situation, wenn man WordPress über die sogenannte EasyApps installiert. Hierbei wird WordPress inklusive Datenbank mehr oder weniger mit einem Klick über die 1blu Weboberfläche installiert. Auch Wartungsarbeiten, Updates und Backups lassen sich über das EasyApps-Webinterface erledigen.
Hier existiert eine separate Backupfunktion, die manuelle und automatische Backups ermöglicht, die in einem Ordner im Webspace abegelgt werden. Alternativ können diese Backups auch automatische exportiert werden. Dafür stehen verschiedene Dienste und Protokolle zur Verfügung wie Dropbox, FTPS, SFTP Webdav. Wie gesagt, dies gilt nur, wenn man WordPress über die 1blu EasyApps verwaltet.
Statistiken
1blu erzeugt Statistiken mit AWStats. Die IP-Adressen der BesucherInnen werden dabei anonymisiert, so dass die Statistiken DSGVO-konform sind.
Leider werden die Statistiken pro Hostingpaket und nicht individuell pro Domain erstellt. Somit erhält man lediglich eine Zusammenfassung aller auf diesem Paket gehosteten Projekte, aber keine individuelle Auswertung. Das macht die Statistiken nur begrenzt sinnvoll nutzbar.
IPv6
IPv6 wird von 1blu nicht unterstützt.
Die Administrationsoberfläche
Das Webinterface ist optisch durchaus ansprechend, allzu viele Optionen findet man hier allerdings nicht. Das Webinterface dient insbesondere dazu Datenbanken oder FTP-Accounts anzulegen. Außerdem können manuelle Backups angefertigt werden, Emailaccounts erstellt und Domains konfiguriert werden.
Einstellungen für den Webserver an sich sucht man hier allerdings vergeblich. So lässt sich über das Webinterface weder die PHP-Version, noch sonstige PHP-Einstellungen ändern. Es sieht ganz so aus, als habe man es nicht geschafft diese Optionen in das Backend zu integrieren. Stattdessen muss man eine spezielle PHP-Datei auf den Webspace laden. Diese ruft man im Browser auf und wählt die gewünschte PHP-Version aus. Anschließend wird die Datei wieder vom Webspace gelöscht.
Ähnlich funktioniert das Ändern von PHP-Einstellungen. Hier muss eine Konfigurationsdatei auf dem Webspace erzeugt werden, die allerdings dort verbleibt. Welche Parameter geändert werden können und welche Werte verwendet werden können ist allerdings schlecht bis gar nicht dokumentiert. In der FAQ ist lediglich von upload_max_filesize und max_execution_time die Rede. Was hier die Maximalwerte sind bleibt unklar.
Die Administrationsoberfläche von 1blu ist übersichtlich, Schaltflächen und Links sind eindeutig beschriftet, so dass man die gesuchten Einstellungen schnell findet. Zumindest wenn sie im Webinterface existieren. Denn der Funktionsumfang ist durchaus noch ausbaufähig.
Viele Funktionen lassen sich nur über das Terminal konfigurieren, indem man sich via SSH auf dem Webspace einloggt. So können und müssen beispielsweise Cronjobs über die Crontab via Terminal angelegt werden. Ich empfinde das als Vorteil, weil auf diese Art auch auch Shellskripte ausgeführt werden können, für Einsteiger dürfte die Verwendung der Crontab aber eine ziemliche Hürde darstellen.
Im Gegensatz zu anderen Anbietern kann man über das Terminal eine Vielzahl gängiger Linux-Tools verwenden. Beispielsweise mysqldump, scp, rsync uvm. Man kann sich sogar mit htop die Auslastung des Servers anschauen. Wenn man nach dem eigenen Benutzernamen filtert, kann man sogar sehen welche Last man selbst erzeugt. Ob das Absicht ist oder übersehen wurde, man weiß es nicht. Ich habe mich gefreut, allerdings bietet kein anderer der getesteten Hoster Zugriff auf Tools wie htop.
Sonstiges
Bei 1blu musste ich tatsächlich auch den Support bemühen. Beim Versuch das Let’s Encrypt Zertifikat für eine Domain zu löschen und für eine andere ein Zertifikat zu erstellen, hat sich wohl irgendein Skript bei 1blu verabschiedet. Die Löschung und Erstellung der Zertifikate stand für zwei Tage auf dem Status (in Bearbeitung). Daraufhin schrieb ich an einem Donnerstag gegen 17:00 Uhr den Support an. Die Arbeitszeiten des Supports sind Mo-Fr 08-20 Uhr. Mein Problem wurde am Freitag gegen 09:00 Uhr behoben. Berücksichtigt man die Arbeitszeiten, dann hat das Beheben meines Problems ca. vier Stunden gedauert.
Bei den Let’s Encrypt Zertifikaten komme ich auch zu dem Punkt, der das 1blu Paket für mich unbrauchbar macht. Und zwar werden die Zertifikate immer auf die www-Subdomain ausgestellt, also z.B. www.example.com. Und zwar nur auf www.example.com. Wer seine Webseite direkt unter der Domain example.com, ohne vorangestelltes www betreibt, der erhält eine Fehlermeldung im Webbrowser.
Im Webinterface gibt es keine Möglichkeit dieses Verhalten zu beeinflussen. Möglicherweise kann der Support hier helfen, aber das wäre dann mein dritter Kontakt mit dem Support gewesen, nur um ein Hostingpaket zu testen. An diesem Punkt hat mich die Lust verlassen.
Abgesehen von der fehlenden IPv6 Unterstützung scheint der Webserver durchaus zeitgemäß konfiguriert zu sein. Bei SSL Labs bekommt das Produkt eine A+ Bewertung. TLS-Versionen 1.3, 1.2, 1.1 und 1.0 werden unterstützt.
Zum Einsatz kommt ein Apache Webserver ohne vorgeschalteten Nginx.
Die Kündigung funktioniert bei 1blu noch genau so wie vor 10 Jahren. Man muss ein Formular ausfüllen, unterschreiben und per Post, Fax oder Email an den Support senden. Nach einer entsprechenden Bearbeitungszeit erhält man dann die Kündigungsbestätigung. Auch Auth-Codes für Domainumzüge bekommt man auf diesem Weg. Bei allen anderen mit bekannten Anbietern kann man sich diese direkt im Webinterface erstellen.
Fazit 1blu
Das 1blu Performance-Paket hinterlässt in vielen Punkten einen positiven Eindruck. Bei der Ladezeit ist das Angebot vorne mit dabei und liefert sich mir all-inkl.com ein Kopf-an-Kopf-Rennen. In anderen Bereichen wie dem Bestellvorgang, Webinterface und Kündigung wirkt 1blu aber wie aus der Zeit gefallen.
Es ist schön, dass man Kunden und Kundinnen beim Thema Backup nicht im Regen stehen lässt. Schön wäre noch, wenn sich auch die automatisch erstellten Backups wieder über das Webinterface einspielen lassen würden, ohne dass man die EasyApps nutzen muss Trotzdem hat sich 1blu beim Thema Backup für eine für mich brauchbare und befriedigende Lösung entschieden.
Wünschenswert wäre ebenfalls, dass individuelle Statistiken pro Domain erstellt werden. Zusammen gefasste Statistiken für mehrere Projekte sind nur sehr begrenzt sinnvoll.
In Hinblick auf das Preis-Leistungs-Verhältnis hat 1blu ein sehr attraktives Paket geschnürt. Die vielen Tools und Möglichkeiten auf der Kommandozeile sehe ich ebenfalls als Pluspunkt.
Ausbaufähig ist hingegen die Dokumentation. Da nur wenige Einstellmöglichkeiten über das Webinterface vorgenommen werden können, ist nicht immer klar welche Einstellmöglichkeiten überhaupt angeboten werden. Oft hilft hier eine Google-Suche z.B. nach „1blu cronjob“ schneller weiter als in Blick in die Dokumentation von 1blu.
Eigentlich war das 1blu Paket mein Favorit. Dass man Let’s Encrypt Zertifikate allerdings nur für Subdomains (www.domain.de, blog.domain.de usw.) erstellen kann, ist für mich ein Ausschlusskriterium. Auch dass ich während des Test zwei Mal mit dem Support Kontakt aufnehmen musste und das Thema SSL-Zertifikat das dritte Mal wäre, lässt mich mit einem unguten Gefühl zurück.
All-inkl.com bietet die Möglichkeit den Dienst für eine Woche kostenlos und unverbindlich zu testen. Eine feine Sache, so kauft man nicht die Katze im Sack. Außerdem ist es ein Hinweis darauf, dass der Anbieter von seinem Angebot überzeugt ist.
Der Testaccount entspricht im wesentlichen dem Premium-Paket, welches 9,95€/Monat kostet. Der Preis reduziert sich wenn man einen längeren Zeitraum im Voraus bezahlt. Bei einer Vorauszahlung von 36 Monaten kostet der Monat umgerechnet nur noch 7,96€.
Schön ist, dass all-inkl.com die maximale Anzahl an Kunden pro Server angibt. Im Premium-Paket sind das 50 Kunden pro Server. Zugegeben, die Zahl sagt wenig aus wenn man den verwendeten Server nicht kennt. Außerdem benötigen manche Kunden viel Leitung, andere wenig. So kann auch bei gleicher Kundenzahl ein Server ausgelastet sein und ein anderer nicht.
Ladezeit
Bei der Ladezeit ist all-inkl.com vorne mit dabei. Zwar erreicht man keine Zeiten wie Raidboxes, trotzdem sind die Werte sehr zufriedenstellend und geben keinen Anlass zur Kritik.
Ladezeit all-inkl.com Webhosting, gemessen mit StatusCake, Serverstandort weltweit wechselnd:
Ladezeiten all-inkl.com, gemessen mit Pingdom, Serverstandort Frankfurt:
Bester: 0,681s
Schlechtester: 1,7s
Durchschnitt: 0,878s
Backups
Das Thema „Backup“ ist für mich leider der Stimmungskiller wenn es um das Angebot für all-inkl.com geht. Es ist nämlich schlichtweg kein Thema. Zwar fertigt all-inkl.com Backups an, allerdings erhalte ich als Kunde darauf keinen Zugriff.
Eine Möglichkeit als Kunde sinnvoll selbst Backups zu erstellen existiert ebenfalls nicht. Zwar ist ein SSH-Login möglich und es existieren Tools wie mysqldump, tar, rsync usw. Allerdings habe ich keine Möglichkeit ein Shellscript via Cronjob auszuführen und damit Backups zu automatisieren.
Cronjobs lassen sich nur über das Webinterface anlegen, allerdings kann man hier nur URLs angeben, die dann aufgerufen werden (https://…). Ein lokaler Pfad zu einem Backupscript kann nicht angegeben werden.
Die einzige Möglichkeit um automatische Backups der WordPressinstallation zu erstellen ist daher ein entsprechendes WordPress-Plugin. Nicht unbedingt die zuverlässigste Methode um Backups zu erstellen.
Statistiken
All-Inkl.com erzeugt auf Wunsch Statistiken mit Webalizer, AWStats wird leider nicht angeboten. Die IP-Adressen können anonymisiert werden, so dass sich die Statistiken von All-inkl.com DSGVO-konform nutzen lassen. Es werden separate Statistiken pro Domain erzeugt. Hier kann das Angebot von all-inkl.com überzeugen.
Ipv6
IPv6 wird nicht unterstützt.
Die Administrationsoberfläche
Die Administrationsoberfläche von all-inkl.com wirkt sehr altbacken und unübersichtlich. Das liegt vor allem an der Vielzahl an Textlinks und Menüs. Unter jedem Menüpunkt finden sich noch weitere Unterpunkt, die aber erst nach einem Klick auf den Link sichtbar werden.
Mehr als einmal musste ich sämtliche Menüs durchklicken, bis ich eine Einstellung wiedergefunden habe, von der ich genau wusste dass es sie gibt. So finden sich die Einstellungen für die Webalizer Statistiken nicht etwa unter dem Menüpunkt „Statistik“. Hier findet man nur die Informationen zum verwendeten Speicherplatz. Stattdessen muss man den Punkt „Einstellungen“ ausklappen und findet hier wiederum den Punkt „Logs & Statistiken“.
Gerade Einsteiger, die zum ersten Mal ein Webhosting Paket erwerben, dürfte die Weboberfläche von all-inkl.com vor Herausforderungen stellen. Hat man sich einmal mit der Oberfläche vertraut gemacht, so erfüllt sie durchaus ihren Zweck.
Sonstiges
All-inkl.com unterstützt das moderne TLS 1.3 Protokoll. Die Versionen 1.2, 1.1 und 1.0 sind ebenfalls aktiv.
Fazit All-inkl.com
All-inkl.com hat ein Webhostingpaket geschnürt, dass sowohl vom Preis, als auch von der Leistung attraktiv ist. Die nicht vorhandene Backuplösung ruiniert das Angebot für mich leider wieder.
Wer damit leben kann manuelle Backups zu machen oder ausschließlich ein WordPress-Plugin zu nutzen, der macht mit dem Angebot von all-inkl.com nichts falsch und erhält ein Hostingpaket mit guten Ladezeiten.
Im Jahr 2010 habe ich diesen Blog gegründet, damals unter der Domain optimox.de. 2015 kam die „Umfirmierung“ zur seriöseren Domain techgrube.de. In dieser Zeit hat der Blog mehrere verschiedene Hoster gesehen.
Seit einigen Jahren läuft techgrube.de und einige andere Projekte von mir auf einem virtuellen Server um den ich mich selbst kümmere. Ursprünglich habe ich mich aus Neugier und Spaß an der administrativen Tätigkeit dafür entschieden. Mittlerweile würde ich die für die Administration des Servers genutzte Zeit lieber anderweitig verwenden. Die tatsächlich aufgewendete Zeit ist dabei nicht einmal das Problem. Vielmehr stört mich, dass der Server entscheidet wann er Aufmerksamkeit will und nicht ich. Wartungsaufgaben nehmen wenig Rücksicht auf Urlaub oder den gemütlichen Fernsehabend.
Also habe ich vor einiger Zeit entschieden, den Blog wieder auf ein Shared-Hosting-Paket umzuziehen. Das Ergebnis war eine katastrophale Performance mit Ladezeiten bis zu 10 Sekunden. Also, Kommando zurück. Nun laufen meine Blogs wieder auf meinem Server und der Vertrag hat sich um ein weiteres Jahr verlängert. Also habe ich mir vorgenommen die gewonnene Zeit zu nutzen um mich ein wenig auf dem Hostingmarkt umzuschauen, um diesmal eine bessere Entscheidung treffen zu können.
Meine Wünsche und Anforderungen
Um die Entscheidung nicht direkt wieder zu bereuen, habe ich mir Gedanken über meine Anforderungen und Wünsche gemacht, die ich an ein Hostingangebot für WordPress habe.
Zwingend ist eigentlich nur, dass die Reaktions- und Ladezeiten nicht spürbar schlechter werden. Und zwar ohne Tricks wie Caching-Plugins oder der Einsatz von CDNs. Statische HTML-Seiten schnell ausliefern kann schließlich jeder. Bei allen anderen Anforderungen bin ich durchaus kompromissbereit.
Folgende Daten habe ich mir angeschaut.
Ladezeit
Die Ladezeit ist für mich das wichtigste Beurteilungskriterium. Wenn die Webseite langsam lädt und BesucherInnen möglicherweise die Geduld verlieren, spielen die anderen Features schließlich auch keine Rolle mehr. Um die Leistungsfähigkeit des Webhostings beurteilen und vergleichen zu können, brauchte ich eine vergleichbare Ausgangssituation und Tools, die die Ladezeit testen.
Also habe ich eine identische Kopie von techgrube.de auf jeden Webspace hochgeladen. Anschließend habe ich mit folgenden Tools die Ladezeiten geprüft.
Prüfung der Ladezeit mit StatusCake
Über einen Zeitraum von einer Woche wurde jede halbe Stunde die Ladezeit mit StatusCake geprüft. In der kostenlosen Version von StatusCake wird die Prüfung immer von einem zufälligen Standort aus vorgenommen. Das Land kann man nur in den kostenpflichtigen Tarifen auswählen.
Das Laden einer in Deutschland gehosteten Seite aus den USA oder Kanada dauert naturgemäß meistens länger als ein Aufruf aus Deutschland. Wenn die Seite nur aus Deutschland aufgerufen würden, wären die Ladezeiten wahrscheinlich etwas geringer. Das ändert aber nichts an der Vergleichbarkeit der Zahlen. Schließlich werden alle Dienste gleich geprüft.
Prüfung der Ladezeit mit Pingdom
Ich habe in unregelmäßigen Abständen die Ladezeit der Seiten mit Pingdom geprüft und die Zeiten notiert. Ebenfalls über einen Zeitraum von einer Woche. Ich habe immer den Serverstandort Frankfurt gewählt und immer den besten, den schlechtesten und den Durchschnittswert angegeben.
Backups
Wenn man hunderte oder tausende Stunden in eine Webseite steckt, wäre der Verlust eine Katastrophe. Dementsprechend wichtig sind Backups. Außerdem sind meiner Meinung nach Backups nur dann richtige Backups, wenn diese an mindestens zwei unterschiedlichen Stellen gespeichert werden. Ich habe mir angeschaut ob und wie die Hoster einen hierbei unterstützen, oder evtl. sogar ganz die Arbeit abnehmen.
Statistiken
Häufig benötige ich keine umfangreichen Statistiken, wie sie von Matomo oder Google Analytics. bereitgestellt werden. Trotzdem möchte ich gerne wissen, welche Beiträge am häufigsten aufgerufen werden. Dafür reichen beispielsweise Tools wie AWStats, die die Logfiles des Webservers auswerten.
Da es sich bei den in den Logfiles gespeicherten IP-Adressen um personenbezogene Daten handelt, müssen diese vor der Auswertung anonymisiert werden. Ansonsten würde man nach DSGVO für die Auswertung der Daten die Einwilligung der BesucherInnen benötigen, was natürlich unrealistisch ist. Darum habe ich mir auch diesen Punkt angeschaut.
IPv6
Mir ist klar, dass es in der Praxis nicht wirklich einen Nachteil darstellt wenn die Webseite nur über IPv4 erreichbar ist. Trotzdem empfinde ich es als nicht mehr zeitgemäß heutzutage einen Dienst im Internet ausschließlich über IPv4 zugänglich zu machen. Daher habe ich geprüft ob die Webseite auch via IPv6 erreichbar ist.
Welche Anbieter habe ich mir angeschaut und warum?
Ich habe mir folgende Anbieter und Tarife angeschaut.
Netcup Webhosting 2000 (derzeit 2,99€) und Netcup Webhosting 8000 (derzeit 9,74€). Preise pro Monat, Vertragslaufzeit 1 Jahr.
Raidboxes Starter (17,85€/Monat pro WordPress Installation (15€ + 19% Ust.)). Kann monatlich gekündigt werden
Uberspace (Preis kann selbst gewählt werden, empfohlen werden 10€/Monat). Kann monatlich gekündigt werden.
All-inkl.com, Premium, 9,95€/Monat. Rabatte bei längerer Vertragslaufzeit.
1blu Performance Paket M (8,90€). Einrichtungsgebühr 6,90€, Vertragslaufzeit 3 Monate.
WP-Projects.de Hosting Plus 2.0 (9,90€/Monat), monatlich kündbar.
PixelX – Cloud-Webhosting Testaccount, Normalpreis 3,90€-19,99€ pro Monat. Monatlich kündbar.
Die Auswahl ist mehr oder weniger willkürlich erfolgt. Entweder weil ich Gutes gehört habe, oder weil ich in der Vergangenheit gute Erfahrungen mit einem Anbieter gemacht habe.
Eigentlich wollte ich mir auch Pakete von 1&1 Ionos, Hosteurope und Domainfactory anschauen. Bei beiden Anbietern ist aber immer nur ein SSL-Zertifikat inklusive. Möchte man weitere Projekte auf dem Webspace laufen lassen und mit einer Transportverschlüsselung versehen, muss man beim Hoster zusätzliche Zertifikate kaufen, zum Preis von 3€/Monat oder mehr. Das gleiche Spiel läuft bei Strato (4€/Monat/Zertifikat + 5€ Einrichtung).
Ein SSL-Zertifikat ist heute Pflicht und nicht mehr optional. Das sieht sogar Strato so, Zitat von der Strato-Webseite „SSL: Ein Muss für seriöse Websites!„. Somit sollten bei einem Webhosting-Angebot mindestens so viele SSL-Zertifikate inkludiert sein, wie Domains inklusive sind. Alles andere ist heutzutage indiskutabel.
Hinzu kommt, dass die Zertifikate bei den genannten Anbietern immer für 1 Jahr im Voraus bezahlt werden müssen. Somit schlägt jede zusätzliche Webseite oder WordPress-Installation direkt mit mindestens 36€ zu Buche (Strato 48€/Jahr+einmalig 5€). Sorry. In Zeiten wo ich kommerzielle DV-Zertifikate für 6€/Jahr kaufen kann, oder bei Let’s Encrypt kostenlos bekomme, ist sowas Abzocke. Leute, was ist nur mit euch los?
Mein Referenzwert – Netcup Root-Server RS 1000
Derzeit laufen meine Blogs auf einem Virtuellen Server von Netcup. Ich bin seit vielen Jahren sehr zufriedener Kunde von Netcup, nicht nur mit diesem Server. Gerade mit der Root-Server Produktreihe bin ich sehr zufrieden.
Durch die KVM-Virtualisierung merkt man kaum dass man auf einer virtuellen Maschine ist. Man kann eigene Kernelmodule oder Kernel installieren. Es werden Minimalinstallationen von Ubuntu, Debian etc angeboten, ohne Plesk oder ähnliches. Man kann sogar beliebige eigene ISO-Dateien hochladen und das Betreibssystem davon installieren. Außerdem lassen sich manuelle Snapshots des Servers erstellen. Eine tolle Sache, die die Angst vor Änderungen an der Konfiguration nimmt, da man jederzeit den vorherigen Zustand wiederherstellen kann.
Diese Produktreihe kann ich wirklich bedingungslos weiterempfehlen.
Als Webserver nutze ich folgendes Produkt und Software:
Einen Gesamtsieger zu küren ist schwierig, denn alle getesteten Angebote haben ihre Vor- und Nachteile. Wie stark diese ins Gewicht fallen, hängt stark von den eigenen Anforderungen ab.
Bei der Ladezeit lässt Raidboxes die Konkurrenz weit hinter sich zurück. Allerdings ist der Vergleich auch etwas unfair. Raidboxes nutzt den NGINX-Webserver nicht nur als Proxy, sondern auch um Inhalte zu Cachen, ähnlich einem Cachingplugin für WordPress. Ausserdem ist das Angebot relativ teuer und komplett auf WordPress ausgerichtet. Andere Software lässt sich nicht installieren.
Danach folgt ein weites Feld mit Anbietern, die durchweg gute Ladezeiten bieten. Dabei halte ich es für weniger interessant ob meine Seite nun in 0,8 Sekunden, oder in 1,2 Sekunden ausgeliefert wird. Wichtig ist, dass es nicht regelmäßige Ausreißer mit extrem langen Ladezeiten gibt. Dies war leider regelmäßig bei Netcup der Fall. Hier kam es immer wieder zu Ladezeiten von bis zu 10 Sekunden. Nicht ganz so dramatisch ist es bei Uberspace, aber auch hier dauerten Aufrufe teils bis zu 5 Sekunden.
Durchweg zufriedenstellend waren die Ladezeiten bei All-inkl.com, dem 1blu Performace Paket, wp-projects.de, PixelX und Hetzner.
Backups werden von den Anbietern sehr unterschiedlich gehandhabt. All-inkl.com bietet hier die am wenigsten befriedigende Lösung. Zwar werden Backups erstellt, auf diese erhält man als User aber keinen Zugriff. Insofern bleibt einem bei all-inkl.com nichts anderes übrig, als eigene Backups mit einem WordPress-Plugin zu machen.
Raidboxes erstellt tägliche Backups, die über das Webinterface wieder eingespielt werden können. Eine Möglichkeit zum Export der Backups gibt es jedoch nicht.
Bei 1blu ist das Thema Backups etwas kompliziert. Hier werden täglich Backups von Webspace und Datenbanken angefertigt, auf die man via FTP-Client Zugriff erhält. Wer kein Problem mit der Kommandozeile von Linux hat, der kann diese Backups auch beispielsweise via Cronjob und Rsync auf einen externen Server spiegeln. Zusätzlich lässt sich über das Webinterface auch ein einzelnes, eigenes Backup anlegen. Dieses kann auch über das Webinterface eingespielt werden. Die automatischen Backups nicht. Wer WordPress wiederum über die 1blu-EasyApps installiert hat, der hat hierüber weitere Möglichkeiten zum eRstellen von Backups. Über die EasyApps lassen sich, unabhängig von den gerade genannten Möglichkeiten, weitere Backups der WordPress-Installation erstellen und auch automatisch auf einen externen Cloudspeicher exportieren.
Auch Uberspace erstellt automatisch tägliche Backups, auf die man als User via FTP-Client oder SSH-Zugang Zugriff bekommt. Zum Erstellen eigener Backups, oder zum Übertragen auf einen externen Server stehen einem alle gängigen Linux-Tools, wie Rsync, scp, mysqldump, editierbare crontab usw. zur Verfügung.
Hetzner erstellt tägliche Backups, die über das Webinterface wieder eingespielt werden können. Erfreulicherweise muss dabei nicht das komplette Backup wieder eingespielt werden, sondern es können auch einzelne Dateien wieder hergestellt werden. Eine Möglichkeit die Backups zu exportieren bietet Hetzner jedoch nicht.
Netcup, wp-projects.de und PixelX setzen auf Plesk als Administrationsmenü. Die Backuplösung von Plesk empfinde ich als sehr gelungen, da man als Kunde hier sehr viele Konfigurationsmögliochkeiten hat. So können automatisierte Backups erstellt werden. Außerdem lässt sich festlegen ob immer vollständige, oder lediglich inkrementelle Backups erstellt werden sollen. Im zweiten Fall wiederum kann definiert werden, in welcher Zeit erneut ein vollständiges Backup erstellt werden soll. Außerdem können die Backups automatisiert und verschlüsselt auf einen externen FTP(S)-Server exportiert werden.
Auch die Möglichkeiten zum Erstellen von Statistiken sind sehr unterschiedlich. Raidboxes und Uberspace bieten gar keine Statistiken an. Allerdings hat man bei Uberspace natürlich die Möglichkeit sich selbst ein Statistiktool einzurichten. Raidboxes bietet hierzu keine Möglichkeit, so dass man auf externe Tools wie Google Analytics oder Matomo zurückgreifen muss. Für Matomo wiederum benötigt man dann einen zusätzlichen Hoster, da bei Raidboxes lediglich WordPress installiert werden kann.
Netcup und PixelX bieten Webalizer und AWStats an. Allerdings werden die IP-Adressen nicht anonymisiert, so dass man nur davon abraten kann die Statistiken bei diesen Anbietern zu aktivieren. Ohne Einwilligung der Webseitenbesucher wäre das ein DSGVO-Verstoß, da es sich bei der nicht anonymisierten IP-Adresse um personenbezogene Daten handelt, die automatisiert verarbeitet werden. Technisch notwendig ist diese Verarbeitung wiederum nicht.
1blu erstellt ebenfalls Statistiken mit AWStats und anonymisiert die IP-Adressen auch. Hier wird allerdings nur eine gesammelte Auswertung pro Hosting-Paket vorgenommen. Wer mehrere Projekte unter unterschiedlichen Domains in dem Paket betreibt, bekommt keine nach Domain getrennten Statistiken.
All-inkl.com lässt den Benutzer selbst festlegen ob und wie die IP-Adressen in den Logfiles anonymisiert werden. Statistiken lassen sich leider ausschließlich mit Webalizer erstellen, was in meinen Augen veraltet ist und seit Jahren nicht mehr aktualisiert wurde. Trotzdem, wenn man die Anonymisierung aktiviert hat, spricht nichts gegen die Nutzung der Statistiken.
Hetzner anonymisiert die IP-Adressen, indem die letzten Ziffern durch eine andere Zahl ersetzt wird. Dadurch enthalten die Statistiken zwar scheinbar vollständige IP-Adressen, diese entsprechen aber nicht mehr den wirklichen Adressen der Besucher. Statistiken werden mit AWStats und einer eigenen Lösung namens “Report Magic” zur Verfügung gestellt.
WP-projects.de anonymisiert die IP Adressen ebenfalls, indem diese gekürzt werden. Statistiken kann man mit Webalizer oder AWStats erstellen lassen.
IPv6 wird nach wie vor nicht von allen Hostern unterstützt. Bei Raidboxes, all-inkl.com und 1blu ist man nur über IPv4 erreichbar. In der Praxis ist das sicherlich nicht wirklich ein Nachteil, allerdings ist eine IPv4-only Konfiguration in meinen Augen auch nicht mehr zeitgemäß. Bei Netcup, Uberspace, wp-projects.de, PixelX und Hetzner ist man sowohl via IPV4 als auch über IPv6 erreichbar. Bei Netcup bekommt man sogar eine eigen IPv6 Adresse.
Sonstiges
Unverständlicherweise lassen sich bei 1blu nur SSL-Zertifikate für Subdomains erstellen. Wer seinen Blog unter www.example.com betreibt, hat damit kein Problem. Wer jedoch direkt example.com verwendet, der bekommt hierfür kein Zertifikat. Möglicherweise lässt sich dies durch den Support ändern, selbständig über das Webinterface ist das jedoch nicht möglich.
Schluss
Einen wirklichen Gewinner kann es nicht geben. Dies hängt zu stark von den eigenen Anforderungen ab. Wer beispielsweise keine Statistiken benötigt, oder externe und automatisierte Backups nicht benötigt, der hat eine sehr viel größere Auswahl an empfehlenswerten Angeboten.
Mit meinen oben formulierten Anforderungen haben sich für mich jedoch zwei Favoriten herauskristallisiert.
Für reines WordPress-Hosting würde ich nach diesem Test WP-Projects.de wählen. Hier werden alle meine genannten Wünsche erfüllt. Natürlich lässt sich hier auch andere Software als WordPress installieren, von der Ausstattung und den Konfigurationsmöglichkeiten ist man jedoch ausdrücklich auf den Betrieb von WordPress ausgerichtet. Durch die Verwendung von NGINX als Webserver ist man evtl. bei der Nutzung anderer Software eingeschränkt, da die Nutzung von HTACCESS-Dateien nicht möglich ist. Andererseits bekommt man mit dem WordPress-Toolkit von Plesk ein Werkzeug an die Hand das einen beim Betrieb und der Konfiguration von WordPress umfangreiche Unterstützung anbietet. So lässt sich beispielsweise mit einem Klick eine Testumgebung der eigenen Webseite erstellen.
Wer hauptsächlich andere Projekte, wie Foren, Matomo oder andere Blogging- oder CMS-Plattformen nutzt, auf eine Konfiguration via HTACCESS Wert legt, ansonsten aber ähnliche Anforderungen wie ich hat, dem würde ich das Webhostingangebot von Hetzner ans Herz legen.
Uberspace ist der nerdkompatible Hoster der Herzen und in mehreren Punkten etwas besonderes. Bevor ich auf den eigenen vServer umgestiegen bin, lag techgrube.de einige Zeit bei Uberspace. Als ich mich einmal (selbstverschuldet) aus dem MySQL-Server ausgesperrt hatte, wurde von den Leuten bei Uberspace nicht nur mein Problem behoben, ich bekam auch noch eine freundliche Erläuterung was was Problem war und was der Hintergrund davon ist.
Eine Kleinigkeit die Zeit kostet und deren Wert man man keinem Controller erklären kann. Trotzdem hat es dafür gesorgt, dass Uberspace bis heute einen Platz in meinem Herzen hat, auch wenn ich schon lange nicht mehr Kunde bin.
Bei Uberspace gibt es zwei Besonderheiten. Das eine ist das Preismodell, das andere ist die Bedienung, die fast ausschließlich über die Kommandozeile erfolgt.
Bei Uberspace gibt es keine unterschiedlichen Pakete mit festen Preisen. Stattdessen bekommt man 10GB Webspace und kann selbst festlegen, welchen Preis man bereit ist zu bezahlen. Zwar wird ein Preis von ca. 10€/Monat empfohlen, es wird aber auch darauf hingewiesen dass man ohne schlechtes Gewissen weniger bezahlen kann, wenn man nur über wenig Geld verfügt. Beispielsweise als Schüler. Ebenso wird darum gebeten etwas mehr bezahlen, wenn die eigenen Finanzen dies erlauben. Damit hilft man dabei, das Angebot langfristig am Leben zu erhalten.
Ladezeit
Leider findet sich auch Uberspace bei der Ladezeit eher im unteren Bereich wieder. Auch hier kam es vereinzelt zu sehr langen Ladezeiten.
Ladezeit Uberspace Webhosting, gemessen mit StatusCake, Serverstandort weltweit wechselnd:
Ladezeiten Uberspace, gemessen mit Pingdom, Serverstandort Frankfurt:
Bester: 0,641
Schlechtester: 5,58s
Durchschnitt: 1,98s
Backups
Uberspace erstellt tägliche Backups von Webspace und Datenbank. Tägliche Backups sind sieben Tage verfügbar, außerdem ist je ein Backup für die vergangenen sieben Wochen verfügbar. Damit sind Backups bei Uberspace länger verfügbar als bei allen anderen getesteten Hostern.
In der Dokumentation wird sinnvollerweise aber auch darauf hingewiesen, dass man sicherheitshalber selbst noch Backups an einem anderen Ort machen soll. Mit den verfügbaren Tools kein Problem. Man bekommt Zugriff auf eine eigene Crontab zum automatisieren von Backups. Außerdem stehen mysqldump, rsync, scp usw. zur Verfügung.
Damit kann man entweder komplett eigene Backups erstellen, oder man kopiert einfach die von Uberspace erstellten Backups auf einen externen Speicherplatz.
Statistiken
Uberspace stellt keine Statistiken zur Verfügung. Allerdings bekommt man alle nötigen Tools zur Verfügung gestellt, um selbst Statistiken anzufertigen.
So lassen sich Logfiles des Webserver mit anonymisierter IP-Adresse speichern. Da sogar Perl genutzt werden kann, kann man die Logfiles DSGVO-konform mit AWStats auswerten. Da man keinen Zugriff auf die Konfiguration des Webservers hat, muss man hier wohl die statischen HTML-Statistiken verwenden.
Oder man installiert sich direkt Matomo. Uberspace bietet hier alle Möglichkeiten, umsetzen muss man diese aber selbst.
IPv6
IPv6 wird unterstützt.
Die Administrationsoberfläche
Eine Administrationsoberfläche wie man sie von den anderen getesteten Hostern kennt, bietet Uberspace nicht. Die Konfiguration findet nahezu komplett über das Terminal auf der Kommandozeile statt.
Über die Benutzeroberfläche kann man seine Passwörter ändern. Ansonsten findet man dort eine Vielzahl an Informationen zum Host auf dem man sich befindet und zum Login via SSH. Eine umfangreiche Dokumentation erklärt, wie man über die Kommandozeile Domains aufschaltet, Emailadressen einrichtet und grundsätzlich seinen Webspace konfiguriert.
Man muss also die Zeit und Bereitschaft mitbringen sich mit Uberspace und der Linux-Kommandozeile auseinanderzusetzen. Dafür bekommt man einen Service, dessen Möglichkeiten von keinem anderen Hoster erreicht werden. Außer den fehlenden Root-Rechten gibt es nur die in der Hausordnung definierten Einschränkungen und diese sagen sinngemäß nur: Halte dich an geltendes Recht und missbrauche den Dienst nicht.
Sonstiges
Es werden TLS 1.2 und TLS 1.3 unterstützt. Ältere Versionen sind deaktiviert. NGINX läuft als Proxy vor einem Apache. Htaccess-Dateien können so genutzt werden.
Fazit Uberspace
Die Performance von Uberspace ist nicht herausragend. Im Gegensatz zu Raidboxes liegen die Stärken von Uberspace aber woanders.
Uberspace ist besonders für Leute geeignet, die sich von den technischen Möglichkeiten der normalen Hoster eingeschränkt fühlen, aber nicht gleich einen kompletten Server selbst betreiben möchten.
Viele Hoster bieten einen Login via SSH auf den Webspace an. Normalerweise werden aber kaum Werkzeuge zur Verfügung gestellt, die diesen Zugang sinnvoll nutzen lassen. Das ist bei Uberspace anders.
Es werden gängige Linux-Tools angeboten und eine Vielzahl an Programmiersprachen unterstützt, so dass sich auch eigene Programme und Skripte nutzen lassen, vorausgesetzt diese benötigen keine Root-Rechte.
Wer lediglich einen Blog online bringen möchte, sich ausschließlich um die Inhalte und nicht um die Technik kümmern will, der ist bei Uberspace falsch. Wer jedoch Spaß und Interesse an der Nutzung der Linux-Kommandozeile hat, der erhält bei Uberspace eine Hostinglösung die flexibler nutzbar ist als alle anderen mir bekannten Angebote auf dem Markt.
Raidboxes ist ein relativ kleiner Hoster, der sich speziell auf WordPress-Hosting spezialisiert hat. Andere Projekte lassen sich bei Raidboxes nicht unterbringen. Geworben wird u.A. mit schnellen Ladezeiten und speziell für WordPress designte Administrationsoberfläche.
Die Preise sind dabei deutlich höher als bei klassischen Hostingangeboten. Das günstigste Angebot kostet 9€/Monat für eine WordPress-Installation. Hier bekommt man noch keine garantierten Ressourcen. Interessant wird eigentlich erst das Starter-Paket für 15€/Monat zuzüglich 19% Ust. pro WordPress-Installation, also 17,85€ Brutto pro Webseite.
Dafür bekommt man bescheidene 5GB Speicherplatz. Das PHP Memory Limit liegt bei 256 MB, als Webserver kommt ein Nginx zum Einsatz. Htaccess-Dateien können also nicht verwendet werden.
Die WordPress Core-Dateien lassen sich, auch via FTP-Client, nicht überschreiben, man hat hier lediglich Leserechte, zusätzliche Einträge in die wp-config.php müssen über das Webinterface von Raidboxes vorgenommen werden. Andere Ordner, wie das Uploads und Pluginverzeichnis von WordPress, können via FTP-Client beschrieben werden. Klingt sehr restriktiv, ist aber aus einer Sicherheitsperspektive gar keine schlechte Idee. Wirkliche Einschränkungen hat man dadurch nicht, man muss lediglich seine Arbeitsweise etwas anpassen. So müssen WordPress-Updates aufgrund der fehlenden Schreibrechte über die Benutzeroberfläche von Raidboxes vorgenommen werden.
Klingt alles sehr teuer und restriktiv? Ist es auch. Allerdings bietet Raidboxes auch viele hilfreiche, gut durchdachte und speziell auf WordPress-Hosting zugeschnittene Funktionen. Und die Ladezeiten sind atemberaubend.
Ladezeit
Raidboxes wirbt sehr prominent mir sehr niedrigen Ladezeiten. Dafür setzt man eigenes Caching ein, was Caching-Plugins in WordPress überflüssig mache. Bei den technischen Details ist von NGINX- und PHP-OpCache die Rede. Über die Benutzeroberfläche kann festgelegt werden, wie häufig der Cache geleert werden soll. Außerdem kann dieser manuell geleert werden, beispielsweise wenn man Veränderungen an der Webseite vorgenommen hat.
Ein Test der Ladezeiten zeigt, dass Raidboxes nicht zu viel verspricht.
Ladezeit Raidboxes Webhosting, gemessen mit StatusCake, Serverstandort weltweit wechselnd:
Ladezeiten Raidboxes Starter, gemessen mit Pingdom, Serverstandort Frankfurt:
Bester: 0,343s
Schlechtester: 0,441s
Durchschnitt: 0,359s
Backups
Raidboxes erstellt tägliche Backups, die je nach Tarif für 7-30 Tage vorgehalten werden. Außerdem lassen sich manuelle Backups erstellen, was vor größeren Änderungen an der Webseite sinnvoll ist.
Die Backups werden auf der Raidboxes-Infrastruktur gespeichert. Leider bekommt man auf die Backups weder via FTP-Client Zugriff, noch lassen sie diese manuell oder automatisiert exportieren.
Wer nicht ausschließlich auf die Backups von Raidboxes vertrauen will, der muss ein WordPress-Plugin für automatisierte externe Backups einsetzen. Alternativ kann man sich natürlich ein Datenbank-Backup via Adminer erstellen und die WordPress-Dateien via FTP-Client ziehen. Aber wer macht das schon regelmäßig.
Statistiken:
Raidboxes bietet keine Statistiken an. Hier muss man auf externe Lösungen wie Google Analytics oder Matomo zurückgreifen. Für Matomo muss man sich wiederum einen geeigneten Hoster suchen, da Raidboxes lediglich WordPress hostet. Das Nachladen von Inhalten aus externen Quellen kann dabei die Ladezeit negativ beeinflussen.
IPv6
IPv6 wird nicht unterstützt.
Die Administrationsoberfläche
Raidboxes verwendet eine, speziell auf das eigene Angebot zugeschnittene Administrationsoberfläche. Die Oberfläche ist modern und übersichtlich. Hier erhält man Zugriff auf die Backups, kann PHP-Einstellungen vornehmen und WordPress updaten.
Trotz der teilweise sehr restriktiven Einstellungen von Raidboxes, bekommt man über das Webinterface relativ viele Gestaltungsmöglichkeiten und kann einige Servereinstellungen vornehmen, die andere Hoster gar nicht, oder nur kompliziert über eine .htaccess-Datei ermöglichen. So lassen sich beispielsweise über das Webinterface verschiedene Security-Header setzen.
Sonstiges
Ein Account kann ohne Angaben von Zahlungsinformationen erstellt, getestet und auch wieder gelöscht werden. Das erleichtert das Testen und zeigt, das der Anbieter von seinem Produkt überzeugt ist.
Raidboxes verkauft auch Domains, allerdings ist der Dienst eher auf die Nutzung mit externen Domains ausgerichtet. Kostenfreie Let’s Encrypt Zertifikate lassen sich für alle Domains erstellen.
Eine sehr spannende Funktion ist die sogenannte Staging-Umgebung. Hierbei handelt es sich letztendlich um eine Kopie der Webseite, bzw. um eine Testumgebung. So können gefahrlos Änderungen an der Webseite vorgenommen und getestet werden, ohne dass man die richtige Installation gefährdet.
Bei SSL Labs erhält Raidboxes eine hervorragende A+ Bewertung. Der Webserver unterstützt die als sicher geltenden Verschlüsselungsprotokolle TLS 1.2 und 1.3, ältere TLS/SSL Versionen sind deaktiviert.
Fazit Raidboxes
Bei der Ladezeit lässt Raidboxes die Konkurrenz meilenweit zurück. Allerdings hat dies auch seinen Preis. Das günstigste interessante Paket kostet 15€ netto pro Monat pro WordPress-Installation. Bei mehreren Projekten wir das schnell teuer.
Wer mit seinem WordPress-Blog seinen Lebensunterhalt verdient, oder einen WooCommerce Shop betreibt, der sollte sich Raidboxes auf jeden Fall anschauen. Denn für den hohen Preis wird auch viel Leistung und einige clevere Funktionen geboten.