Wenn man einen frisch installierten Server bekommt hat dieser manchmal einen komischen Hostname. Dann ergibt es Sinn, diesen an die eigenen Bedürfnisse anzupassen. Das ganze ist einfach und geht schnell. Erstmal kannst du mit folgendem Befehl anzeigen lassen wie der derzeitige Name ist:
hostnamectl
Und ändern kannst du ihn mit dem folgenden Befehl:
hostnamectl set-hostname test02.cy3er.de
Meinen Hostname „test02.cy3er.de“ musst du natürlich gegen deinen gewünschten Hostname austauschen.
Nach einem Neustart wird auch bei root@v6752 wird dann root@test02 angezeigt wenn alles geklappt hat.
Die 2 CPU Kerne takten laut yabs.sh mit 3,2 GHz um welchen Prozessor es genau geht konnte ich nicht herausfinden. Nur das es einer von der AMD EPYC-Milan Reihe ist. Der Arbeitspeicher mit 4GB ist mit DDR5-Speicher auf dem neusten Stand der Dinge. Er arbeitet mit der NVMe SSD sehr zügig. Das habe ich bei der Installation von YunoHost bemerkt. Bei anderen Server lief die Installation sonst sehr schleppend.
* Der Uplink war bei meinen Tests sehr stabil und teilweise sogar deutlich über 1Gbit/s.
** Ein kleiner Nachteil den ich gefunden habe ist beim Traffic. Hier wird nach erreichen von 20TB auf 10Mbit/s gedrosselt. Ich muss aber auch dazu sagen, das solch eine große Menge Datenverkehr, erst einmal erreicht werden muss.
Zum Server gibt es sowohl eine IPv4 und ein 64er Netz IPv6 Adressen. Was ich auch ganz praktisch finde, das 1fire.de einen eigenen Debian Mirror bereitstellt. Daher bekommt der Server alle Installationspakete direkt aus dem Rechenzentrum. Das macht das Installieren von Updates oder Software etwas schneller.
Die Option DDoS-Schutz ist leider noch in der BETA. Dabei finde ich in der heutigen Zeit sollte ein guter DDoS-Schutz in jedem VPS-Hosting Standard sein. Auf der Website heißt es: „Wir schützen deinen Server mit unserem Basis-DDoS-Schutz während unserer BETA kostenlos gegen volumetrische Angriffe.“ Also grundsätzlich ist ein Standard Schutz vorhanden.
Bei meiner Begutachtung des Servers bin ich vor allem auf das Thema Linux Server eingegangen. In dem Fall mit Debian 12. Es muss aber auch gesagt sein, dass du den Server auch mit Windows betreiben kannst. Dafür benötigst du aber eine Lizenz für z.B. Windows Server 2022. Aber ich habe auf dem Server aus Interesse einfach mal eine Testversion aufgesetzt. Die Installation geht auch automatisch aus dem Cloud-Panel heraus. Aber ich glaube mit diesem Server wird man schnell an die Grenze der Ressourcen stoßen. Im Leerlauf benötigt der Server Bereits 1,8 GB RAM von den 4 GB. Von den 100GB Speicher sind nach der Installation noch 87,4 GB übrig. Die CPU ist kaum ausgelastet. Ich kann aber nicht genau sagen wie viel verschiedene Serverdienste brauchen, da ich einfach von Windows keine Ahnung habe. Mein Fokus liegt klar bei Linux Systemen. Aber Windows lässt sich leicht aufsetzen und läuft.
Wünsche an den Anbieter Ich bin schon seit längerer Zeit auf der Suche nach einem Hybrid Server. Also Quasi ein vServer der sowohl einen NVMe Speicher als auch einen großen HDD Speicher hat. Es gibt einige Anbieter auf dem Markt, aber ich habe noch nicht den passenden gefunden. Benchmarks des Servers (yabs.sh)
Ausführliche Betrachtung des Backend Das Backend ist sehr aufgeräumt und gut strukturiert. Hier in der folgenden Galerie, kannst du dir einen Einblick über die Funktionen erschaffen.
In der Übersicht sehen sie allgemeine Werte des vServers, z.B. die Auslastung von RAM und CPU. Außerdem auch noch den Netzwerktraffic. Und sie haben Buttons für Starten, Herunterfahren, Neustart, Ausschalten und Neuinstallation. Mit dem letzten Button solltest du vorsichtig sein, nicht das es zu ungewolltem Datenverlust kommt.
Unter Medien, können sie die Startreihenfolge des VPS einstellen und ein Rettungssystem bei Bedarf einlegen. Über diese Optionen ist es auch möglich, das gewünschte Betriebssystem von Hand zu installieren.
Unter Optionen kannst du einen VNC-Zugang aktivieren, das ist nützlich wenn du zum Beispiel nicht mehr via SSH auf deinen vServer kommst. Außerdem lässt sich darüber auch das Root-/ Administrator-Passwort wiederherstellen.
Im Punkt Netzwerk bekommst du alle Infos zur IPv4 und IPv6 Adresse, die du benötigst. Außerdem lässt sich der IPv4-Öffentliche DNS-Resolver einstellen.
Im Reiter Storage wird dein Hauptspeicher angezeigt in meinem Fall sind es 100GB.
Unter Freigabe können sie bei Problemen dem Support das Cloud-Panel freigeben um Probleme zu lösen.
Einrichtungsprozess Eine Einrichtung bzw. Neuinstallation des Server dauert gerade mal 1Minute dann steht der Server. Daten ausfüllen, SSH-Schlüssel hinzufügen, auf Installation klicken und nach ein paar Sekunden ist der Server bereit.
So macht das Arbeiten mit einem VPS sehr angenehm.
Besonderheiten Was mir sofort ins Auge gestochen ist, das die Server bei 1fire.de mit 100% Ökostrom betrieben werden. Das findet man nicht all zu häufig. Dazu gibt es sogar ein Zertifikat zur Einsicht. Ein sehr gut sortiertes Cloud-Panel mit sehr vielen Optionen. Es gibt eine Geld-zurück-Garantie, dafür genügt eine E-Mail innerhalb von 14 Tagen. Dann wird der bezahlte Betrag zurück erstattet.
Support Dieser läuft via E-Mail oder einem Ticket-System. Meine Support Anfrage wurde sehr schnell und freundlich beantwortet. Die Bereitstellung erfolgte innerhalb weniger Minuten.
Rechenzentrum Telehouse – Frankfurt am Main Die Stromversorgung ist N+1 redundante, USV-gesicherte Stromversorgung mit Batterie-Backup. Also wenn da der Strom ausfällt wird erstmal mit Batterien gepuffert und die Server können mit bis zu 3 Tage weiterhin betrieben werden. In dieser Zeit sollte der Stromausfall erledigt sein. Die Server werden außerdem mit 100% Ökostrom versorgt. Weitere Informationen zum Rechenzentrum findet ihr hier oder direkt auf der Website vom Telehouse.
Vertragsdetails Weitere Informationen folgen. Die Server haben keine langen Mindestvertragslaufzeiten sondern sind monatlich kündbar. Ausgenommen sind davon die SSL-Zertifikate. Diese werden jährlich abgerechnet. Den Preis habe ich noch nicht, da die Tarife gerade noch umgestaltet werden. Du kannst dich also au ein neues Portfolio in den nächsten Tagen freuen.
Fazit Insgesamt bekommt man hier einen vServer der neuste Technik nutzt und dank dem DDR5 RAM und dem NVMe – Speicher, ist der Server sehr fix unterwegs. Die CPU ist nicht die neuste aber die Leistung (meckern auf hohem Niveau) sollte für die gängigsten Funktionen definitiv reichen. Also wem 100GB Speicherplatz und 4GB RAM genügen kann hier nichts falsch machen. Hier kannst du auch noch meinen Beitrag zu YunoHost lesen. Die Installation habe ich in dem Beitrag dokumentiert.
Quelle: 1fire.de Website (Stand: 05.09.2024) & eigene Tests mit einem vServer von 1fire.de
Wie es im Titel schon steht, soll es im heutigen Beitrag um das auf Debian basierte System YunoHost gehen. Wir gehen gemeinsam durch, wie man es kinderleicht installiert. Außerdem installieren wir erste App’s um mit dem guten Stück etwas herumexperimentieren.
Für meinen Test hat mir auf Anfrage [Werbung] 1fire.de einen vServer mit den folgenden Daten zur Verfügung gestellt. Vielen Dank an Danny Lotz :
2 CPU-Kerne
4 GB RAM (DDR5)
100 GB NVMe SSD
1 GBit/s Uplink
20 TB Traffic
1 IPv4-Adresse
1 IPv6 /64-Netz
Für die Yunohost Installation benötigen wir Debian 11 ! Das ist eine der Voraussetzungen für die Installation. Weitere Voraussetzungen sind:
2 GHz CPU-Kern
512MB – 1GB RAM
eine Domain oder Subdomain
1 IPv4 Adresse
Also haben wir mit dem vServer alles was wir brauchen.
Zur Vorbereitung für unsere Yunohost Installation benötigen wir noch zwei Pakete:
apt install curl ca-certificates
Dann können wir schon den Installations-Script ausführen:
curl https://install.yunohost.org | bash
Dann startet auch schon die Installation die erste Meldung müssen wir mit „Yes“ bestätigen.
Die folgende Meldung bestätigen wir auch mit „Yes“ dadurch geben wir das Okay das unser SSH-Dienst von nun an von Yunohost organisiert wird. Im Einstellungsmenü lassen sich später noch Dinge konfigurieren.
Jetzt installiert er ein paar Pakete, die so benötigt werden.
Wenn das alles durch ist, kommt eine Meldung das die Installation erfolgreich war „YunoHost Installation completed!“
Nun geht die Installation im Browser weiter, dafür geben wir wie in der Meldung geschrieben unsere Server IP mit https://IPv4 ein und dann geht es weiter. Dort erwartet uns gleich eine Fehlermeldung. Das liegt daran, da wir noch kein Sicherheitszertifikat hinterlegt haben. Also können wir mit einem Klick auf „Erweitert“ und dann auf „Risiko akzeptieren und fortfahren„. Wenn man sonst solch eine Meldung bekommt sollte man wirklich immer abchecken was man dort tut.
Nun kommt eine Meldung mit Gratulation und hier kannst du schon mal stolz auf dich sein. Als nächsten Schritt klickst du auf Anfangen.
Nun geht es an die Domainangabe. Hier klickt ihr auf „Ich möchte eine eigene Domain bzw. Subdomain eingeben„. Das machst du dann. Und klickst auf „Weiter“
Dann geht es an die Erstellung des ersten Administrator Accounts. Dort wieder alles ausfüllen und auf „Weiter“ klicken.
Der nächste Schritt wird ein paar Minuten dauern. Lehne dich einfach zurück und warte auf dein Schlüsselfertigen Server.
Nun ist der Server soweit. Jetzt sollten wir noch ein Let’s Encrypt Zertifikat für unsere Subdomain anlegen, damit wir nicht ständig die Meldung bekommen das mit unserem Zertifikat nicht stimmt. Aber vorher machen wir noch die initial Diagnose. Dafür klickst du einfach auf „Diagnose“ wenn du dich eingeloggt hast. Dort klickst du anschließend auf die Initiale Diagnose starten
Dann wenn der Prozess fertig ist kommt eine Auflistung mit Infos über den Server und wahrscheinlich ein Paar Fehlermeldungen. Diese können wir vorerst ignorieren.
Jetzt klickst du auf das YunoHost Logo um wieder zum Hauptmenü zu gelangen. Dort klickst du auf „Domänen“ Und dann auf deine Subdomain bzw. Domain Dann wählst du die Registergruppe Certificate
Nun kannst du mit einem Klick auf Installation des Let’s Encrypt-Zertifikat das Zertifikat für deine Domain erstellen und installieren.
Das kann wieder einen Moment dauern. Aber dann kommt die Meldung das alles gut gelaufen ist.
Jetzt kannst du dich aus dem Panel einmal „Abmelden“. Nun kannst du dich ohne Fehlermeldung mit deiner Domain bzw. Subdomain am Panel anmelden. Bei mir ist das die Subdomain test01.cy3er.de Nun haben wir die Grundinstallation fertig.
Jetzt geht es ans rumprobieren und wie ich auch gern sag, rumspielen. Die Menüführung von YunoHost ist aus meiner Sicht so ziemlich selbsterklärend.
Unter dem Punkt „Konten„, lassen sich noch mehr Nutzer:innen zum Server hinzufügen. Die Unterkategorie „Domänen“ hast du ja schon kennengelernt, über diese Option lassen sich noch weitere Domains/Subdomains hinzufügen. Der Punkt „Applikationen“ dient der Software Installation. Dort gibt es z.B. WordPress, Owncloud, Nextcloud, Invidious und viele mehr. Mit dieser Option, lassen sich viele Apps kinderleicht installieren und updaten. Dann der Punkt „System aktualisieren“ ermöglicht eine einfache Aktualisierung des gesamten YunoHosts Unter dem Punkt „Werkzeug„, lassen sich einige Einstellungen des Systems vornehmen z.B. Konfiguration der Firewall oder weitere Einstellungen. Außerdem gibt es die Option „Diagnose„, hier kannst du schauen ob es Fehler in der Konfiguration des Servers gibt.Dort geht es vor allem um die DNS-Einstellungen. Und der letzte Punkt „Datensicherung“ hilft dir beim erstellen von Backups. Du kannst ein komplettes Backup vom YunoHost Server machen oder nur einzelne Dienste. Die Datensicherung findet dabei nur auf dem selben System statt, daher empfehle ich noch eine separate Kopie des Backups auf einen anderen Server oder dem heimischen PC zu sichern. Zu dem Thema Backup, findest du hier weitere Informationen.
Fazit zur Installation Also aus meiner Sicht war das eine gemütliche Runde ohne große Anstrengung. Am Anfang musste ich im Cloud-Panel von 1fire.de meine virtuelle Maschine aufsetzen. Dort wurde ich sehr gut durch die Installation geführt. Die Installation erfolgte auf Knopfdruck. Dort habe ich mir ein Debian 11 installieren lassen. Vor der Installation konnte ich direkt meinen SSH-Schlüssel hinterlegen, sodass ich mich direkt mit Key statt mit Password anmelden konnte. Die Bereitstellung erfolgte innerhalb einer Minuten. Ich bin absolut fasziniert wie schnell das ging. Dann habe ich mich mit meinem root Account direkt via SSH eingeloggt. Dort habe ich wie oben beschrieben zwei Pakete zur Vorbereitung der YunoHost Instanz, installiert. Auch die YunoHost Installation ging sehr schnell von statten.
Um noch mehr von YunoHost zu erfahren, lohnt es sich auch die offizielle Dokumentation zu lesen. https://yunohost.org/de
Es ist unter Open Source lizenziert. Ceph ist hoch skalierbar. Es gibt eine hohe Ausfallsicherheit durch verteilte Ablage der Daten.Er wird aber als zusammenhängender Speicher dargestellt. Ceph benötigt mehrere miteinander vernetzte Computer. Diese werden als Cluster zusammengeschlossen. Jeder einzelne Computer wird dabei als Node (Knoten) bezeichnet. Unter den einzelnen Nodes müssen verschiedene Aufgaben verteilt werden:
Manager Verwalten den Status der Speichernutzung, der Systemlast und Auslastung der Knoten.
Monitor Verwalten den Status der einzelnen Nodes um für Ausfallsicherheit zu sorgen. Es werden mindestens 3 Monitor Nodes empfohlen.
Ceph OSDs [Object Storage Devices] Die Dienste für die eigentliche Dateiverwaltung. Sie sind für die Speicherung, Duplizierung und Wiederherstellung von Daten zuständig. Pro Cluster sollte es 3 Ceph OSDs geben.
Metadaten-Server (MDSs) Speichert die Metadaten( Speicherpfade, Dateinamen und Zeitstempel) sie sind POSIX-konform und können mittels Unix-Kommandozeilen-Programmen wie ls, find und like ausgelesen werden.
Der Algorithmus mit der Bezeichnung CRUSH (Controlled Replication Under Scalable Hashing). ermöglicht mit Hilfe einer Zuordnungstabelle der CRUSH Map, einem OSD [Object Storage Devices] mit der angeforderten Datei zu finden. Klingt kompliziert, ist aber so 😛
Die Basis der Datenablage unter Ceph wird als RADOS bezeichnet.
RADOS steht für (a reliable, distributed object store comprised of self-healing, self-mapping, intelligent storage nodes) frei übersetzt: zuverlässiger, verteilter Objektspeicher, bestehend aus selbstheilenden, selbstabbildenden, intelligenten Speicherknoten.
Möglichkeiten des Datenzugriffs :
librados – eine Bibliothek für Anwendungsentwickler
CephFS – eigenes Dateisystem; ein Kernel-Modul für zugreifende Rechner (Fuse)
radosgw – ein Gateway der via HTTP gelesen oder geschrieben werden kann
RADOS Block Device – Einbindung durch Kernel-Module oder virtuelle Systeme wie QEMU/KVM.
Vor- und Nachteile von Ceph
Vorteil:
Ceph ist kostenfrei
Es gibt viele Tutorials zur Einrichtung und Wartung
Gute Dokumentation vom Hersteller
integrierte Redundanz sorgen für Datensicherheit
Nachteile:
Einrichtung ist relativ kompliziert
Es ist ein umfangreiches Netzwerk notwendig
Es ist physisch nicht ganz klar wo die Daten abgelegt werden man muss quasi dem Algorithmus vertrauen
Einen eigenen Minecraft Server zu betreiben, hat einige Vorteile. Man kann z.B. die Einstellungen des Servers wählen. Du kannst außerdem entscheiden ob es ein privater Server nur für dich und deine Freunde wird, oder ob du diesen für die Allgemeinheit freigibst. Debian 12 ist für dieses Vorhaben das geeignete Betriebssystem. Im folgenden kannst du mit der Anleitung lernen, wie du einen eigenen Minecraft Server Stück für Stück aufsetzt. Diese Anleitung müsste auch auf einem RaspberryPi laufen, wurde aber nicht getestet.
Als erstes musst du dich mit deinem Server über das Terminal verbinden.
Du brauchst einige Pakete, die du herunterladen musst. Dazu gibst du im Command Line Terminal folgende Befehle ein:
Mit wget lassen sich Datein via HTTPS direkt auf den Server runterladen Das brauchen wir, wenn wir die Minecraft Server Software downloaden.
screen
Mit screen kann man bestimmte Befehle im Hintergrund weiterlaufen lassen auch wenn man das Terminal schließt.
openjdk-17-jre
Das ist die sogenannte Headless Java Version. Diese wird benötigt um die Minecraft Server Software überhaupt zu starten.
User anlegen für den Server
Es ist am besten, den Minecraft-Server unter einem eigenen Konto laufen zu lassen, anstatt root oder ein anderes Konto zu verwenden. Das ist aus Sicherheit einfach besser. Erstellen ein neues Konto in Debian mit dem folgenden Befehl:
sudo useradd -m -r -d /opt/minecraft minecraft
Minecraft Server installieren
Es ist ohne Probleme möglich später auch mehrere Minecraft Server Instanzen auf einem Host zu betreiben. Daher geben wir dem ersten Server einen Namen und legen für diesen Server einen eigenen Ordner an. In dem Fall „creative“
Den Link im Befehl musst du mit deinem kopierten Link von der Minecraft Website austauschen um die aktuelle Version zu haben. Dann drückst du einfach [ENTER] und der Download beginnt.
Bevor du den Minecraft-Server installieren kannst, musst du die Nutzungsbedingungen akzeptieren. Das geht am schnellsten mit diesem Befehl:
Diesen Inhalt in die Datei einfügen und abspeichern, anschließend den File verlassen.
Unter diesem Punkt kannst du noch den Arbeitsspeicher zuweisen, wie viel der Server bekommen soll. Es sind 2GB eingestellt. Mehr sind natürlich besser: „-Xmx2G“ das G steht für die Gigabyte.
Wer sich mit dem Thema Self-Hosting auseinander setzt kommt früher oder später auf das Thema Nextcloud. Und wenn du einen vServer mit genügend freiem Speicherplatz hast, kannst du dir ja einen Cloud Server aufsetzen. Wenn du wissen willst wie, hier folgt jetzt die Anleitung.
Apache2 Webserver Installation
Zuerst installieren wir einen Webserver, ohne diesen bekommen wir nix im Browser angezeigt. Mit dem folgenden Command wird Apache2 auf deinem Server installiert:
sudo apt install apache2
UFW installieren
Ohne eine Firewall geht es nicht. Die bekannteste Firewall ist IPTables. Aber diese ist in der Konfiguration ziemlich schwierig. Daher nutzen wir für unseren Server UFW. Also gleich mal installieren:
sudo apt install ufw
Nun müssen wir die Firewall „UFW“ noch konfigurieren. Die Firewall blockiert per Anfangseinstellung alle Ports, d.h. das erst einmal kein Dienst von Außen aufgerufen werden kann. Aber wir brauchen ein paar offene Ports, damit wir unserer Server nutzen können. Da fällt mir gleich der erste ein, der SSH Port, sonst kannst du dich nicht an der Konsole anmelden. Also stellst du diesen eine. Diesen Port solltest du von 22 auf einen Wunschport ändern im Kapitel „Konfiguration SSH“. Bei mir nehme ich jetzt Port 10240 diesen habe ich in der SSH-Konfigurtion so gesetzt. Dazu mehr findest du in dem Beitrag Absicherung eines Debian Server.
sudo ufw allow 10240/tcp
Dann öffnen wir gleich mal noch die Ports HTTP und HTTPS diese werden in der Regel benötigt. Wenn du keinen Webserver betreiben möchtest, kannst du diesen Schritt überspringen.
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Jetzt hast du die ersten Ports geöffnet aber müssen noch die Firewall einschalten. Daher ist es wichtig das du den richtigen SSH Port angegeben haben, sonst sperrst du dich selbst aus dem System aus. Firewall einschalten:
sudo ufw enable
Diese Info musst du mit einem „y“ bestätigen. Es kommt noch die Meldung: „Firewall is active and enabled on system startup“ Im Anschluss ist nun auch die Firewall aktiv. Und sollte einige Angriffe abhalten. Wenn du einen neuen Dienst installierst, musst du dann in Zukunft die dazugehörigen Ports öffnen.
Installation PHP 8.2
Über diesen Befehl wird PHP 8.2 installiert und dazu noch einige Plugins welche für die reibungslose Funktion von Nextcloud benötigt werden.
Jetzt kannst du direkt nach der Installation checken, ob auch das Richtige installiert wurde
php --version
Nun musst du noch die Konfigurationsdatei für Nextcloud anpassen. Alles Stück für Stück. Mit dem nächsten Befehl kannst du die Config Datei öffnen. Da diese Datei sehr lang ist und das stressig wird die einzelnen Werte zu suchen, kannst du die Suchfunktion von nano nutzen. Wenn du im Editor bist kannst du einfach [Strg]+[W] drücken dann erscheint eine Suchleiste. Gib einfach deinen Begriff ein und du springst an die Stelle in der Config Datei.
sudo nano /etc/php/8.2/apache2/php.ini
Kommentiere aus den Parameter date.timezone und geben Sie die richtige Zeitzone für PHP ein.
date.timezone = Europe/Berlin
Erhöhen Sie den Standardwert der Parameter memory_limit, upload_max_filesize, post_max_size und max_execution_time. Passe die Werte nach Bedarf an. Das Memory_limit orientiert sich stark am Arbeitsspeicher. Mein Server hat nur 1GB also belasse ich es bei 512MB.
Jetzt, wenn alle Werte angepasst sind, kannst du den Apache2 Server neustarten und damit die neue Konfiguration aktivieren.
sudo systemctl restart apache2
Installation MariaDB Server
Nachdem du nun den Apache2 Webserver und PHP in der Version 8.2 installiert hast, brauchen wir noch einen Datenbank Server. Hier installieren wir MariaDB Server.
sudo apt install mariadb-server
Nach der Installation kannst du mit folgendem Befehl schauen ob der Server läuft
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
Wenn alles glatt gelaufen ist sollte es in etwa so bei dir aussehen
Jetzt musst du noch den MariaDB Server absichern, das passiert mit dem folgenden Befehl
sudo mariadb-secure-installation
Während des Prozesses solltest du „Y“ eingeben, um zuzustimmen und die Konfiguration auf MariaDB anzuwenden, oder „n“ eingeben, um nicht zuzustimmen und die Konfiguration als Standard zu belassen. Nachstehend findest einige MariaDB-Konfigurationen, nach welchen du gefragt werden wirst.
Drück ENTER wenn du nach dem MariaDB root password gefragt wirst
Gib n ein wenn du noch unix_socket_authentication method gefragt wirst
Gib Y ein, um ein neues Passwort für den MariaDB-Root-Benutzer einzurichten. Gib dann das neue Kennwort ein und wiederholen den Vorgang.
Gib Y ein, um den anonymen Standardbenutzer aus MariaDB zu entfernen.
Gib dann erneut Y ein, um die Remote Anmeldung für den MariaDB-Root-Benutzer zu deaktivieren.
Gib Y ein, um den Standard-Testdatenbank von MariaDB zu entfernen
Gib abschließend erneut Y ein, um die Tabellenberechtigungen neu zu laden und die Änderungen zu übernehmen.
Nun ist MariaDB fertig installiert und abgesichert.
Datenbank und User erstellen
Nun legst du eine Datenbank an und dazu einen Nutzer an, beides brauchst du für die Installation von Nextcloud. In der Datenbank werden dann später z.B. die Kalenderdaten, Kontakte usw.
Mit dem Befehl meldest du dich am Datenbank-Server an:
sudo mariadb -u root -p
Das sind die Befehle zum erstellen der Datenbank und des Users Am besten du kopierst die Zeilen einzeln in die Konsole und drückst jeweils ENTER
CREATE DATABASE nextcloud_db;
CREATE USER nextclouduser@localhost IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO nextclouduser@localhost;
FLUSH PRIVILEGES;
Mit dem Befehl „quit“ meldest du dich vom Datenbank-Server ab.
Download Nextcloud
Um den Download von Nextcloud zu verarbeiten benötigst du noch zwei Tools, die du nun installieren wirst. Das ist „wget“ zum Download von Nextcloud und „unzip“ zum Entpacken.
sudo apt install wget unzip -y
Jetzt wechseln wir in das Verzeichnis, wo die Programmdaten von Nextcloud hin kommen.
Dann vergibst du noch für den gesamten Ordner „nextcloud“ die nötigen Rechte.
sudo chown -R www-data:www-data nextcloud
Erstellen des VirtualHosts unter Apache2
Nachdem du das Nextcloud Softwarepaket heruntergeladen hast, musst du die neue Konfiguration des virtuellen Apache2-Hosts erstellen, der für den Betrieb von Nextcloud verwendet werden soll. Stell sicher, dass die Domain auf die IP-Adresse deines Debian-Servers für deine Nextcloud-Installation zeigt.
Nun erstellen wir den vituellen Host unter Apache2 Wir legen dazu eine neue Datei im Verzeichnis /etc/apache2/sites-available/
Mit dem ersten Befehl legen wir mit dem virtuellen Host eine neue Seite an die der Webserver nun bereit stellt. Der zweite Befehl checkt ob die Syntax von der Konfiguration so passt.
Nun starten wir nochmal den Apache2 Webserver neu.
sudo systemctl restart apache2
Absicherung der Nextcloud mit SSL-Zertifikat
Um eine zusätzliche Sicherheitsebene für Ihre Nextcloud hinzuzufügen, richten Sie HTTPS innerhalb Ihrer virtuellen Apache2-Host-Konfiguration über Certbot ein. Certbot ist ein Tool zur Generierung kostenloser SSL/TLS-Zertifikate von Letsencrypt. Erstmal muss dieses Tool aber installiert werden:
sudo apt install certbot python3-certbot-apache
Und dann nutzen wir gleich das Tool um unser Zertifikat zu erzeugen und es dann mit unserer Seite zu verknüpfen. In dem Command müsst ihr eure E-Mail anpassen und auch eure Domain/Subdomain.
Wenn alles durchgelaufen ist müsste es bei dir möglich sein die Domain aufzurufen ohne eine Sicherheitsmeldung zu bekommen. Dort erscheint dann die Installationsmaske von der Nextcloud.
Installation der Nextcloud
In diesem Abschnitt startest du die Nextcloud-Installation über den Webbrowser. Dabei wirst du den Admin-Benutzer für Nextcloud anlegen.
Ruf den Webbrowser auf und gib deinen Domainname deiner Nextcloud-Installation auf (z.B.: http://storage.cy3er.de/). Du solltest automatisch auf eine sichere HTTPS-Verbindung umgeleitet werden und , wirst aufgefordert einen Administrator-Benutzer für Nextcloud anzulegen.
Benutzername und Passwort kannst du selber wählen. Das wird dann automatisch der Admin-Account.
Dann musst du noch die Datenbank Daten eintragen Username, Datenbankname und Passwort. Diese haben wir in dem Schritt „Datenbank und User erstellen“ angelegt.
Dann wenn du alle Daten eingetragen hast, brauchst du nur noch auf installieren drücken. Das dauert dann einen kleinen Moment je nachdem wie schnell dein Server so ist. Das ist dann auch das Ende. Du hast fertig einen Nextcloudserver installiert. Jetzt wird dir nur noch eine Frage gestellt, ob du ein paar nützliche Tools installieren willst. Das kannst du entscheiden danach bist du dann aber wirklich fertig.
Bei den meisten Providern für vServer aller Art, gibt es die Möglichkeit den Server automatisch installieren zu lassen. Daher zeige ich jetzt nicht die komplette Installation von Debian 12. Das werde ich in einem anderen Tutorial noch nachholen. Wir gehen nun bei dieser Anleitung davon aus, das wir einen frisch installierten Debian Server vor uns haben. Am besten noch haben wir uns mit dem Root-User angemeldet.
Non-Root User anlegen und mit sudo Rechten ausstatten
Nun kannst du erstmal einen non-Root-User anlegen und diesem sudo Rechte übertragen. Dazu nutzen wir folgenden Befehl
adduser bernd
Dort wird nach einem Passwort gefragt und noch ein paar Andere Daten. Das Passwort ist wichtig die anderen Daten kannst du auch ohne Eingabe mit Enter bestätigen. Zum Schluss noch die Eingabe eines Y und der User „bernd“ ist angelegt. Du kannst natürlich einen selbst gewählten Namen nutzen.
Dann installierst du das Paket sudo
apt install sudo
Im Anschluss kannst du dem Nutzer „bernd“ die sudo Rechte zuweisen. Das sind im Prinzip Admin Rechte für das System. So brauchst du dann nicht mehr mit Root anmelden und hast trotzdem die Möglichkeit Updates einzuspielen und Pakete zu installieren. Nun die Gruppenzuweisung von sudo an User „bernd“
usermod -aG sudo bernd
Nun kannst du dich mit dem Command „exit“ mit dem User Root abmelden.
exit
Dann melden wir uns mit dem User bernd an
ssh nonroot@deineip
Dann kannst du es gleich mal ausprobieren, ob sudo Rechte vorhanden sind. Wir aktualisieren einfach mal unsere Paketliste. Dort werdet ihr nach dem User-Passwort von „bernd“ gefragt.
sudo apt update
SSH Public Key Authentifizierung
Dieser Part ist für Linux Systeme beschrieben für Windows findet ihr hier eine Anleitung. Der Schritt findet auf deinem Computer und nicht auf dem Server statt. Für euren persönlichen PC Account habe ich den Namen user genommen. Also ist euer Home Verzeichnis: /home/user
Nun öffnest du deinen Terminal und wechselst in das versteckte Verzeichnis „.ssh“ – Dieses liegt in deinem /home Verzeichnis.
cd /home/user/.ssh
Wenn es dieses noch nicht gibt dann leg es einfach mit „mkdir .ssh“ an. Nun legst du in diesem Ordner unser Schlüsselpaar bestehend aus Public und Private Key .
ssh-keygen -b 4096
Dort wirst du gefragt wie du die Schlüsseldatei nennen möchtest, ich hab sie im Screenshot key01 genannt. Dann noch eine Passphrase und nochmal bestätigen. Dann Enter und zack ist das Schlüsselpaar erstellt und kann verwendet werden.
Nun musst du noch den Public Schlüssel auf das Zielsystem übertragen, dafür nutzt du den Befehl ssh-copy-id
Dann wirst du wie bei der SSH Verbindung nach deinem Passwort vom Server User gefragt. Dieses gibst du ein und dann wird der Public Schlüssel auf den Server geschoben. Wenn das alles geklappt hat, kannst du dich ohne Passwort nur mit Passphrase und Schlüssel anmelden.
ssh -i /home/user/.ssh/key01 bernd@ipvomserver
Konfiguration SSH
Nun widmen wir uns dem SSH-Dienst und konfigurieren diesen so das er die nötigsten Einstellungen bekommt. Dazu musst du die Konfigurations-Datei des SSH-Dienstes bearbeiten. Diese öffnest du mit folgendem Befehl:
sudo nano /etc/ssh/sshd_config
So etwa sollte die Konfigurations-Datei aussehen nun musst du einige Werte anpassen. Wenn du die Datei runter scrollt kommen noch einige weitere Werte die angepasst werden müssen.
Der Wert Port steht am Anfang auf 22. Aus Sicherheitsgründen sollten wir diesen ändern. Dazu kannst du dir eine Zahl ab 10240 aussuchen
LoginGraceTime 2m
vor diesem Wert das „#“ löschen um die Funktion zu aktivieren
PermitRootLogin no
Root soll sich weder mit Password noch Pubkey anmelden können
StrictModes yes
vor diesem Wert das „#“ löschen um die Funktion zu aktivieren
MaxAuthTries 6
vor diesem Wert das „#“ löschen um die Funktion zu aktivieren
PubkeyAuthentication yes
Pubkey Schlüssel Authentifizierung
PasswordAuthentication no
Dieser Wert wird auf No gesetzt weil wir das verbieten wollen
Wenn diese Werte angepasst sind, kannst du die Konfigurationsdatei speichern [Strg]+[O] + [ENTER] und mit [Strg]+ [X] verlassen.
Nun startest du den SSH-Dienst neu:
sudo service ssh restart
Fail2Ban installieren
Nun installierst du ein Tool, das Bots und Hacker davon abhalten soll unseren SSH Zugang zu übernehmen. Dabei bemerkt das Tool, wie von bestimmten IP Adressen Anmelde-Versuche kommen. Wenn diese eine bestimmte Anzahl von malen nicht funktioniert hat, sperrt Fail2Ban diese IP für einen bestimmten Zeitraum. Installation:
sudo apt install fail2ban
Firewall UFW
Ohne eine Firewall geht es nicht. Die bekannteste Firewall ist IPTables. Aber diese ist in der Konfiguration ziemlich schwierig. Daher nutzen wir für unseren Server UFW. Also gleich mal installieren:
sudo apt install ufw
Nun müssen wir die Firewall „UFW“ noch konfigurieren. Die Firewall blockiert per Anfangseinstellung alle Ports, d.h. das erst einmal kein Dienst von Außen aufgerufen werden kann. Aber wir brauchen ein paar offene Ports, damit wir unserer Server nutzen können. Da fällt mir gleich der erste ein, der SSH Port, sonst kannst du dich nicht an der Konsole anmelden. Also stellst du diesen eine. Diesen Port solltest du von 22 auf einen Wunschport ändern im Kapitel „Konfiguration SSH“. Bei mir nehme ich jetzt Port 10240
sudo ufw allow 10240/tcp
Dann öffnen wir gleich mal noch die Ports HTTP und HTTPS diese werden in der Regel benötigt. Wenn du keinen Webserver betreiben möchtest, kannst du diesen Schritt überspringen.
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Jetzt hast du die ersten Ports geöffnet aber müssen noch die Firewall einschalten. Daher ist es wichtig das du den richtigen SSH Port angegeben haben, sonst sperrst du dich selbst aus dem System aus. Firewall einschalten:
sudo ufw enable
Diese Info musst du mit einem „y“ bestätigen. Es kommt noch die Meldung: „Firewall is active and enabled on system startup“ Im Anschluss ist nun auch die Firewall aktiv. Und sollte einige Angriffe abhalten. Wenn du einen neuen Dienst installierst, musst du dann in Zukunft die dazugehörigen Ports öffnen.
Ein Virtuell Private Server kann eine ideale Lösung für Dich sein, wenn Du diesen Service wirklich brauchst. Im Folgenden findest Du eine Aufstellung von Vor- und Nachteile des Betriebs eines VPS.
Da Serverressourcen wie RAM (Arbeitsspeicher) oder Rechenleistung garantiert sind, gibt es keine oder nur minimale Schwankungen bei den verfügbaren Hardware-Ressourcen.
Probleme und Traffic-Spitzen anderer Serverbenutzer haben keine Auswirkungen auf Deine Website.
Er ist schneller als ein Shared-Hosting
Du erhältst Root Rechte auf dem Server.
Du hast mehr Privatsphäre, da deine Daten auf einer separaten Schicht des physikalischen Servers liegen.
Es ist ein leicht zu anzupassender Service. Wenn Deine Website wächst, kannst Du Ihre Serverressourcen (RAM, CPU, Festplattenplatz, Traffic usw.) bei den meisten Anbietern einfach upgraden.
Nachteile / Voraussetzung
Was ich vorweg dazu sagen muss, dass es aus meiner Sicht eigentlich keine Nachteile gibt. Es gibt nur ein paar Voraussetzung die gegeben sein sollten, damit man einen VPS sicher betreiben kann.
Beim VPS-Hosting musst du dich um die Administration und Verwaltung selber kümmern. Daher solltest Du einen gewissen Wissensstand haben um diese Aufgabe bewältigen zu können.
Er steht in Abhängigkeit zum Hypervisor : Muss das Hauptsystem, beispielsweise aufgrund von eines Hardware-Tauschs, neugestartet werden, sind davon auch alle darauf befindlichen virtuellen Maschinen betroffen. Die VM’s müssen im Anschluss auch neu gestartet werden. Dadurch wird die Ausfallzeit nochmals verlängert. Je nach Größe des physikalischen Servers, hat die Anzahl der virtuellen Maschinen auch direkten Einfluss auf die Neustartzeit des Hauptsystems. Das ganze würde sich nur ändern, wenn man sich einen eigenen dedizierten Server mietet.
Sicherheitsproblem, teilen sich mehrere virtuelle Maschinen einen physikalischen Server so haben auch alle eine verwundbare Stelle gemeinsam, der Hypervisor. Wenn dieser von Hackern infiziert oder gar übernommen wird sind alle virtuellen Maschinen auch betroffen.
Wenn du ein Shared-Hosting nutzt, hast Du den Vorteil, dass Du dich nicht um die Administration des Servers kümmern musst, denn das übernimmt der Provider für dich. Shared-Hosting hat meist eine begrenzte Anzahl von Ressourcen, die vom Anbieter festgelegt werden, dass kann zu Einschränkungen führen, wenn Du etwas bestimmtes hosten willst. Bei einem VPS-Hosting hast du die kompletten Root Rechte auf deinem vServer. Je nach Virtualisierungstechnologie werden dir sogar die Ressourcen fest zugesichert und du musst diese nicht mit Anderen teilen. Das wäre bei KVM Virtualisierung der Fall. Diese sind etwas teurer aber das fällt nicht so sehr ins Gewicht. Beim VPS-Hosting musst du dich um die Administration selber kümmern. Daher solltest Du einen gewissen Wissensstand haben, um diese Aufgabe bewältigen zu können.
Es lässt sich also nicht ganz klar sagen was von Beidem besser ist. Bei diesem Thema kommt es auf den Anwendungsfall an. Ein kleiner privater Blog braucht wahrscheinlich nur ein Shared-Hosting während sich bei einem kleinen WebShop schon ein VPS-Hosting lohnen kann.
Dafür habe ich dir eine Liste mit Providern erstellt. Dort kannst du je nach Bedarf einen VPS günstig mieten. Wenn du nicht weist, was du an Ressourcen brauchst kannst du dich gern über das Kontaktformular bei mir melden. Dann können wir gemeinsam im Austausch herausfinden, was das Richtige für dich ist.