Diese Artikelreihe basiert auf Ubuntu Server 14.04 und ist teilweise veraltet. Es existiert eine aktualisierte und verbesserte Version dieser Artikelreihe, basierend auf Ubuntu Server 18.04 unter Homeserver/NAS mit Ubuntu 18.04
Dieser Artikel ist Teil der Reihe Selbstgebauter Homeserver/NAS mit Ubuntu Server
Nachdem im letzten Artikel das Betriebssystem installiert wurde kann nun mit der Grundkonfiguration des Systems begonnen werden.
Unser System verfügt nicht über eine grafische Benutzeroberfläche. Das System wird nahezu komplett über die Kommandozeile administriert. Das fehlen der grafischen Oberfläche hat verschiedene Vorteile. Zuallererst spart es Unmengen an Systemressourcen ein, so dass unser System eben auch auf schwächerer Hardware läuft. Da der Server den Großteil der Zeit einfach vor sich hinarbeitet, ohne dass ein Benutzer eingeloggt wäre, oder direkt auf der Maschine arbeitet, wäre es Verschwendung für ein aufwendiges GUI Ressourcen bereitzustellen. Außerdem spart es Speicherplatz, verringert die Komplexität des Systems und erhöht damit dessen Zuverlässigkeit.
Es erleichtert auch das schreiben von Artikeln wie diesem. Während sich das aussehen von grafischen Benutzeroberflächen ständig ändert und damit Screenshots einer älteren Version uninteressant macht, hat sich die Arbeit mit der Kommandozeile nur langsam verändert. Zwar kommen neue Funktionen hinzu, alte verschwinden jedoch nur langsam.
Wer sich auf die Arbeit mit der Kommandozeile einlässt wird sicher schnell verstehen, warum diese für bestimmte Aufgaben nach wie vor äußerst beliebt ist.
1. SSH Login
Da unser Server ohne Bildschirm und Tastatur irgendwo im Korridor oder Keller stehen soll, müssen wir uns von einem entfernten Rechner darauf einloggen. Unter Linux erledigen wir das über das Terminal mit dem Befehl SSH. Windows bietet derzeit keine Unterstützung für SSH. Deshalb muss hier ein Drittprogramm wie Putty installiert werden.
Im letzten Artikel haben wir für unseren Server die IP Adresse 192.168.178.100 ermittelt.
SSH Login von einem Ubuntu Rechner
Die Nutzung von SSH ist unter Linux generell einfach und wird von allen mir bekannten Distributionen standardmäßig unterstützt. Der Login auf dem Homeserver von einem Rechner mit Ubuntu aus geschieht über folgenden Befehl im Terminal:
ssh homeadmin@192.168.178.100
Bei der ersten Verbindung wird der Fingerprint des SSH Keys ausgegeben. Hiermit kann überprüft werden dass man sich auch wirklich auf dem richtigen Rechner befindet und nicht etwa Opfer eines Man-in-the-Middle Angriffs wurde. Da dies in einem Heimnetzwerk unwahrscheinlich ist gehe ich auf diesen Punkt in diesem Artikel nicht weiter ein.
$ ssh homeadmin@192.168.178.100 The authenticity of host '192.168.178.100 (192.168.178.100)' can't be established. ECDSA key fingerprint is d6:c9:67:8c:d2:0c:6e:81:5f:e5:7e:86:cb:a9:75:de. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.178.100' (ECDSA) to the list of known hosts. homeadmin@192.168.178.100's password:
Nach Eingabe des Passworts (man sieht hier keine Sternchen oder ähnliches bei der Eingabe) ist man auf dem Homeserver eingeloggt.
SSH Login von einem Windows Rechner
Unter Windows wird für die Nutzung von SSH häufig das Programm Putty genutzt, welche von der Projektseite heruntergeladen werden kann [PuTTY Download Page]
Im Startfenster von Putty muss nur die oben ermittelte IP Adresse eingegeben und auf Open geklickt werden.
Auch hier wird bei der ersten Verbindung Fingerprint des SSH Keys ausgegeben, welcher mit Ja akzeptiert werden muss.
Nach der Eingabe von Benutzername und Passwort ist man auf dem Homeserver eingeloggt und kann die weitere Konfiguration vornehmen.
2. Das System aktualisieren
Als erstes aktualisieren wir unser System. Nach dem Login empfängt uns das System schon mit der Meldung dass verschiedene Aktualisierungen verfügbar sind.
Die Aktualisierung von Ubuntu geschieht mit dem Programm apt-get. Mit folgendem Befehl wird das System aktualisiert:
sudo apt-get update && sudo apt-get upgrade
apt-get update liest die Paketquellen neu ein, um zu überprüfen ob neue Pakete verfügbar sind.
apt-get upgrade spielt die Updates ein
Aus Sicherheitsgründen und um von Fehlerbereinigungen zu profitieren sollte dieser Befehl regelmäßig ausgeführt werden.
Das System kann auch so konfiguriert werden dass es (Sicherheits-) Updates von alleine einspielt und, (sofern nötig) das System anschließend neu startet. Dies geht jedoch über die hier beschriebene „Grundkonfiguration“ hinaus und ist im Artikel „Automatische Updates auf Ubuntu Server nutzen“ beschrieben.
3. Statische IP Adresse vergeben
Es ist sinnvoll dem Server eine statische, d.h. gleichbleibende IP Adresse zu vergeben. Zwingend notwendig ist das nicht, es besteht ansonsten jedoch die Gefahr dass der Router dem Server bei einem Neustart eine andere Ip Adresse gibt (abhängig von den Routereinstellungen). Dann wäre der Server nicht mehr erreichbar und man müsste an allen verbundenen Systemen im Netzwerk die neue IP Adresse konfigurieren.
Um eine statische IP Adresse vergeben zu können, muss man zuerst wissen welche Adressen frei sind. Dies ist ebenfalls von den Routereinstellungen abhängig und kann deshalb nicht pauschal beantwortet werden. Ich beschreibe hier die Situation mit einer Fritzbox. Die Einstellungen sollten bei anderen Routern jedoch ähnlich sein.
In der Standardeinstellung hat die Fritzbox die IP Adresse 192.168.178.1 und als Netzmaske ist 255.255.255.0 vergeben. Der DHCP Server der Fritzbox, welcher den Computern im Heimnetzwerk die IP Adressen vergibt, nutzt den Adressbereich von 192.168.178.20 bis 192.168.178.200. Die IP Adressen deren letzte Zahl zwischen 20 und 200 liegt sind somit von der Fritzbox reserviert. Somit können alle Adressen, deren letzte Zahl kleiner als 20 (jedoch größer als 1) oder größer als 200 (jedoch kleiner als 255) istselbst vergeben werden. Konkret können also die Adressen 192.168.178.2 bis 192.168.178.19 sowie 192.168.178.201 bis 192.168.178.254 vergeben werden.
In der Konfigurationsoberfläche der Fritzbox kann dieser Bereich, oder auch das komplette Subnetz geändert werden. Unter Heimnetz -> Netzwerk -> Netzwerkeinstellungen -> IPv4 Adressen findet man die entsprechenden Konfigurationsmöglichkeit.
Bei einer Einstellung wie im Bild hat die Fritzbox selbst die IP Adresse 192.168.178.1. Der Bereich mit der Endung 2-100 ist reserviert für den DHCP Server und somit für andere Geräte im Netzwerk, wie Laptop oder Smartphone. Die Endungen 101-254 können selbst genutzt werden. Dem Server kann also z.B. folgende IPv4 Adresse vergeben werden:
192.168.178.200
Die IP Adressen werden über die Datei /etc/network/interfaces konfiguriert, welche zuerst geöffnet werden muss.
sudo nano /etc/network/interfaces
Standardmäßig sieht die Datei in etwa so aus:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto p2p1 iface p2p1 inet dhcp
Die Datei ändern wir folgendermaßen ab:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto p2p1 iface p2p1 inet static address 192.168.178.200 netmask 255.255.255.0 gateway 192.168.178.1 dns-nameservers 192.168.178.1
auto p2p1 (p2p1 ist in die Bezeichnung für das Netzwerkinterface. Die ist häufig auch eth0 oder eth1) gibt an dass das Netzwerkinterface beim Start geladen wird.
iface p2p1 inet static sagt dass das Interface eine statische/feste IP Adresse hat.
address 192.168.178.200 ist die IPv4 Adresse des Netzwerkinterfaces bzw. damit auch unseres Homeservers.
netmask 255.255.255.0 gibt die Größe des Subnetzes an und kann in einem Heimnetz eigentlich immer so verwendet werden.
gateway 192.168.178.1 ist die Adresse des Gateways, in unserem Fall die IP Adresse der Fritzbox bzw. des Routers.
dns-nameservers 192.168.178.1 ist der Nameserver der die aufläsung von Domainnamen zu IP Adressen übernimmt. In unserem Fall auch die Fritzbox.
Nach einem Neustart mit
sudo reboot
kann man sich nun über die neue, und immer gleichbleibende, Adresse einloggen. Unter Linux wieder mit
ssh homeadmin@192.168.178.200
bei der Nutzung von Putty muss nun ebenfalls die neue Adresse eingegeben werden.
Es folgt wieder die bekannte Warnung, die beim ersten Login bestätigt werden muss. Anschließend kann man sich immer auf diese Weise zu Wartungs- und Konfigurationsarbeiten auf diese Weise auf dem Homeserver einloggen.
4. System von außen erreichbar machen
Damit wir später auch von außerhalb unseres Heimnetzes auf unsere Dateien zugreifen und Medien auf unsere Mobilgeräte streamen können, müssen wir den Homeserver von außen erreichbar machen. Dies erreicht man mit Hilfe des DynDNS Systems, welches im Router konfiguriert werden muss. Da es sich hier um eine Routerkonfiguration handelt möchte ich auch nur kurz darauf eingehen.
Besitzer einer Fritzbox können dafür den Dienst MyFRITZ nutzen. Dies ist die einfachste und schnellste und eine kostenlose Möglichkeit sein Heimnetz von ausserhalb erreichbar zu machen.
Wer MyFRITZ nicht nutzen möchte oder kann findet eine weitere kostenlose Lösung beim DynDNS Anbieter No-IP.com. Dieser Anbieter ist in der Fritzbox vorkonfiguriert, lässt sich aber auch mit anderen Routern nutzen, die DynDNS unterstützen.
Die schönste Zugriffsmöglichkeit ist jedoch der Zugriff über eine eigene Domain, also etwas wie meinheimnetz.de. Die Nutzung einer eigenen Domain hat einen weiteren Vorteil, es können nämlich von einer offiziellen CA unterschriebene SSL Zertifikate zum Zugriff auf das Heimnetz z.B. via Owncloud oder zum Medienstreaming via Subsonic genutzt werden. Dadurch spart man sich unschöne Fehlermeldungen, die bei selbssignierten Zertifikaten entstehen.
Bevor man sich eine eigene Domain bestellt, muss man sich einen Anbieter suchen der Domains verkauft und DynDNS unterstützt. Einer davon ist Strato. Auch Strato wird von der Fritzbox von Haus aus unterstützt, die Nutzung ist aber natürlich auch mit anderen Routern möglich. Zur Konfiguration der eigenen Domain mit Dyndns gibt es einen ausführlichen Artikel in den FAQ von Strato: So einfach richten Sie DynDNS für Ihre Domains ein.
——————————
Damit ist die Grundkonfiguration des Systems abgeschlossen. In den folgenden Artikeln werden dann die eigentlich nützlichen Dienste installiert die die Funktionen bereitstellen die wir von unserem Homeserver erwarten.
Nächster Teil der Artikelreihe:
Teil 4 – Selbstgebauter Homeserver/NAS: Dateifreigaben für das Heimnetz mit SAMBA
1 Comment
Vielleicht sollte hier noch erwähnt werden, dass der Fingerprint beim SSH Login nicht nur einfach bestätigt werden muss, sondern vor der Bestätigung auch geprüft werden sollte.
Ansonsten echt eine schöne Artikelserie!
Grüße
Christoph