Setzt Euren Ubuntu-Heimserver auf¶

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, 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
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
enpXsYgekennzeichnet sein, also z.B.enp0s1oderenp1s3 - Die WiFi-Schnittstelle sollte mit
wlpXsYgekennzeichnet sein, also z.B.wlp0s1oderwlp2s3
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.enp0s1heißen. Falls Ihr eine WiFi-Schnittstelle verwendet, beispielsweisewlp0s1, müsst Ihr die Zeileethernets:durchwifisund die Zeileenp0s3durchwlp0s1ersetzen. - Der Eintrag
dhcp4: nobesagt, dass dem Server eine statische IP-Adresse zugewiesen ist. In unserem Beispiel ist das192.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. auch192.168.0.1sein. - 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 |
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
Unterstützung¶
Weitere Einzelheiten findet Ihr in Ubuntus Dokumentation, Tutorials, Wiki oder Gemeinschaft.