Grundeinrichtung
Der Server ist beschafft und die Linux-Grundlagen wurden verinnerlicht. Nun muss der Server mit einem Betriebssystem versehen und eingerichtet werden. Dieses Kapitel beginnt mit der Installation des Betriebsystems und geht dann Stück für Stück auf die grundlegende Einrichtung des Servers ein.
Installation
Nachdem der entsprechende Server bestellt ist und die Zugangsdaten eingetroffen sind, kann mit der Installation des passenden Betriebssystems begonnen werden. In diesem Buch wird die Linux-Distribution Ubuntu-Server 22.04 LTS (Long Term Support) behandelt und genutzt.
Bei den meisten Betreibern von dedizierten Servern, wird eine große Auswahl an Betriebssystemen als Image (Abbild eines Datenträgers) vorgehalten. Diese können zur Installation des Servers genutzt werden. Im Großteil der Fälle handelt es sich um eine Reihe von Linux-Distributionen. Daneben werden manchmal die Systeme FreeBSD und NetBSD angeboten.
Auf vielen Servern ist es auch möglich, Windows Server als Betriebssystem auszuwählen. Dies ist allerdings mehrheitlich mit zusätzlichen Lizenzgebühren verbunden und wird im Rahmen dieses Buches nicht behandelt.
Wenn das entsprechende Abbild des Betriebssystems über die Verwaltungsoberfläche des gewählten Anbieters aufspielt wurde, hat der Nutzer wenige Berührungspunkte mit der eigentlichen Installation. Überwiegend können nur einige grundlegende Einstellungen wie der Rechnername, verwendete Dateisysteme und die Aufteilung des Dateisystems bestimmt werden. Der Rest wird vom vorkonfektionierten Installer erledigt. Nach einigen Minuten erhält der Nutzer die Zugangsdaten in Form eines Nutzernamens und eines Passwortes und kann sich per SSH mit dem Server verbinden.
Anders sieht es aus, wenn der Nutzer das System (aus welchen Gründen auch immer) selbst auf dem Server installiert, wie es z. B. bei der Colocation der Fall ist. Auch beim Betrieb von virtuellen Maschinen auf einer Host-Maschine muss die Installation der einzelnen virtuellen Maschinen selbst durchgeführt werden.
Für die Installation wird ein Image des Betriebssystems benötigt. Die aktuelle Ubuntu-Version kann auf der Ubuntu-Webseite bezogen werden. Die Version 22.04 ist eine LTS-Version; das bedeutet, dass sie über einen längeren Zeitraum - bei Ubuntu Server fünf Jahre - mit regulären und Sicherheitsaktualisierungen versorgt wird.
Erste Schritte
Wenn der Server frisch installiert wurde und der Nutzer sich das erste Mal per SSH auf seinem Server einloggt, wird er vom Kommando-Prompt begrüßt:
user@server:~#
Der Prompt ist nach einem bestimmten Schema aufgebaut. Zuerst folgt der Nutzername gefolgt von einem @ als Trennzeichen, gefolgt vom Servernamen. Anschließend folgt das Verzeichnis, in welchem sich der Nutzer aktuell befindet.
Je nach Anbieter kann es sein, dass der Nutzer direkt als root-Nutzer angemeldet ist. Die andere unter Ubuntu gebräuchliche Variante ist, dass der Nutzer angemeldet ist, welcher bei der Installation angelegt wurde. Dieser Nutzer erhält administrative Rechte nur über Befehle wie sudo oder su.
root-Nutzer aktivieren
Unter Ubuntu existiert in einer Standardinstallation kein aktivierter root-Nutzer. Das bedeutet allerdings nicht, dass der Nutzer nicht vorhanden ist. Stattdessen wurde für den root-Nutzer kein Passwort vergeben, was dazu führt, dass er nicht direkt genutzt werden kann. Soll er direkt genutzt werden, so muss ein Passwort für diesen Nutzer vergeben werden:
sudo passwd root
Anschließend verfügt der Betreiber des Servers über einen root-Nutzer und kann sich mit diesem einloggen. Allerdings muss dem root-Nutzer nicht unbedingt ein Passwort zugewiesen werden. Stattdessen ist es auch möglich, dem Nutzer ein kryptografisches Schlüsselpaar zuzuweisen, mit welchem sich per SSH eingeloggt werden kann. Damit hat der root-Nutzer kein Passwort und kann trotzdem genutzt werden. Um dies zu bewerkstelligen, muss der öffentliche Schlüssel des SSH-Schlüsselpaars in der entsprechenden Datei des root-Nutzers angelegt werden:
sudo su mkdir /root/.ssh/ nano /root/.ssh/authorized_keys
In der Datei authorized_keys wird der öffentliche Schlüssel hinterlegt und die Datei gespeichert. Anschließend wird die Berechtigung für Datei korrekt gesetzt:
chmod 600 /root/.ssh/authorized_keys
Damit kann sich nun per SSH direkt in den root-Nutzer eingeloggt werden. Anschließend kann der Nutzer, welcher bei der Installation angelegt wurde, gelöscht werden. Dies geschieht mit dem Kommando deluser:
deluser --remove-home username
Damit wird der Nutzer aus der Datei /etc/shadow entfernt und zusätzlich sein Homeverzeichnis (/home/username/) gelöscht. Jetzt ist es möglich, sich als root-Nutzer auf dem Server einzuloggen. Bei einigen Serveranbietern wie Hetzner sind die Betriebsystem-Images so gestaltet, dass bereits zu Beginn ein vollwertiger root-Nutzer zur Verfügung steht.
Auf einem Serversystem spricht nichts dagegen, dass der administrative Nutzer über entsprechende Rechte verfügt. Hier gilt die Prämisse, dass der Besitzer bzw. Betreuer eines Servers wissen sollte, wie er mit diesen Rechten sicher umgeht.
Pakete aktualisieren
Nach der Installation des Betriebsystems auf dem Server ist die Software nicht unbedingt auf neustem Stand. Dies hängt damit zusammen, dass für die Installationsmedien ein bestimmter Stand der Linux-Distribution genutzt wird. Dieser kann zum Zeitpunkt der Installation vom aktuellen Stand abweichen, schließlich werden die Pakete regelmäßig aktualisiert. Um den frisch installierten Server auf den neusten Stand zu aktualisieren, müssen folgende Befehle eingegeben werden:
apt autoremove -y apt autoclean -y apt update -y apt full-upgrade -y apt autoremove -y apt autoclean -y
Mit den ersten beiden Befehle werden eventuelle Altlasten und nicht mehr benötigte Pakete entfernt. Anschließend wird apt mit dem Parameter update aufgerufen. Dadurch werden die aktuellen Paketquellen heruntergeladen und im System hinterlegt. Mittels full-upgrade erfolgt danach die eigentliche Aktualisierung. Wenn diese erfolgreich durchgeführt wurde, werden noch einmal eventuelle Altlasten und nicht mehr benötigt Pakete entfernt. Alle Befehle werden mit dem zusätzlichen Parameter -y aufgerufen, damit der Nutzer keine zusätzliche Bestätigung durchführen muss.
Je nachdem, wie viele Updates installiert werden, kann dieser Vorgang einige Minuten in Anspruch nehmen. Zum Abschluss sollte der Server mittels des Befehls:
reboot
neu gestartet werden. Damit ist das System anschließend auf dem aktuellen Stand.
Phased Updates
Unter Ubuntu existiert mit dem Phased Updates-Mechanismus ein System zur Verteilung von Aktualisierungen, das es ermöglicht, dass einige Benutzer eine Aktualisierung verzögert erhalten, während andere Benutzer dieselbe Aktualisierung sofort erhalten. Dies ermöglicht es Canonical, die Auswirkungen einer Aktualisierung zu testen und zu beurteilen, bevor sie für alle Benutzer veröffentlicht wird. Zu erkennen ist dies an einer entsprechenden Meldung bei der Aktualisierung:
The following packages have been kept back: grub-efi-amd64 grub-efi-amd64-bin grub-efi-amd64-signed gzip php8.1-bcmath php8.1-cli php8.1-common php8.1-curl php8.1-fpm php8.1-gd php8.1-gmp php8.1-imap php8.1-intl php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-phpdbg php8.1-readline php8.1-sqlite3 php8.1-xml php8.1-zip 0 upgraded, 0 newly installed, 0 to remove and 21 not upgraded.
Im Serverbetrieb kann diese Funktionalität unter Umständen störend sein. Um den Mechanismus abzuschalten, muss eine entsprechende Datei erstellt bzw. bearbeitet werden:
nano /etc/apt/apt.conf.d/99-Phased-Updates
Die Datei sollte anschließend mit folgender Zeichenkette befüllt werden:
APT::Get::Always-Include-Phased-Updates True;
Damit wird die entsprechende Funktionalität deaktiviert und Aktualisierungen können sofort angewendet werden.
Name des Servers ändern
Unter Umständen kann es gewünscht sein, den Namen des Servers zu ändern. Nach dem Login per SSH wird der Nutzer von einem Prompt begrüßt:
user@server:~#
Dieser Prompt enthält unter anderem den Namen des Servers. Soll dieser Name geändert werden, müssen zwei Dateien angepasst werden. Die erste Datei ist /etc/hostname welche mittels nano geöffnet werden kann:
nano /etc/hostname
Wenn der Name in dieser Datei geändert wurde, muss die Änderung noch fixiert werden. Dies geschieht mit dem Befehl:
hostname -F /etc/hostname
Die zweite Datei, in welcher der Name geändert werden muss, ist die Datei /etc/hosts. Nach der Änderung und einem Neustart des Servers ist der neue Name aktiv.
RAID-Synchronisation beschleunigen
In vielen Fällen wird ein entsprechender Server in einem RAID-Verbund betrieben. Der Grund hierfür ist eine bessere Ausfallsicherheit und unter Umständen, höhere Lesegeschwindigkeiten. Der Status eines in diesem Fall genutzten Software-RAIDs kann mittels:
cat /proc/mdstat
eingesehen werden. Die entsprechende Ausgabe könnte dann beispielhaft wie folgt aussehen:
Personalities : [raid1]...