Zum Inhalt

Setzt Euren Ubuntu-Heimserver auf

Ubuntu-Server selbst hosten Ubuntu-Server selbst hosten

Ihr könnt einen Ubuntu-Server auf ungenutzter Hardware installieren, um verschiedene Dienste zu hosten: Cloud-Speicher, Fotos, Kontakte, Kalender, Aufgabenverwaltung oder Multimedia-Streaming. Hier lernt Ihr, Euren Server mit grundlegenden und fortgeschrittenen Sicherheitsmaßnahmen zu schützen und regelmäßige Sicherungen einzuplanen.

Sollte man seinen Server zu Hause hosten oder einen VPS mieten?

Beide Optionen haben Vor- und Nachteile. Es ist eine Abwägung zwischen Privatsphäre, Sicherheit und Benutzerfreundlichkeit. Obwohl auf dieser Webseite erklärt wird, wie Ihr Euren Server zu Hause hostet, könnt Ihr natürlich auch einen Virtual Private Server (VPS) bei Anbietern wie Hetzner, Digital Ocean, OVH, Contabo, Scaleway usw. anmieten.

Heim-Server VPS
Höherer Datenschutz
Geringere Einstiegskosten
Geringere laufende Kosten
Einfacher aufzusetzen
Einfacher zu warten
Geringere Sicherheitsrisiken
Geringeres Datenverlust-Risiko
Geringeres Ausfall-Risiko
Weniger Latenzprobleme
Weniger Bandbreitenbeschränkungen

Was sind die Mindestanforderungen an die Hardware?

Das hängt von der geplanten Nutzung ab. Wie viele NutzerInnen oder Besuche erwartet Ihr pro Tag? Plant Ihr, Videos zu streamen oder große Datenmengen zu speichern? Die folgenden Mindestspezifikationen sollten für eine Handvoll Dienste/BenutzerInnen ausreichend sein:

  • Ein oder mehrere 2-GHz-Prozessoren
  • 2 bis 4 GB Arbeitsspeicher
  • 10 bis 25 GB Festplattenspeicher (oder mehr für große Dateisammlungen)
  • Schnelle Internetverbindung

Hier eine Liste von Mini-PCs, die aufgrund ihres kleinen Formfaktors und ihres niedrigen Preises gut als Server geeignet sind.

Wie bearbeitet man Dateien innerhalb des Terminals?

Die Interaktion mit dem Server erfordert eine recht intensive Nutzung des Terminals. Konfigurationsdateien und Einstellungen müssen oft mit einem Texteditor angepasst werden. Häufig wird der Editor vi verwendet und wie folgt installiert:

sudo apt install vim

vi verfügt über drei Modi:

Normaler Modus: vi startet im normalen Modus, in dem Dokumente betrachtet werden können

Einfügemodus: durch Drücken der Taste i schaltet vi in den Einfügemodus, der das Bearbeiten und Ändern von Dokumenten ermöglicht

Befehlsmodus: durch Drücken der Doppelpunkttaste : wechselt vi in den Befehlsmodus, der es z.B. erlaubt, Änderungen zu speichern oder Text im Dokument zu finden

Die folgenden Befehle sollten ausreichen, um alle Anweisungen auf dieser Website zu befolgen:

Befehl Beschreibung
vi file.txt Öffnet das Dokument "file.txt" mit dem vi-Texteditor.
i Wechselt in den "Einfügemodus", um die Datei zu ändern.
ESC Verlasst den "Einfügemodus", sobald die Änderungen abgeschlossen sind.
:w Speichert alle Änderungen, die Ihr an der Datei vorgenommen habt, und lasst diese geöffnet.
:wq oder :x Speichert alle Änderungen an der Datei, und schließt vi.
:q! Beendet vi, ohne die Änderungen an der Datei zu speichern.
/findewort Sucht nach dem Wort "findewort" (ersetzt die Zeichenfolge durch das tatsächliche Wort, das Ihr sucht).
n Nachdem Ihr die Suche nach "findewort" gestartet habt, sucht das nächste vorkommende Wort "findewort" in der Datei.

Es gibt zahlreiche Tutorials, um noch tiefer in die Welt von vi einzutauchen:

Ubuntu-Server installieren

Führt ein paar Vorabprüfungen durch und folgt den nachstehenden Anweisungen, um Euren Heimserver einzurichten.

Vorabprüfungen

Vorabprüfungen Beschreibung
Ist mein Gerät Linux-kompatibel? Testet Ubuntu mit einem Live-USB-Laufwerk oder mit VirtualBox
• Überprüft die Kompatibilitätsdatenbank
Fragt im Internet nach
• Kauft einen Linux-kompatiblen Rechner, z.B. über Linux Preloaded oder Ministry of Freedom
Erfüllt mein Gerät die Mindestanforderungen? • 2 GHz Dual-Core-Prozessor
• 4 GB Arbeitsspeicher (RAM)
• 25 GB freier Festplattenspeicher
Ist mein Gerät eingestöpselt? Falls Ihr Ubuntu Server 24.04 auf einem mobilen Gerät wie z.B. einem Laptop installiert, sollte dieses an die Stromversorgung angeschlossen sein.
Ist das Installationsmedium zugänglich? Prüft, ob Euer Rechner über ein DVD-Laufwerk oder einen freien USB-Anschluss verfügt.
Hat das Gerät Zugriff aufs Internet? Prüft, ob die Internetverbindung funktioniert.
Sind Eure Daten gesichert? Sichert Eure Daten, da ein (geringes, aber reales) Risiko des Datenverlustes während des Installationsprozesses besteht!
Ist die aktuelle Ubuntu-Server-Version heruntergeladen? Ladet die aktuellste Ubuntu Server Long-Term-Support (LTS)-Version herunter. Diese wird 5 Jahre lang unterstützt, einschließlich Sicherheits- und Wartungsupdates. Zum Zeitpunkt der Abfassung dieses Textes war die letzte Ubuntu-Server-LTS-Version 24.04. Nähere Informationen findet Ihr im aktuellen Veröffentlichungszyklus.
Ist ein bootfähiges Medium vorbereitet? Ihr könnt mit der heruntergeladenen .iso-Datei ein bootfähiges USB-Laufwerk erstellen. Alternativ könnt Ihr auch einen Windows, macOS oder Ubuntu Linux Rechner nutzen, um die heruntergeladene .iso-Datei auf eine DVD zu brennen.

Schritt-für-Schritt-Anleitung

Anweisungen Beschreibung
Booten Legt die DVD oder das bootfähige USB-Laufwerk ein und startet Euren Rechner neu. Die meisten Rechner booten automatisch von der DVD oder dem USB-Laufwerk. Sollte dies nicht der Fall sein, drückt beim Hochfahren Eures Computers wiederholt auf die Tasten F12, ESC, F2 oder F10. Dadurch solltet Ihr Zugang zum Boot-Menü Eures Rechners erhalten, in dem Ihr dann die DVD bzw. das USB-Laufwerk auswählen könnt.
GRUB Wählt den Menü-Eintrag Try or Install Ubuntu Server.
Willkommen Wählt eine Sprache.
Installer-Aktualisierung verfügbar Dieser Bildschirm erscheint, wenn Euer Rechner bereits mit dem Internet verbunden ist. Wählt den Menüeintrag Ohne Aktualisierung fortfahren.
Tastatur-Konfiguration Wählt ein Tastaturlayout.
Art der Installation Wählt die Standardinstallationsoption für Ubuntu Server.
Netzwerkverbindungen Stellt eine funktionierende Internetverbindung über Ethernet oder WiFi her. Dies ist für den Rest des Prozesses wichtig. Wählt Info, um mehr über ein bestimmtes Netzwerk zu erfahren.
Proxy Diese Einstellungen sind optional. Gebet die erforderlichen Informationen ein, wenn Ihr Netzwerk-Proxys einrichten müsst, andernfalls überspringt diesen Schritt einfach.
Ubuntu-Archiv Wählt die Ubuntu-Paketquelle. Die Standardoptionen sollten gut funktionieren.
Speicherplatzkonfiguration Legt fest, wie Eure Festplatte partitioniert werden soll. In diesem Tutorial werden wir die gesamte Festplatte verwenden
• Wählt Diese Festplatte als LVM-Gruppe konfigurieren
• Wählt Die LVM-Gruppe mit LUKS verschlüsseln, um Euren Server zu verschlüsseln
• Gebt ein starkes, individuelles Kennwort an und bestätigt Eure Eingabe

Vorsicht: Dieser Schritt löscht alle Daten und formatiert die Festplatte! Prüft sorgfältig alle Einstellungen! Vergewissert Euch, dass Ihr eine Sicherungskopie Eurer Daten erstellt habt!
Profileinrichtung Richtet das Benutzer- und Serverprofil ein. Im Rahmen dieses Tutorials wählen wir die folgende Konfiguration (passt dies entsprechend an):
• Ihr Name (dies ist der Name des System-Root-Benutzers): gofossroot
• Name Ihres Servers (dies ist der Name Eures Servers): gofossserver
• Bitte Benutzername auswählen (selber Name wie der des System-Root-Benutzers): gofossroot
• Passwort: gebt ein starkes, individuelles Passwort ein und klickt auf Erledigt
SSH-Einrichtung Diese Einstellungen sind optional. Lasst diesen Abschnitt einfach leer und fahrt fort.
Featured Server Snaps Diese Einstellungen sind optional. Lasst diesen Abschnitt einfach leer und fahrt fort.
Letzter Schritt Wartet ab, bis die Installation abgeschlossen ist. Sobald Ubuntu Server installiert ist, entfernt das Installationsmedium und drückt ENTER, wenn Ihr dazu aufgefordert werdet.


LAMP Stack

LAMP Stack

LAMP, ein Akronym für Linux, Apache, MySQL und PHP/Perl/Python, beschreibt eine gängige Webserver-Konfiguration. Startet Euren Ubuntu-Server neu, meldet Euch an, entschlüsselt die Partition und gebt die Root-Zugangsdaten ein. Folgt dann den nachstehenden Anweisungen, um den LAMP-Stack zu installieren.

Schritt-für-Schritt-Anleitung

Aktualisiert die Systempakete und installiert den LAMP-Stack::

sudo apt update
sudo apt upgrade
sudo apt install lamp-server^

Achtet auf das nachgestellte Zirkumflex-Zeichen im Befehl sudo apt install lamp-server^. Es gibt an, dass es sich bei lamp-server um ein Meta-Paket handelt, das Apache, MySQL und PHP zusammen mit anderen Paketen und Abhängigkeiten installiert.

Mit den folgenden Befehlen könnt Ihr Euch vergewissern, dass Apache erfolgreich installiert wurde (die neueste Versionsnummer sollte angezeigt werden), dass Apache nach jedem Neustart automatisch ausgeführt wird und dass der aktuelle Status von Apache Active ist:

apachectl -V
sudo systemctl enable apache2
sudo systemctl start apache2
sudo systemctl status apache2

Wiederholt daselbe für MySQL:

mysql -V
sudo systemctl enable mysql
sudo systemctl start mysql
sudo systemctl status mysql

Vergewissert Euch ebenfalls, dass PHP erfolgreich installiert wurde (die neueste Versionsnummer sollte angezeigt werden):

php -v

Und zum Schluss noch ein paar Aufräumarbeiten:

sudo apt autoremove && sudo apt clean


Ubuntu-Server statische IP

Statische IP-Adresse

Das DHCP-Protokoll weist Geräten in Eurem Heimnetzwerk, einschließlich Eures Servers, dynamische IP-Adressen zu. Es empfiehlt sich, dem Server eine statische IP-Adresse zu geben, um ständige Neukonfigurationen zu vermeiden. Die Wahl der IP hängt von Eurem Netzwerk ab. Gängige Wertebereiche sind 192.168.0.xx oder 192.168.1.xx. Passt die Server-Einstellungen entsprechend den nachfolgenden Anweisungen an. Achtet dabei darauf, die entsprechenden Befehle mit der von Euch gewählten IP-Adresse anzupassen.

Schritt-für-Schritt-Anleitung

Netzwerkschnittstelle

Zunächst solltet Ihr den Namen der Netzwerkchnittstelle des Servers herausfinden:

ip link show

Es sollte eine Liste aller Netzwerkschnittstellen angezeigt werden:

  • Der erste Eintrag ist höchstwahrscheinlich lo, also die sogenannte Loopback-Schnittstelle
  • Die Ethernet-Schnittstelle sollte mit enpXsY gekennzeichnet sein, also z.B. enp0s1 oder enp1s3
  • Die WiFi-Schnittstelle sollte mit wlpXsY gekennzeichnet sein, also z.B. wlp0s1 oder wlp2s3

Für die Zwecke dieses Tutorials nehmen wir an, dass die Netzwerkschnittstelle des Servers mit enp0s3 bezeichnet ist (passt dies gemäß Eurer eigenen Konfiguration entsprechend an).

Standard-Gateway

Ermittelt als nächstes den Namen des Standard-Gateways:

ip route show

Das Terminal sollte eine Zeile mit der IP-Adresse des Standard-Gateways anzeigen. Diese sollte in etwa so aussehen: default via 192.168.1.1 dev enp0s3 proto dhcp. Für die Zwecke dieses Tutorials nehmen wir an, dass die Adresse des Standard-Gateways 192.168.1.1 lautet (passt dies gemäß Eurer eigenen Konfiguration entsprechend an).

Netzwerkkonfiguration

Ändert die Netzwerkkonfigurationsdatei:

sudo mv /etc/netplan/50-cloud-init.yaml /etc/netplan/01-netcfg.yaml
sudo vi /etc/netplan/01-netcfg.yaml

Ersetzt den Inhalt der Datei und achtet dabei auf die korrekte Einrückung der einzelnen Zeilen. Stellt zudem unbedingt sicher, dass Ihr alle Einstellungen an Eure eigene Konfiguration anpasst:

  • Gebt die richtige Netzwerkschnittstelle an. In unserem Beispiel ist das enp0s3, doch Eure Ethernet-Schnittstelle könnte z.B. enp0s1 heißen. Falls Ihr eine WiFi-Schnittstelle verwendet, beispielsweise wlp0s1, müsst Ihr die Zeile ethernets: durch wifis und die Zeile enp0s3 durch wlp0s1 ersetzen.
  • Der Eintrag dhcp4: no besagt, dass dem Server eine statische IP-Adresse zugewiesen ist. In unserem Beispiel ist das 192.168.1.100, Ihr könnt auch eine andere statische IP-Adresse wählen.
  • Gebt das Standardgateway an. In unserem Beispiel ist das 192.168.1.1, Euer Standard-Gateway könnte aber z.B. auch 192.168.0.1 sein.
  • Wählt einen DNS-Anbieter aus. In unserem Beispiel ist das DNS4EU, Ihr könnt aber auch einen anderen DNS-Anbieter wählen.
network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: false
      addresses: [192.168.1.100/24]
      routes:
      - to: default
        via: 192.168.1.1
      nameservers:
         addresses: [86.54.11.1, 86.54.11.201]

Speichert und schließt die Datei, indem Ihr erst auf ESC drückt und dann :wq! eintippt.

Beschränkt die Zugangsrechte der Netzwerkkonfigurationsdatei:

sudo chmod 600 /etc/netplan/01-netcfg.yaml

Deaktiviert cloud-init, damit Eure Netwerkeinstellungen nach dem Neustart nicht überschrieben werden:

sudo touch /etc/cloud/cloud-init.disabled

Übernehmt schließlich alle Änderungen und startet den Server neu:

sudo netplan apply
sudo reboot

Überprüft die IP-Addresse:

ip add
Gibt es datenschutzfreundliche DNS-Anbieter?

DNS-Anbieter Land DNS #1 DNS #2 Datenschutz
DNS4EU Europe 86.54.11.1 86.54.11.201 Privacy Policy
Digitalcourage Deutschland 5.9.164.112 -- Datenschutz
UncensoredDNS Dänemark 89.233.43.71 91.239.100.100 Datenschutz
Dismail Deutschland 116.203.32.217 159.69.114.157 Datenschutz
DNS Watch Deutschland 84.200.69.80 84.200.70.40 --
FDN Frankreich 80.67.169.12 80.67.169.40 --
OpenNIC Verschiedentlich Verschiedentlich Verschiedentlich Verschiedentlich


Ubuntu-Server Fernanmeldung

SSH-Fernverbindung

Stellt von einem anderen Rechner, dem sogenannten Client, eine Fernverbindung zu Eurem Server her. So kann der Server kopflos betrieben werden, also ohne Bildschirm, Tastatur oder Maus. Die Verbindung erfolgt über Secure Shell (SSH) und bietet eine robuste Authentifizierung sowie Verschlüsselung.

Schritt-für-Schritt-Anleitung

Server-Einrichtung

Beginnen wir mit dem Server. Führt folgende Befehle aus, um OpenSSH zu installieren:

sudo apt install openssh-server

Legt einen Administrator-Benutzer an, der über die Berechtigung verfügt, eine Fernverbindung zum Server herzustellen. Für die Zwecke dieses Tutorials nennen wir diesen Administrator gofossadmin. Ihr könnt selbstverständlich jeglichen anderen Namen verwenden, passt in diesem Fall allerdings die Befehle entsprechend an. Gebt auf Aufforderung ein sicheres, individuelles Passwort ein:

sudo adduser gofossadmin
sudo usermod -a -G sudo gofossadmin

Wechselt zu dem neuen Administrator-Konto und testet seine sudo-Befugnisse, indem Ihr das System aktualisiert:

su - gofossadmin
sudo apt update

Client-Einrichtung

Lasst uns nun den Client einrichten. In dieser Anleitung gehen wir davon aus, dass auf dem Client-Rechner eine GNU/Linux-Distribution läuft, z. B. Ubuntu. Wenn Euer Client unter Windows oder macOS läuft, verwendet die verfügbaren Systemwerkzeuge oder installiert einen SSH-Client wie PuTTY.

Öffnet mit der Tastenkombination STRG + ALT + T ein Terminal auf dem Linux-Client, oder klickt auf Aktivitäten in der oberen Menüleiste und sucht nach Terminal. Legt nun denselben Administrator-Benutzer gofossadmin wie auf dem Server an (passt den Namen entsprechend an). Gebt ein sicheres, individuelles Passwort ein, wenn Ihr dazu aufgefordert werdet:

sudo adduser gofossadmin

Meldet Euch mit dem neuen Administrator-Konto an, erstellt ein verstecktes Verzeichnis, in dem die SSL-Schlüssel gespeichert werden, und verseht das Verzeichnis mit den richtigen Berechtigungen:

su - gofossadmin
mkdir /home/gofossadmin/.ssh
chmod 755 /home/gofossadmin/.ssh

Erzeugt ein öffentliches/privates Schlüsselpaar, das die Fernanmeldung beim Server sichert. Führt dazu die folgenden Befehle aus, folgt den Anweisungen auf dem Bildschirm und gebt bei Aufforderung ein sicheres, individuelles SSH-Passwort ein:

cd /home/gofossadmin/.ssh
ssh-keygen -t RSA -b 4096

Die Ausgabe sollte in etwa folgendermaßen aussehen:

Generating public/private RSA key pair.
Enter file in which to save the key (/home/gofossadmin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): *******
Enter same passphrase again: ********
Your identification has been saved in /home/gofossadmin/.ssh/id_rsa.
Your public key has been saved in /home/gofossadmin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:erdBxn9i/ORLIJ4596DvfUIIPOyfFnSMQ4SieLIbSuxI gofossadmin@gofossclient
The key's randomart image is:
+---[RSA 4096]----+
|   .+.+=     o   |
|       ..oo.+ o  |
| .S+..     %..   |
|         o+o. o  |
|        So*o o = |
|   ..oo.+     A +|
| ..+ooo       .oo|
|  .o...+  .E..   |
|         .. o==.%|
+----[SHA256]-----+

Übertragt anschließend den öffentlichen Schlüssel vom Client zum Server. Stellt dabei sicher, dass Ihr im untenstehenden Befehl den Administrator-Namen und die IP-Adresse entsprechend Eurer eigenen Einrichtung anpasst. Gebt auf Anforderung das gofossadmin Passwort ein (nicht das SSH-Passwort!):

ssh-copy-id gofossadmin@192.168.1.100

Das war's! Von nun an könnt Ihr Euch vom Client-Rechner aus per Fernzugriff beim Server anmelden. Um Euch mit dem Server zu verbinden reicht es, ein Terminal zu öffnen, zum Administrator-Konto zu wechseln und Euer SSH-Passwort anzugeben. Vergesst nicht, den Administrator-Namen und die IP-Adresse nach Bedarf anzupassen:

su - gofossadmin
ssh gofossadmin@192.168.1.100


Ubuntu-Server Unterstützung

Unterstützung

Weitere Einzelheiten findet Ihr in Ubuntus Dokumentation, Tutorials, Wiki oder Gemeinschaft.