Featured image of post Linux Server Grundeinrichtung mit Alma Linux

Linux Server Grundeinrichtung mit Alma Linux

Installation und Grundeinrichtung eines Linux Server mit Alma Linux.

Warum Alma Linux?

Alma Linux gehört zu den Distributionen die auf Red Hat Enterprise Linux (RHEL) basieren und sich damit in einigen Punkten leicht zu den auf Debian basierten Distributionen unterscheiden. Ich nutze Alma Linux gerne immer dann, wenn ich Podman auf dem System verwenden möchte. Dabei handelt es sich um eine Alternative zu Docker, die ohne root funktioniert und sich besser ins System (Systemd) integriert. Unter Debian wird leider eine ältere Version von Podman ausgeliefert, die sich auch nicht ganz so leicht aktualisieren lässt und damit viele Features nicht hat.

Offensichtliche Unterschiede

  • Als Paketmanager kommt dnf statt apt zum Einsatz.
  • RHEL-basierte Systeme wie Alma Linux nutzen RPM-Pakete (.rpm), bei Debian ist es “.deb”.
  • Die Standardfirewall ist nftables, zur einfacheren Konfiguration ist firewalld installiert.
  • Der Kernel ist meistens älter, dafür werden Programme auch zwischendurch auf neuere Versionen gehoben. Bei Debian erfolgt dies nur bei neuen Haupt-Releases.
  • SELinux ist aktiv, sodass manchmal Zusatzschritte notwendig sind.
  • Neu installierte Programme sind unter RHEL-basierten Distributionen häufig nicht direkt im Autostart und müssen explizit über systemctl enable PROGRAMM aktiviert werden.

Diese Liste ist bei weitem nicht vollständig, sollte aber für einen groben Überblick erstmal reichen.

Installation

Für die Installation muss zunächst die passende ISO von der Homepage von Alma Linux geladen werden. Für einen Server reicht die “Minimal ISO”, da wir keine GUI oder ähnliches benötigen. Mit der ISO-Datei erstellen wir dann einen bootbaren USB-Stick, sofern das ganze auf echter Hardware installiert werden soll, ansonsten wird die ISO in die VM eingebunden. Die Erstellung eines USB-Sticks funktioniert genauso wie bei der Erstellung eines Sticks für Proxmox.

Beim Hochfahren im Bootmenü wählen die dann die Option zum Start der Installation, damit bootet das System in den Installationsassistenten.

Im ersten Schritt wird die passende Sprache gewählt, hier am besten Deutsch und Deutschland wählen, weil in dem Zuge auch das richtige Layout für die Tastatur eingestellt wird. Nach der Bestätigung mit “Fortfahren” wird eine Übersicht mehrerer Menüpunkte angezeigt, die nach und nach abgearbeitet werden müssen. Installationsmenü von Alma Linux

Folgende Menüpunkte sind hier relevant und müssen noch eingestellt werden:

  1. Software -> Software-Auswahl:
    • Hier sind nur Headless Management und System Tools relevant (siehe Bild unter diesem Abschnitt).
  2. System -> Installations-Ziel:
    • Am besten die ganze Festplatte nutzen, also auf Automatisch lassen und bestätigen. Danach sollte das im Hautpmenü nicht mehr in rot angezeigt werden. Dabei werden alle eventuell vorhandenen Daten auf der Festplatte gelöscht.
  3. System -> Netzwerk und Hostname:
    • Wenn gewünscht, kann hier bereits ein Hostname für das Gerät definiert werden. Dieser muss ganz unten im Feld “Rechnername” eingetragen und mit Anwenden übernommen werden.
  4. Benutzereinstellungen -> Root-Passwort:
    • Muss nicht gesetzt werden, da wir einen zusätzlichen Benutzer mit Adminrechten definieren.
  5. Benutzereinstellungen -> Benutzer anlegen:
    • Benutzername und Passwort eintragen und einen Haken bei Diesen Anwender als Administrator festlegen setzen, damit der Benutzer sudo-Berechtigungen erhält.

Jetzt kann alles mit Installation starten unten rechts bestätigt werden. Am Ende muss das System neu gestartet werden, die ISO bzw. der Boot-Stick sollte dann entfernt werden.

Auswahl der zu installierenden Software

Erste Schritte

Nach der Installation können die ersten Schritte über das Terminal ausgeführt werden. Sind Monitor und Tastatur angeschlossen, kann direkt gestartet werden, ansonsten muss vorher eine Verbindung über SSH aufgebaut werden.

1
ssh BENUTZERNAME@IP-DES-GERÄTS

Es gelten die in der Installation festgelegten Logindaten.

System updaten

Wie eingangs erwähnt gibt es unter Alma Linux dnf statt apt als Paketmanager. Um zunächst sicherzustellen, dass das System auf dem aktuellsten Stand ist, müssen folgende Befehle ausgeführt werden:

1
sudo dnf update && sudo dnf upgrade

Es wird eine Liste der zu aktualisierenden Elemente angezeigt, das Ganze muss mit “y” bestätigt werden.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
[iceflom@alma-test ~]$ sudo dnf update && sudo dnf upgrade
[sudo] password for iceflom:
Last metadata expiration check: 1:37:39 ago on Sat Dec 28 21:42:41 2024.
Dependencies resolved.
==================================================================================================================================
 Package                               Architecture          Version                                  Repository             Size
==================================================================================================================================
Upgrading:
 NetworkManager                        x86_64                1:1.48.10-3.el9_5                        baseos                2.3 M
 NetworkManager-libnm                  x86_64                1:1.48.10-3.el9_5                        baseos                1.8 M
 NetworkManager-team                   x86_64                1:1.48.10-3.el9_5                        baseos                 39 k
 NetworkManager-tui                    x86_64                1:1.48.10-3.el9_5                        baseos                246 k
 cronie                                x86_64                1.5.7-12.el9_5                           baseos                115 k
 cronie-anacron                        x86_64                1.5.7-12.el9_5                           baseos                 31 k
[...]

Transaction Summary
==================================================================================================================================
Upgrade  31 Packages

Total download size: 489 M
Is this ok [y/N]: y

Automatische Updates

Damit zukünftig Updates und vor allen Dingen Sicherheitsupdates automatisch installiert werden, wird dnf-automatic installiert.

1
sudo dnf install dnf-automatic

Anschließend aktivieren wir den dazugehörigen Timer für den Autostart und starten ihn sofort.

1
sudo systemctl enable dnf-automatic.timer --now

Damit wird nun regelmäßig nach Aktualisierungen gesucht und diese installiert. Dies entbindet einen aber trotzdem nicht von der Pflicht, sich regelmäßig auf den Server einzuloggen und die Update/Upgrade-Befehle manuell auszuführen.

Extra Packages for Enterprise Linux (EPEL)

Viele Programme befinden sich im EPEL Repository. Dieses ist standardmäßig nicht aktiv, sodass wir das mit einem Installationsbefehl nachholen.

1
sudo dnf install epel-release

Damit ist dann sichergestellt, dass die meisten bekannten Programme von dnf gefunden werden. Bei neu hinzugefügten Repositorys kann es sein, dass man mehrere Keys mit y bestätigen muss, wenn man das erste Programm daraus installiert.

SSH-Server absichern

Wie man den SSH-Server generell absichert, ist im Beitrag SSH-Server härten (hardening) beschrieben. Dies gilt auch so für Alma Linux, mit einer einzigen Ausnahme.

Falls der SSH-Port angepasst werden soll, muss diese Änderung auch SELinux mitgeteilt werden, weil dies sonst nicht zugelassen wird und der SSH-Server nicht mehr starten kann. Dieser Hinweis befindet sich auch in der Konfigurationsdatei des SSH-Servers:

1
2
3
4
5
6
7
8
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

Leider ist semanage nicht standardmäßig installiert, sodass der angegebene Befehl nicht ausgeführt werden kann. Möchte man herausfinden welches Paket man dafür installieren muss, kann man das ebenfalls über einen dnf-Befehl:

1
sudo dnf provides semanage

Ausgabe des Befehls:

1
2
3
4
5
6
7
[iceflom@alma-test ~]$ sudo dnf provides semanage
Extra Packages for Enterprise Linux 9 - x86_64                                                    6.8 MB/s |  23 MB     00:03
Last metadata expiration check: 0:00:08 ago on Sat Dec 28 23:38:48 2024.
policycoreutils-python-utils-3.6-2.1.el9.noarch : SELinux policy core python utilities
Repo        : appstream
Matched from:
Filename    : /usr/sbin/semanage

Der Befehl befindet sich also im Paket policycoreutils-python-utils (Versionsnummer und Architektur weglassen) und kann damit folgendermaßen installiert werden:

1
sudo dnf install policycoreutils-python-utils

Anschließend ist der Befehl semanage verfügbar und der in der Konfiguration angegebene Befehl kann einfach benutzt werden, um den Port anzupassen.

Achtung!
Firewalld ist standardmäßig aktiv und gibt Port 22 für SSH frei. Wird der Port angepasst, muss auch die Firewall angepasst werden! Für firewalld gibt es einen eigenen Artikel im Blog.

Zeitzone anpassen

Die Zeitzone wurde zwar schon während der Installation angegeben, sollte sie aber angepasst werden müssen lautet der Befehl dafür:

1
sudo timedatectl set-timezone "Europe/Berlin"

Zeichensatz

Auch dieser sollte schon passen, kann aber ebenfalls angepasst werden.

1
sudo localectl list-locales

Dies zeigt an, welche Locales verfügbar sind. Sollte zum Beispiel deutsch fehlen, kann dies nachinstalliert:

1
sudo dnf install langpacks-de

und anschließend als Locale gesetzt werden:

1
sudo localectl set-locale LANG=de_DE.UTF-8

Abschluss

Damit ist das Grundsystem installiert und kann so wie jedes andere Linux-System verwendet werden. Über dnf können alle notwendigen Tools einfach nachinstalliert werden, sofern es als RPM verfügbar ist. Der Großteil der relevanten Programme sollte aber vorhanden sein. Alternativ lassen sich auch Community-Repositorys von Fedora einbinden (Fedora COPR).

Erstellt mit Hugo
Theme Stack gestaltet von Jimmy