Redis leicht gemacht: Eine Schritt-für-Schritt-Anleitung zur Installation von Redis unter AlmaLinux 9

Redis ist ein beliebter und quelloffener In-Memory-Schlüsselwert-Datenspeicher. Er unterstützt verschiedene Datenstrukturen wie Hash, Listen, Sets, Strings und viele mehr. Redis ist nur für den Betrieb in einer vertrauenswürdigen Umgebung konzipiert und kann als Datenbank, Cache und Message Broker verwendet werden. Redis ist bekannt für seine breite Unterstützung, hohe Leistung, hohe Verfügbarkeit und Flexibilität.

Für einen kleinen Einsatz kannst du Redis als Standalone installieren. Für den großen Einsatz gibt es zusätzliche Komponenten wie Redis Sentinel für hohe Verfügbarkeit und Redis Cluster für die Partitionierung von Daten auf mehrere Redis Node Server.

Dieses Tutorial zeigt dir, wie du Redis auf dem AlmaLinux 9 Server installierst und konfigurierst. Außerdem zeigen wir dir, wie du Redis über Redis ACLs (Access Control Lists) und Firewalld absicherst.

Voraussetzungen

Um dieses Tutorial zu absolvieren, musst du Folgendes haben

  • Einen AlmaLinux-Server 9 – In diesem Beispiel wird der AlmaLinux-Server mit dem Hostnamen„alma-linux“ und der IP-Adresse„192.168.5.21“ verwendet.
  • Ein Nicht-Root-Benutzer mit sudo/root-Administrator-Rechten.
  • Eine Firewalld, die konfiguriert ist und läuft.

Also, los geht’s.

Redis installieren

Redis ist ein leistungsstarker Open-Source-Datenspeicher, der als Datenbank, Cache, Message Broker und Streaming-Engine verwendet werden kann. Redis ist auf den meisten Linux-Distributionen verfügbar, auch auf AlmaLinux. Es kann über das Standard-Distributions-Repository installiert werden.

Bevor du Redis installierst, führe den folgenden Befehl aus, um den Paket-Cache neu zu erstellen und die neueste Version der Paketinformationen zu erhalten.

sudo dnf makecache

Paketindex aktualisieren

Führe nun den folgenden dnf-Befehl aus, um Redis zu installieren. Gib y ein, wenn du dazu aufgefordert wirst, und drücke dann ENTER, um fortzufahren.

sudo dnf install redis

redis installieren

Wenn Redis installiert ist, führe die folgenden systemctl-Befehle aus, um den Redis-Dienst zu starten und zu aktivieren.

sudo systemctl start redis
sudo systemctl enable redis

start enable redis

Überprüfe abschließend den Status des Redis-Dienstes mit dem folgenden Befehl.

sudo systemctl is-enabled redis
sudo systemctl status redis

Die folgende Ausgabe bestätigt, dass Redis läuft und aktiviert ist, was bedeutet, dass es beim Systemstart automatisch ausgeführt wird.

Redis verifizieren

Redis mit Firewalld absichern

In diesem Abschnitt wirst du Firewalld einrichten, um die Redis-Installation zu sichern. Das erreichst du am besten, indem du in firewalld Zonen einrichtest und bestimmte Netzwerke/Subnetze für den Dienst zulässt.

Führe den folgenden Befehl aus, um eine neue Firewalld-Zone mit dem Namen„svcs“ zu erstellen und füge dann die interne Netzwerkschnittstelle in diese Zone ein. In diesem Beispiel wird Redis auf einer internen IP-Adresse unter der Schnittstelle„enp0s8“ ausgeführt. Du musst deine Schnittstelle zu der Zone„svcs“ hinzufügen.

sudo firewall-cmd --new-zone=svcs --permanent
sudo firewall-cmd --zone=svcs --add-interface=enp0s8 --permanent

Führe nun den folgenden Befehl aus, um dem Netzwerk„192.168.5.1/24“ den Zugriff auf die Ports der Zone„svcs“ zu erlauben.

sudo firewall-cmd --zone=svcs --add-source=192.168.5.1/24

Danach fügst du den Redis-Port„6379/tcp“ zur Zone„svcs“ hinzu und wendest die Änderungen in der Firewalld an.

sudo firewall-cmd --zone=svcs --add-port=6379/tcp
sudo firewall-cmd --runtime-to-permanent

firewalld konfigurieren

Lade die Firewalld mit dem folgenden Befehl neu, um sicherzustellen, dass die neuen Änderungen in der Firewalld übernommen wurden.

sudo firewall-cmd --reload

Führe abschließend den folgenden Befehl aus, um die Liste der aktiven Zonen in der Firewalld zu überprüfen. Du solltest sehen, dass die Zone„svcs“ aktiv ist.

sudo firewall-cmd --get-active-zones

Du kannst nun die Liste der Regeln überprüfen, die in der Zone „svcs“ verfügbar sind. Wenn du erfolgreich bist, solltest du den Redis-Port„6379/tcp“ im Abschnitt Ports und das Subnetz„192.168.5.1/24“ in der Source sehen.

sudo firewall-cmd --list-all --zone=svcs

firewalld verify

Redis konfigurieren

In diesem Abschnitt wirst du die Redis-Installation konfigurieren, indem du die Standardkonfiguration von Redis„/etc/redis/redis.conf“ änderst.

Öffne die Redis-Konfigurationsdatei„/etc/redis/redis.conf“ mit dem unten stehenden nano-Editor-Befehl.

sudo nano /etc/redis/redis.conf

Ändere den Wert des Parameters„bind“ mit der internen IP-Adresse des Servers. In diesem Beispiel wird Redis mit der lokalen IP-Adresse„192.168.5.21“ betrieben.

bind 192.168.5.21

Bindungsadresse einrichten

Deaktiviere nun den„protected-mode„, indem du den Wert des Parameters auf„no“ änderst. Um Fernverbindungen von deiner Anwendung zum Redis-Server zu ermöglichen, musst du den „protected-mode“ deaktivieren.

protected-mode no

Geschützten Modus deaktivieren

Unter AlmaLinux ist der Standarddienstmanager „systemd“. Dekommentiere den Parameter„supervised“ und ändere den Standardwert in„systemd„, um die Integration von Redis mit systemd zu ermöglichen.

supervised systemd

systemd-Integration

Schließlich musst du noch den Parameter„aclfile“ auskommentieren, um die ACLs (Access Control Lists) von Redis über eine Datei zu aktivieren. Seit Redis v6 wird die Verwendung von ACLs zur Absicherung von Redis empfohlen. Redis unterstützt verschiedene Methoden zur Verwendung von ACLs: Du kannst ACLs über die Redis-Shell oder eine definierte ACLs-Datei erstellen. In diesem Beispiel werden ACLs über die Datei verwendet.

aclfile /etc/redis/users.acl

Acl aktivieren

Speichere und schließe die Datei, wenn du fertig bist.

Führe nun den folgenden Befehl aus, um die ACLs-Datei „/etc/redis/users.acl“ zu erstellen.

touch /etc/redis/users.acl

Danach führst du den folgenden Befehl aus, um den Redis-Dienst neu zu starten und die vorgenommenen Änderungen anzuwenden.

sudo systemctl restart redis

Damit ist Redis mit den neuen Konfigurationen einsatzbereit. Im nächsten Schritt überprüfst du deine Redis-Konfiguration mit dem Redis CLI.

Verbinde dich mit dem Redis-Server mit dem unten stehenden Befehl „redis-cli“. In diesem Beispiel gibst du die IP-Adresse des Redis-Servers an.

redis-cli -h 192.168.5.21

Sobald du eingeloggt bist, führe den folgenden Befehl aus, um sicherzustellen, dass die Verbindung erfolgreich ist. Du solltest die Ausgabe„test redis“ sehen, wenn die Verbindung erfolgreich ist.

PING "test redis"

mit Redis verbinden

Als Nächstes führst du die folgenden Abfragen aus, um die aktuellen Redis-Konfigurationen zu ermitteln. In diesem Beispiel überprüfst du die Einstellungen„bind„,„supervised“ und “ protected-mode„.

CONFIG GET bind
CONFIG GET supervised
CONFIG GET protected-mode

Wenn du erfolgreich bist, sollte die Konfiguration mit den Einstellungen übereinstimmen, die du zuvor vorgenommen hast.

Konfiguration prüfen

Zum Schluss führst du die folgende ACL-Abfrage aus, um die Liste der verfügbaren ACLs auf Redis zu erhalten.

ACL LIST

Die Standard-Redis-Installation hat den ACL-Benutzer„default„, die Authentifizierung ist„nopass“ oder Anmeldung ohne Passwort und die Berechtigung„+@all„, die es dem„default„-Benutzer erlaubt, alle Redis-Abfragen auszuführen.

Liste acls

An diesem Punkt hast du die Grundkonfiguration von Redis abgeschlossen. Im nächsten Schritt beschäftigst du dich mit der Konfiguration von Redis ACLs (Access Control Lists) zur Sicherung der Redis-Installation.

Redis mit ACLs (Zugriffskontrolllisten) absichern

Seit Redis 6.x ist die beste Möglichkeit, Redis zu sichern, die Implementierung von ACLs (Access Control Lists). Damit kannst du Benutzer und Berechtigungen auf dem Redis-Server einrichten, was die Parameter „requirepass“ und „rename-command“ der alten Redis-Version überflüssig macht.

Du kannst ACLs auf Redis mit zwei verschiedenen Methoden einrichten:

  • Einrichten von ACLs über ACL-Befehl\
  • Einrichten von ACLs über eine externe ACL-Datei

Mit dem Redis-Server, den du konfiguriert hast, richtest du Redis ACLs über eine externe ACL-Datei ein.

Öffne zunächst die ACL-Datei „/etc/redis/users.acl“ mit dem folgenden Editor-Befehl nano.

sudo nano /etc/redis/users.acl

Füge die folgenden Konfigurationen ein, um zwei Benutzer für Redis anzulegen.

user alice on -DEBUG +@all ~* >AliceP4ssw0rd
user bob on +@all -@dangerous ~* >BobP4ssw0rd

Speichere die Datei und beende den Editor, wenn du fertig bist.

acls-Benutzer anlegen

Mit dieser Konfiguration erstellst du zwei Benutzer:

  • Benutzer alice mit dem Passwort‚AliceP4ssw0rd‚ und der Erlaubnis, alle Abfragen‚+@all‚ außer DEBUG‚-DEBUG‚ auszuführen, sowie die Erlaubnis, Abfragen gegen alle verfügbaren Schlüsselwerte‚~*‚ auszuführen, die verfügbar sind.
  • Ein Benutzer bob mit dem Passwort‚BobP4ssw0rd‚ und dem Recht, alle Abfragen‚+@all‚ außer‚-@dangerous‚ auszuführen. Die Befehlskategorie‚-@dangerous‚ umfasst FLUSHALL, MIGRATE, RESTORE, SORT, KEYS, CLIENT, DEBUG, INFO, CONFIG, SAVE, REPLICAOF und viele mehr. Außerdem darf dieser Benutzer Abfragen auf alle verfügbaren Schlüsselwerte auf dem Redis-Server stellen.

Hier findest du die vollständige Liste der Befehlskategorien auf Redis.

Führe nun den folgenden systemctl-Befehl aus, um den Redis-Dienst neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart redis

Sobald Redis neu gestartet ist, verbindest du dich mit dem Redis-Server, indem du den folgenden redis-cli-Befehl ausführst.

redis-cli -h 192.168.5.21

Sobald du eingeloggt bist, führe die folgende ACL-Abfrage aus, um die Liste der verfügbaren Benutzer auf Redis zu überprüfen.

ACL LIST

Zu diesem Zeitpunkt solltest du die drei Benutzer alice, bob und default sehen.

Benutzer auflisten

Mit der folgenden Abfrage kannst du auch den detaillierten Benutzer auf Redis überprüfen.

ACL GETUSER alice
ACL GETUSER bob

Du solltest sehen, dass der Benutzer alice alle verfügbaren Befehle in Redis mit der Befehlsgruppe„+@all“ ausführen darf.

Benutzerdetails abrufen alice

Beim Benutzer bob siehst du, dass der Befehl„+@all“ erlaubt ist, aber auch die Befehlsgruppe„dangerous“ deaktiviert ist.

Benutzerdetails erhalten bob

Standard-Redis-Benutzer deaktivieren

Wenn die neuen Benutzer alice und bob erstellt sind, musst du den„Standard„-Benutzer mit der folgenden Abfrage deaktivieren.

ACL SETUSER default OFF

Überprüfe dann erneut die Liste der verfügbaren Benutzer in Redis mit dem folgenden Befehl.

ACL LIST

Du solltest den Benutzer„default“ mit dem Status „off“ oder „disabled“ wie folgt erwarten:

Standardbenutzer deaktivieren

Drücke Strg+d, um die Redis-Shell zu verlassen.

Melde dich danach mit dem folgenden Befehl erneut bei Redis an.

redis-cli -h 192.168.5.21

Dann gibst du die folgende PING-Abfrage ein, um die aktuelle Verbindung zu überprüfen.

PING

Wenn der Redis„Standard„-Benutzer deaktiviert ist, solltest du eine Fehlermeldung wie die folgende erhalten – Du musst ein authentifizierter Benutzer sein, um Abfragen zu starten.

Standardbenutzer deaktivieren

Benutzer alice verifizieren

Als Nächstes verifizierst du die neuen Redis-Benutzer alice und bob, die du angelegt hast.

Führe den folgenden Befehl aus, um dich als Benutzer „alice“ zu authentifizieren. Wenn du erfolgreich bist, solltest du die Ausgabe „OK“ erhalten.

AUTH alice AliceP4ssw0rd

Führe nun die folgenden Abfragen aus, um sicherzustellen, dass du über den Benutzer alice bei Redis authentifiziert bist.

PING
ACL WHOAMI

Du solltest die Meldung PONG and authenticated as user alice sehen.

Führe nun die folgenden Abfragen aus, um sicherzustellen, dass der Benutzer alice alle verfügbaren Abfragen, einschließlich der Redis-Verwaltung, ausführen kann.

CONFIG GET bind
CONFIG GET supervised

Bei Erfolg solltest du eine Ausgabe der aktuellen Redis-Konfiguration für die Parameter bind und supervised erhalten.

Testbenutzer alice

Überprüfe den Benutzer bob

Führe die folgende Abfrage aus, um dich als Benutzer bob anzumelden und zu authentifizieren.

AUTH bob BobP4ssw0rd

Nach der Authentifizierung führst du die folgende PING-Abfrage aus. Wenn sie erfolgreich war, solltest du die Meldung PONG erhalten.

PING

Als Nächstes muss der Benutzer bob in der Redis ACL-Datei die Befehlskategorie‚-@dangerous‚ haben, die verhindert, dass dieser Benutzer einige gefährliche Befehle wie FLUSHALL, CONFIG und viele andere auf dem Redis-Server ausführen kann.

Wenn du die folgenden Abfragen als Benutzer bob ausführst, solltest du eine Ausgabe wie „NOPERM“ erhalten, was bedeutet, dass der Benutzer bob keine Berechtigung zur Ausführung des Befehls hat.

FLUSHALL
CONFIG GET bind
SAVE

Testbenutzer bob

Damit hast du Redis erfolgreich mit ACLs (Access Control Lists) über die ACL-Datei abgesichert.

Fazit

Herzlichen Glückwunsch! Du hast Redis nun erfolgreich auf AlmaLinux 9 installiert und gelernt, wie du ACLs (Access Control Lists) über eine ACL-Datei einrichtest, um die Redis-Installation zu sichern. Außerdem hast du Redis mit Firewalld gesichert, indem du eine spezielle Zone für den Redis-Dienst eingerichtet hast.

Das könnte dich auch interessieren …