Selfhosting - Florian Bottke - E-Book

Selfhosting E-Book

Florian Bottke

0,0

Beschreibung

Viele unserer Daten und Inhalte sind bei großen Konzernen wie Amazon, Apple, Google oder Meta gespeichert. Allerdings gibt es vermehrt Anstrengungen, die eigenen Daten außerhalb dieser Datensilos zu speichern. Neben dem klassischen Webhosting, bei dem ein Server mit vielen anderen Kunden geteilt wird, gibt es die Möglichkeit zum Betrieb eines eigenen Servers. Während Webhosting-Angebote prinzipbedingt einigen Einschränkungen unterworfen sind, ist dies beim Betrieb eines eigenen Servers anders. In diesem Buch soll in den Betrieb eines Servers eingeführt und über die notwendigen Schritte informiert werden. Das Buch beginnt mit der Beschaffung des Servers und nimmt den Leser mit auf eine Reise, über die Linux-Grundlagen, zur Einrichtung des Servers, bis zum Aufsetzen einzelner Dienste wie E-Mail, XMPP oder eines Webservers. Daneben werden weitere wichtige Themen wie die Wartung und Verwaltung, Backups und die Sicherheit eines Servers behandelt.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 187

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Einleitung

Aufbau

Autor

Beschaffung

Der passende Anbieter

Der richtige Server

Grundlagen

Linux-Grundlagen

Netzwerk-Grundlagen

Grundeinrichtung

Installation

Erste Schritte

root-Nutzer aktivieren

Pakete aktualisieren

Phased Updates

Name des Servers ändern

RAID-Synchronisation beschleunigen

Systeminfo beim Login aktivieren

Netzwerkkonfiguration

Services unter systemd einrichten

Zertifikate

Spezielle Setups

Verschlüsselter Server

Mailserver

Hintergrund

Grundlegende Installation

Weiterführende Konfiguration

Gameserver

Minecraft Server aufsetzen

Eine Karte für Minecraft

Webserver

Grundlegende Installation

Einrichtung und Nutzung von MariaDB

Weiterführende Konfiguration

Webapplikationen

Weitere Dienste

Elasticsearch

FESS

Foundry VTT

Git

HedgeDoc

LanguageTool

XMPP

Backup

Grundlagen

Sicherung des Servers

Sicherung von MariaDB-Datenbanken

Sicherheit

Allgemeine Vorsichtsmaßnahmen

Port des SSH-Servers ändern

Passwort-Authentifikation per SSH deaktivieren

Updates und Paketverwaltung

nftables und ufw

Server gegen unbefugten Login sichern

Livepatching unter Ubuntu aktivieren

Ubuntu Pro unter Ubuntu aktivieren

Im Falle eines Falles

Wartung und Verwaltung

Verwaltung des Server

Upgrade des Servers

Werkzeuge

Weiterführendes

Bücher

Webseiten

Nachwort

Skripte zum Buch

Start of Content

Cover

Table of Contents

© 2023 Florian Bottke5. Auflage, Vorgängerausgabe 2021Verlagslabel: AkiverseISBN Softcover: 978-3-347-53897-9ISBN Hardcover: 978-3-347-53899-3ISBN E-Book: 978-3-347-53901-3Druck und Distribution im Auftrag des Autors:tredition GmbH, An der Strusbek 10, 22926 Ahrensburg, GermanyDas Werk, einschließlich seiner Teile, ist urheberrechtlich geschützt. Für die Inhalte ist der Autor verantwortlich. Jede Verwertung ist ohne seine Zustimmung unzulässig. Die Publikation und Verbreitung erfolgen im Auftrag des Autors, zu erreichen unter: tredition GmbH, Abteilung Impressumservice, An der Strusbek 10, 22926 Ahrensburg, Deutschland.

Einleitung

Wer heutzutage eine Webseite oder einen Blog ins Internet stellen möchte, wird nicht einmal mehr einen Webhoster benötigen. Dienste wie Wordpress.com, Tumblr und Medium ermöglichen jedem, so etwas schnell aufzusetzen. Nach der Registrierung dauert es nur einige Minuten und schon kann die Arbeit am neuen Blog oder der Webseite begonnen und diese mit Inhalten befüllt werden.

Zu dieser gefühlten Freiheit kommt allerdings eine Abhängigkeit. Denn, so bequem diese Dienste auch sein mögen, am Ende bilden sie riesige Datensilos. Aus einem solchen können die eigenen Daten unter Umständen nur schwer wieder exportiert werden. Dies kann dazu führen, dass der Nutzer im schlimmsten Fall auf Gedeih und Verderben dem jeweiligen Anbieter ausgeliefert ist.

Eine andere Möglichkeit ist es, Webspace bei einem Webhoster zu mieten. Hier erhält der Nutzer meist ein sogenanntes LAMP-Paket, bestehend aus Linux, dem Webserver Apache, der Datenbank MySQL bzw. MariaDB und der Skriptsprache PHP. Der Umfang der Angebote ist von Webhoster zu Webhoster unterschiedlich. So wird mal mehr Speicher geboten, dafür liefert ein anderer Webhoster Python, Go oder Ruby als zusätzliche Skriptsprachen mit. Hier muss der Nutzer abwägen, was den eigenen Anforderungen entspricht.

Die flexibelste, aber auch arbeitsintensivste Methode, ist es einen eigenen Server zu betreiben. Um das Aufsetzen und den Betrieb eines solchen soll es in diesem Buch gehen. Als Betriebssystem wird ein Linux – in diesem Fall die Linux-Distribution Ubuntu, in der Servervariante – genutzt.

Das Buch soll dem Leser ein grundlegendes Verständnis über den Serverbetrieb und die damit verbundenen Aufgaben und Probleme vermitteln und ihn am Ende in die Lage versetzen, einen solchen Server eigenständig zu betreiben.

Aufbau

Das Buch beginnt mit den Grundlagen des verwendeten Betriebssystems, in diesem Buch ist das eine Linux-Distribution (Ubuntu 22.04 LTS). Nachdem die Grundlagen des Systems geklärt sind, geht es weiter mit der Installation und den notwendigen Einstellungen.

Danach folgen in den weiteren Kapiteln die unterschiedlichen Anwendungsgebiete eines Servers, wie E-Mail, Webserver und andere Dienste. Die Kapitel gegen Ende des Buches befassen sich mit allgemeinen und wichtigen Themengebieten aus dem Umfeld des Serverbetriebs, wie dem Backup oder der Sicherheit des Servers.

Die Kapitel in diesem Buch können relativ unabhängig voneinander gelesen werden; eine Lektüre Stück für Stück ist nicht notwendig.

Bei Maßeinheiten, welche Speicherangaben betreffen, werden die von der International Electrotechnical Commission festgelegten Präfixe genutzt. So heißt es z. B. statt Megabyte (MB), Mebibyte (MiB). Im Gegensatz zum klassischen SI-Präfix Mega, bei welchem ein Megabyte aus 1000 Kilobyte besteht, weisen die Einheiten nach dem Standard IEEE 1541-2002 deutlich darauf hin, dass es sich um binäre Präfixe handelt. Ein Mebibyte besteht somit aus 1024 Kibibytes und ein Kibibyte wiederum aus 1024 Byte.

Autor

Florian Bottke beschäftigt sich seit vielen Jahren mit Technik, IT und weiteren Themen aus diesem Dunstkreis. Neben seiner Leidenschaft für Technik, schreibt er Artikel, Publikationen und Bücher.

Beruflich arbeitet er als passionierter Softwareentwickler und ist seit mittlerweile über zwanzig Jahren in diesem Beruf unterwegs. Er lebt seit vielen Jahren in Mecklenburg-Vorpommern, genießt die wundervolle Landschaft und die freundlichen Menschen der Region.

Im Web zu finden ist er unter seeseekey.net – daneben betreibt er mit seinem Mitstreiter Felix einen Podcast rund um das Super Nintendo Entertainment System. Dieser ist unter snescast.de zu finden.

Beschaffung

Bevor die Arbeit am eigenen Server beginnen kann, wird ein Anbieter und ein Server benötigt. Hier sollte nicht der erstbeste Anbieter, der einem über den Weg läuft, gewählt werden, denn bei der Wahl des Anbieters und des dazugehörigen Servers gibt es einige Dinge zu beachten.

Der passende Anbieter

Vor der Einrichtung eines eigenen Servers benötigt der geneigte Serverbetreiber natürlich erst einmal einen solchen. Grob betrachtet existieren dafür zwei Modelle. Das erste Modell ist das Mieten eines Servers für einen bestimmten Betrag pro Monat. Das andere Modell ist unter dem Namen Colocation bekannt. Hierbei wird eigene Hardware genutzt und der Anbieter dafür bezahlt, den Server mit der entsprechenden Infrastruktur – Strom und einer Anbindung an das Internet – zu versorgen.

Wer jetzt auf die Idee kommt, einen solchen Server doch lieber im trauten Heim zu betreiben, sollte diese Überlegung einer genauen Betrachtung unterziehen. Im Gegensatz zu einem Rechenzentrum ist es zu Hause schwierig eine hohe Verfügbarkeit zu gewährleisten. So kann der Strom ausfallen oder der Netzanbieter hat Probleme mit der Anbindung, sodass der Server plötzlich nicht mehr zu erreichen ist. Außerdem ist die Anbindung für Hausanschlüsse in den meisten Fällen wesentlich schlechter als in einem Rechenzentrum. Dort sind die Anbindungen an das Internet nicht nur mit entsprechender Bandbreite ausgestattet, sondern auch redundant ausgelegt. Das bedeutet, dass ein Rechenzentrum mit mehr als einem Internet Service Provider verbunden ist.

Bei der Wahl zwischen dem Mieten eines Servers und der Colocation müssen die eigenen Anforderungen beachtet werden. Wer keine Spezialhardware, wie Grafikkarten mit einer großen Anzahl von Shadereinheiten, für die Beschleunigung aufwendiger Berechnung benötigt, kann ruhigen Gewissens auf einen gemieteten Server setzen.

Die Empfehlung des Autors für den ersten Server wäre die Hetzner Online GmbH, welche unter hetzner.de zu finden ist. Dort sind sinnvoll konfigurierte Server zu einem günstigen Preis erhältlich.

Der richtige Server

Nachdem der passende Anbieter ausgewählt wurde, muss ein Server aus dem Angebot des Anbieters gewählt werden. Je nach Anbieter finden sich Server in den unterschiedlichsten Ausbaustufen. Grob können die angebotenen Serverprodukte in zwei Kategorien eingeteilt werden. Zum einen existieren sogenannte virtuelle Server, zum anderen dedizierte Server.

Auf den ersten Blick lässt sich kein Unterschied erkennen, da der Nutzer bei beiden Servertypen die volle Kontrolle über das jeweilige Betriebssystem erhält. Auf dem Server kann ein Betriebssystem der Wahl installiert und in diesem nach Belieben verfahren werden.

Während ein dedizierter Server mit niemandem geteilt werden muss, sieht es bei einem virtuellen Server etwas anders aus. Hier setzt der eigene Server nicht direkt auf der Hardware auf, sondern befindet in einer virtuellen Maschine. Das bedeutet, dass sich die Leistung der darunter liegenden Host-Maschine mit anderen Kunden geteilt werden muss. Dafür sind solche Server wesentlich günstiger als dedizierte Server.

Bei virtuellen Servern existieren mittlerweile sogenannte Cloud-Angebote am Markt. Bei diesen wird ein virtueller Server mit bestimmten Ressourcen gemietet. Allerdings können die Ressourcen jederzeit angepasst werden; gezahlt wird immer nur der Preis für die verwendeten Ressourcen wie CPUs, RAM, dem benötigtem Speicherplatz und der Zeit, die der Server läuft.

Grundsätzlich sollte abgewogen werden, ob ein virtueller Server für die eigenen Zwecke genügt. Soll nur ein Mail- oder XMPP-Server betrieben werden, ist ein solcher Server in den meisten Fällen ausreichend.

Anders sieht es aus, wenn eine Webseite mit vielen Zugriffen oder ein Gameserver betrieben werden soll – hier wird sich die Leistung eines dedizierten Servers bemerkbar machen.

Nachdem die Entscheidung, ob es ein virtueller oder dedizierter Server werden soll, getroffen wurde, geht es daran, ein Angebot mit der passenden Leistungsfähigkeit zu finden. So beginnen günstige virtuelle Server schon ab einigen Euro im Monat, während dedizierte Server bei knapp 50 € pro Monat beginnen.

Nach oben ist hierbei – wie bei vielen Dingen im Leben – keine Grenze gesetzt. So ist es ohne weitere Probleme möglich, einen Server für 1400 € im Monat zu mieten, aber wer benötigt wirklich unzählige CPU-Kerne, 4 TiB RAM und 120 TiB an Festplattenspeicher?

Deshalb gilt es, bei der Wahl des Servers darauf zu achten, dass dieser nicht zu überdimensioniert ist. Als Richtschnur sollte ein Server mit mindestens 16 GiB Arbeitsspeicher und einem Quad-Core-Prozessor gelten. Damit ist der dedizierte Server für die meisten Aufgaben gut gerüstet. Je nach geplanter Verwendung des Servers können auch kleinere Server gewählt werden. Für einen privaten Mailserver wird ein Server mit 2 GiB Arbeitsspeicher und einem Dual-Core-Prozessor vollkommen ausreichen.

Bei virtuellen Servern existiert keine echte CPU, sondern es werden sogenannte virtuelle CPUs zugewiesen. Je nach Anforderung können hier ein oder zwei CPU-Kerne genügen.

Bei der Wahl der Festplatte kann zwischen einem Solid-State-Drive (SSD), welches durch kurze Zugriffszeiten und hohe Transferraten besticht und normalen Festplatten, welche hohe Kapazität liefern, gewählt werden.

Wer viel Speicherplatz auf seinem Server benötigt, sollte zu klassischen Festplatten greifen. Hält sich der Speicherbedarf in Grenzen, kann bedenkenlos zu einer SSD gegriffen werden.

Bei umfangreichen Serverkonfigurationen sind auch Kombinationen aus einer SSD und gewöhnlichen Festplatten denkbar. In einer solchen Konfiguration könnte die SSD als Systemplatte dienen, während die Daten auf der Festplatte vorgehalten werden. Die Nutzung von SSDs führt meist zu einem höheren Preis als die Nutzung gewöhnlicher Festplatten.

Je nach Anbieter sollten die Konditionen für den Datentransfer aufmerksam studiert werden. Ein Server steht in den meisten Fällen nicht nur herum, sondern liefert Daten aus und empfängt diese. Bei den meisten Anbietern ist ein bestimmtes Datenvolumen inklusive, z. B. 10 TiB pro Monat – danach muss für jedes weitere Byte bezahlt werden. Andere Anbieter handhaben dies teilweise anders. So existieren Angebote mit einem Inklusivvolumen. Nach dem Erreichen dieses Volumens wird die Geschwindigkeit der Anbindung gedrosselt, z. B. von 1000 MBit/s auf 10 MBit/s. Wird wieder eine Anbindung mit höherer Transferrate benötigt, sind zusätzliche Zahlungen zu leisten, oder es muss bis zum nächsten Monat gewartet werden.

Die Variante mit dem Inklusivvolumen wurde jahrelang bei Hetzner praktiziert. Mittlerweile kommen die dedizierten Server, mit einem 1 GBit-Uplink, dort ohne Traffic-Beschränkung aus.

Im Normalfall ist es so, dass die Inklusivvolumen in den meisten Tarifen bei Weitem ausreichen. Selten übersteigt das Datenvolumen eines eigenen Servers die in den Tarifen angegebenen Grenzen. Alternativ kommen Tarife ohne Traffic-Beschränkung infrage.

Grundlagen

Bevor die eigentliche Installation und Einrichtung eines Servers erläutert wird, sollen einige Grundlagen über Netzwerke und das Betriebssystem Linux vorangestellt werden.

Diese Grundlagen dienen dem Verständnis der darauffolgenden Kapitel. Dabei sollen die Themen nicht bis ins letzte Detail behandelt werden, sondern nur einen ersten Überblick geben, auf welchem später aufgebaut werden kann.

Linux-Grundlagen

Im Gegensatz zu einem Betriebssystem, das auf dem Desktop oder dem Mobiltelefon genutzt wird, kommt ein Serversystem meist ohne eine grafische Benutzeroberfläche aus. Das bietet einige Vorteile; so erzeugt das System weniger Last, was der Performanz des Servers zugutekommt.

Der Einsteiger sollte die Bedienung eines Linux-Systems erst auf einer virtuellen Maschine üben, sodass im Falle eines Falles nichts zu Bruch geht. Hierfür eignet sich die freie Software VirtualBox, von Oracle, mit deren Hilfe ein Rechner virtualisiert werden kann. VirtualBox ist für macOS, Linux und Windows verfügbar.

Im Gegensatz zu einem echten Rechner ist es möglich in einer virtuellen Maschine Schnappschüsse anzulegen und zu diesen jederzeit zurückzukehren. Damit kann das System auch im Falle eines katastrophalen Fehlers wiederhergestellt werden.

Alternativ kann das Windows-Subsystem für Linux (WSL) ab Windows 10 genutzt werden. Dieses stellt eine Linux-Distribution der Wahl zur Verfügung, welche unter Windows ausgeführt wird. Installiert werden kann die entsprechende Distribution über den Microsoft Store.

Ein System ohne grafische Oberfläche verfügt über weitere Vorteile. So werden Einstellungen nicht abstrahiert und sind somit für den Administrator des Servers direkt zu erreichen. Im Laufe der Zeit wird der Nutzer feststellen, dass viele Einstellungen, Konfigurationsschritte und Aufgaben auf der Konsole schneller von der Hand gehen und wesentlich unkomplizierter sind.

In diesem Buch wird die Linux-Distribution Ubuntu 22.04 LTS genutzt, da diese auch für Einsteiger geeignet ist. Linux selbst bezeichnet nur den Kern, den sogenannten Kernel, des Betriebssystems. Die Zusammenstellung des Kernels mit der entsprechenden Software, wie einer Shell, Anwendungspaketen und ähnlichem wird als Distribution bezeichnet.

Ubuntu ist eine von Debian abgeleitete Distribution und blickt mittlerweile auf eine über fünfzehnjährige Geschichte zurück. Sie wird von vielen großen Organisationen wie der Wikimedia Foundation für ihre Server genutzt.

Jedes halbe Jahr – immer im April und Oktober – wird eine neue Ubuntu-Version veröffentlicht. Die Versionen werden nach dem Schema Jahr.Monat versioniert. So trägt die Version vom Oktober 2013 die Versionsnummer 13.10 – die aktuelle LTS-Version vom April 2022 hingegen die Version 22.04.

Für normale Versionen werden vom Hersteller Canonical neun Monate Support angeboten, dies bedeutet, dass diese Versionen mit Aktualisierung und Sicherheitspatches versorgt werden. In zweijährigen Abständen erscheint eine sogenannte Long Term Support-Version, welche das Kürzel LTS trägt. Im Gegensatz zu normalen Versionen werden LTS-Versionen fünf Jahre lang unterstützt.

Dies macht sie zu idealen Kandidaten für Server, welche lange Zeit in Betrieb sein sollen und nicht unbedingt immer die neusten Softwareversionen benötigen. Es ist auch möglich, einen Server mit der normalen Version zu betreiben, allerdings muss in diesem Fall darauf geachtet werden, das Betriebssystem regelmäßig auf die neuste Version zu aktualisieren. Ansonsten kann es passieren, dass die genutzte Version nicht mehr von Canonical unterstützt wird. Dies würde dazu führen, dass wichtige Aktualisierungen, wie Sicherheitsupdates nicht mehr für diese, dann veraltete, Version verfügbar wären.

Da Nicht-LTS-Versionen alle sechs Monate erschienen, muss der Server spätestens drei Monate nach dem Erscheinen der neuen Version auf diese aktualisiert werden.

Geschichte

Die Entwicklung von Linux begann im Jahre 1991. Der Finne, Linus Torvalds, wollte einen Terminal-Emulator schreiben, um die Architektur seines 386er-PCs besser kennenzulernen und zu verstehen.

Ursprünglich war Linux (damals noch unter dem Namen Freax) nicht dafür gedacht, auf andere Rechnerarchitekturen portiert zu werden. Dies war dadurch bedingt, dass Torvalds einige architekturspezifische Feinheiten ausnutzte. Mittlerweile läuft Linux nicht nur auf PCs mit der x86-Architektur, sondern auch auf so unterschiedlichen Geräten wie Waschmaschinen, Smartphones, Tablets und Staubsaugerrobotern.

Damit ist Linux wahrscheinlich das Betriebssystem, welches auf den meisten CPU- und Rechnerarchitekturen dieser Welt läuft. Bei Linux handelt es sich bei genauer Betrachtung um einen Unix-Klon. Linux gehört somit wie BSD zu den unixartigen respektive unixoiden Systemen.

Am 25. August 1991 veröffentlichte der damals 21-jährige Linus Torvalds einen Post im Usenet, in welchem er Linux ankündigte. Die erste öffentliche Version war knapp einen Monat später, am 17. September 1991, auf einem FTP-Server zu finden. Dabei wurde das Verzeichnis auf diesem FTP-Server, vom Administrator des Servers, von Freax auf Linux geändert, womit Linux zu seinen heutigen Namen kam.

Da Linux im Detail betrachtet nur aus dem Kernel besteht und dieser ohne weitere Software relativ nutzlos ist, wurden grundlegende Werkzeuge wie ein Editor, ein Compiler und andere benötigt. Hier spielte ein anderes Projekt eine große Rolle, ohne das Linux zum damaligen Zeitpunkt noch weit von einem halbwegs benutzbaren System entfernt gewesen wäre.

Die Rede ist vom GNU-Projekt. Dieses im Jahre 1983 von Richard Stallmann initiierte Projekt hatte das Ziel ein freies Betriebssystem zu schaffen. Allerdings ging Richard Stallmann genau entgegengesetzt an dieses Problem heran. Er fing an, die Anwendungen und Werkzeuge zu schreiben, welche für ein solches System nötig sind. Dies führte in den Jahren 1991 und 1992 dazu, dass Richard Stallmann die passenden Werkzeuge und Linus Torwalds den Kernel lieferte.

Deswegen ist Richard Stallmann bis zum heutigen Tage der Meinung, dass Linux nicht Linux, sondern GNU/Linux heißen sollte. Bei der freien Distribution Debian ist dies der Fall, dort wird Linux im Regelfall nur GNU/Linux genannt.

Richard Stallmann entwickelte und veröffentlichte während seiner Arbeit am GNU-Projekt auch eine Softwarelizenz, die sogenannte GNU General Public License, kurz GPL. Unter diese Lizenz stelle Torwalds im Jahre 1992 seinen damaligen Kernel. Diese Lizenz führt dazu, dass der Kernel sogenannte freie Software ist. Freie Software garantiert bestimmte Freiheiten. Diese werden von der Free Software Foundation wie folgt definiert:

Freiheit 0: Das Programm zu jedem Zweck auszuführen.

Freiheit 1: Das Programm zu untersuchen und zu verändern.

Freiheit 2: Das Programm zu verbreiten.

Freiheit 3: Das Programm zu verbessern und diese Verbesserungen zu verbreiten, um damit einen Nutzen für die Gemeinschaft zu erzeugen.

Bereits im Jahre 1993 arbeiteten über hundert Entwickler am damals neuen Linux-Kernel. Ein Jahr später wurde die Version 1.0 des Kernels veröffentlicht. Diese Version war die erste netzwerkfähige Version des Kernels. 1995 erschienen die ersten Portierungen des Linux-Kernels auf andere Prozessorarchitekturen (unter anderem DEC und Sun SPARC). Wiederum ein Jahr später erblickte die Version 2.0 das Licht der Welt.

Zu dieser Zeit wurde Linux zunehmend ernster genommen. So erschienen 1997 bekanntere proprietäre Applikationen wie der Netscape Navigator und StarOffice für Linux. 1998 gaben Hersteller wie IBM und Oracle ihre Unterstützung für Linux bekannt.

Ein Jahr vor Ende des Jahrtausends, im Jahr 1999, erschien ein Meilenstein in der Kernelentwicklung: die Version 2.2. In dieser gab es große Verbesserungen am Netzwerkcode sowie der Unterstützung von mehr als einer CPU pro Maschine.

Im neuen Millennium gab es für Linux nur noch eine Richtung: nach oben. Mittlerweile wird Linux nicht nur im unsichtbaren Bereich, wie in der Waschmaschine oder in großen Rechenzentren genutzt, sondern auch auf Mobiltelefonen in Form von Android und ist damit in den Alltag vorgedrungen.

Installation von Software

Mit einem frisch installierten System kann in der Regel nicht viel angefangen werden, da nur die notwendigste Software installiert ist. Im Gegensatz zur Windows- und macOS-Welt verfügt Linux schon seit vielen Jahren über eine ausgeklügelte Paketverwaltung, mit deren Hilfe Software installiert und wieder deinstalliert werden kann – im Idealfall bleiben hierbei keinerlei Spuren zurück.

Je nach verwendeter Linux-Distribution gibt es unterschiedlichste Systeme wie RPM, Pacman oder den Debian Package Manager. In diesem Buch wird der Debian Package Manager behandelt, da dieser in Ubuntu Verwendung findet. Für die Verwaltung der Software wird apt genutzt, welches als Backend den Debian Package Manager kurz dpkg nutzt. Mithilfe von apt ist es möglich, Software zu installieren, zu aktualisieren und wieder vom System zu entfernen.

Die Software in Linux-Distributionen ist in sogenannten Paketen organisiert. Im Normalfall existiert für jede Software ein Paket. Für den Midnight Commander, einen grafischen Dateimanager für die Konsole, wäre dies das Paket mc. Allerdings existieren auch Pakete, in denen mehrere Programme zu finden sind, so z. B. bei vielen Utilities.

Eine Anwendung wie der Webserver Nginx besteht nicht nur aus einem Paket, sondern auch aus bestimmten Abhängigkeiten, wie dem OpenSSL-Paket. Diese Abhängigkeiten werden vom Paketmanager automatisch bei der Installation aufgelöst, sodass nur das Paket nginx installiert werden muss – alle benötigen Bibliotheken und Anwendungspakete werden automatisch mit auf dem System installiert.

Für apt werden root-Rechte benötigt. Ist der Nutzer nicht als Nutzer root angemeldet, so muss den folgenden Kommandos der Befehl sudo vorangestellt werden. Dieser sorgt dafür, dass das folgende Kommando mit administrativen Rechten ausgeführt wird. Um ein Paket zu installieren, muss auf der Kommandozeile:

apt install nginx

eingegeben werden. In diesem Fall wird das Paket nginx installiert. Es ist möglich mehrere Pakete gleichzeitig zu installieren. Dazu müssen die entsprechenden Pakete einfach nacheinander aufgeführt werden:

apt install nginx sendmail mc

Mit dieser Zeile werden die Pakete nginx, sendmail und mc installiert. Soll ein bestimmtes Paket installiert werden, dessen Name nicht bekannt ist, hilft die Ubuntu-eigene Paketsuche, welche unter packages.ubuntu.com zu finden ist, weiter. Dort kann nicht nur für die aktuelle Ubuntu-Version nach Paketen gesucht werden, sondern es können auch ältere Versionen in die Suche einbezogen werden.

Neben dieser externen Möglichkeit nach Paketen zu suchen, bietet apt selbst eine solche Funktionalität. So listet das Kommando:

apt search commander

alle Pakete auf, in denen die Zeichenkette commander vorkommt.

Zum Entfernen eines Paketes bietet apt die Option remove. So wird das Paket mc mittels folgendem Befehl wieder deinstalliert:

apt remove mc

Auch bei dieser Option ist es möglich, mehrere Pakete auf einmal zu deinstallieren, indem diese nacheinander angegeben werden. Bei der Option remove muss beachtet werden, dass damit nur das entsprechende Paket entfernt wird. Weitere Daten wie Konfigurationsdateien bleiben in diesem Fall erhalten. Sollen die entsprechenden Konfigurationsdateien ebenfalls entfernt werden, bietet sich die Option purge an:

apt purge mc

Die Option purge entfernt wie remove das entsprechende Paket und dazugehörige Konfigurationsdateien. Ein wichtiger Punkt bei einem Serverbetriebssystem ist die Aktualität der Softwarepakete. So ist es problematisch, einen Server mit veralteten Versionen einer Software zu betreiben, welche bekannte Sicherheitslücken enthalten. Einem Angreifer wird es bei einem solchen Server unnötig einfach gemacht, den Server anzugreifen und eventuell zu übernehmen.

Auch für die Aktualisierung der Pakete hält apt die passenden Optionen bereit. Mit dem Kommando:

apt update

werden die Dateien mit den Paketquellen auf den aktuellsten Stand gebracht. In diesen Dateien sind die Informationen über alle verfügbaren Pakete enthalten, sodass diese Dateien regelmäßig aktualisiert werden sollten. Mit einem:

apt upgrade

wird das System auf den aktuellen Stand gebracht, wobei installierte Pakete, wenn möglich, auf eine neue Version gebracht werden. Eine Stufe weiter geht das Kommando:

apt full-upgrade

bei dem, wie bei der Option upgrade, installierte Pakete aktualisiert werden, aber gleichzeitig die Möglichkeit besteht, neue Pakete während des Vorgangs zu installieren und bestehende Pakete zu deinstallieren.

Neben den Optionen install, remove, update, upgrade und full-upgrade enthält apt noch eine Reihe von weiteren Optionen.

Eine dieser Optionen sind die clean- und autoremove-Direktiven. Mit der Zeit wird der apt-Cache eine Reihe von Paketen enthalten, welche nicht mehr vom System genutzt werden. Für diese nicht mehr genutzten Pakete und Abhängigkeiten sind die apt-Optionen autoremove, clean und autoclean gedacht.

Für die automatisierte Aktualisierung des Systems, findet sich im zum Buch zugehörigen Skript-Repository, ein Skript mit dem Namen upgrade.sh. Dieses führt eine Aktualisierung durch und entfernt nicht mehr benötigte Artefakte. Im Nachwort findet sich der Zugang zu diesem Repository.

Alternative Paketverwaltungen

Neben der im System integrierten Variante über den Debian Package Manager und der Applikation apt, existieren andere Systeme im Ubuntu