Website-Suche

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


Redis ist ein beliebter Open-Source-In-Memory-Schlüsselwert-Datenspeicher. Es unterstützt verschiedene Datenstrukturen wie Hash, Listen, Mengen, Strings und viele mehr. Redis ist nur für die Ausführung in einer vertrauenswürdigen Umgebung konzipiert und kann als Datenbank, Cache und Nachrichtenbroker verwendet werden. Redis ist weithin für seine breite Unterstützung, hohe Leistung, hohe Verfügbarkeit und Flexibilität bekannt.

Sie können Redis als eigenständige Version für kleine Bereitstellungen installieren. Für große Bereitstellungen stellen sie zusätzliche Komponenten wie Redis Sentinel für Hochverfügbarkeit und Redis Cluster für die Partitionierung von Daten auf mehreren Redis-Knotenservern bereit.

Dieses Tutorial zeigt Ihnen, wie Sie Redis auf dem AlmaLinux 9-Server installieren und konfigurieren. Darüber hinaus zeigen wir Ihnen auch, wie Sie Redis über Redis ACLs (Access Control Lists) und Firewalld sichern.

Voraussetzungen

Um dieses Tutorial abzuschließen, müssen Sie über Folgendes verfügen:

  • Ein 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-Administratorrechten.
  • Eine konfigurierte, aktive und betriebsbereite Firewall.

Jetzt lasst uns eintauchen.

Redis installieren

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

Führen Sie vor der Installation von Redis den folgenden Befehl aus, um den Paketcache neu zu erstellen und die neueste Version der Paketinformationen abzurufen.

sudo dnf makecache

Führen Sie nun den folgenden dnf-Befehl aus, um Redis zu installieren. Geben Sie y ein, wenn Sie dazu aufgefordert werden, und drücken Sie dann die EINGABETASTE, um fortzufahren.

sudo dnf install redis

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

sudo systemctl start redis
sudo systemctl enable redis

Überprüfen Sie abschließend den Redis-Dienststatus mit dem folgenden Befehl.

sudo systemctl is-enabled redis
sudo systemctl status redis

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

Redis mit Firewalld sichern

In diesem Abschnitt richten Sie firewalld ein, um die Redis-Installation zu sichern. Und der beste Weg, dies zu erreichen, besteht darin, Zonen auf Firewalld zu erstellen und bestimmte Netzwerke/Subnetze für den Dienst zuzulassen.

Führen Sie den folgenden Befehl aus, um eine neue Firewall-Zone mit dem Namen „svcs“ zu erstellen, und fügen Sie ihr dann die interne Netzwerkschnittstelle hinzu. In diesem Beispiel wird Redis auf einer internen IP-Adresse unter der Schnittstelle „enp0s8“ ausgeführt. Sie müssen Ihre Schnittstelle zur Zone „svcs“ hinzufügen.

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

Führen Sie nun den folgenden Befehl aus, um dem Netzwerk „192.168.5.1/24“ den Zugriff auf Ports in der Zone „svcs“ zu ermöglichen.

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

Fügen Sie anschließend den Redis-Port „6379/tcp“ zur Zone „svcs“ hinzu und wenden Sie dann die Änderungen auf die Firewall an.

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

Laden Sie nun den Firewalld mit dem folgenden Befehl neu, um sicherzustellen, dass neue Änderungen auf den Firewalld angewendet werden.

sudo firewall-cmd --reload

Führen Sie abschließend den folgenden Befehl aus, um die Liste der aktiven Zonen auf firewalld zu überprüfen. Und Sie sollten sehen, dass die Zone „svcs“ aktiv ist.

sudo firewall-cmd --get-active-zones

Sie können jetzt die Liste der Regeln überprüfen, die in der Zone „svcs“ verfügbar sind. Bei Erfolg sollten Sie den Redis-Port „6379/tcp“ im Abschnitt „Ports“ und das Subnetz „192.168.5.1/24“ in der Quelle sehen.

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

Redis konfigurieren

In diesem Abschnitt konfigurieren Sie die Redis-Installation, indem Sie die standardmäßige Redis-Konfiguration „/etc/redis/redis.conf“ ändern.

Öffnen Sie die Redis-Konfigurationsdatei „/etc/redis/redis.conf“ mit dem folgenden Nano-Editor-Befehl.

sudo nano /etc/redis/redis.conf

Ändern Sie den Wert der Parameter „bind“ mit der internen IP-Adresse des Servers. In seinem Beispiel wird Redis unter einer lokalen IP-Adresse „192.168.5.21“ ausgeführt.

bind 192.168.5.21

Deaktivieren Sie nun den „protected-mode“, indem Sie den Wert des Parameters auf „no“ ändern. Um Remoteverbindungen von Ihrer Anwendung zum Redis-Server zuzulassen, müssen Sie den „geschützten Modus“ deaktivieren.

protected-mode no

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

supervised systemd

Entfernen Sie abschließend das Kommentarzeichen für den Parameter „aclfile“, um die ACLs (Access Control Lists) von Redis per Datei zu aktivieren. Da Redis v6 die Verwendung von ACLs eine empfohlene Methode zur Sicherung von Redis ist und Redis verschiedene Methoden zur Verwendung von ACLs unterstützt, können Sie ACLs über die Redis-Shell oder eine definierte ACLs-Datei erstellen. In diesem Beispiel werden ACLs per Datei verwendet.

aclfile /etc/redis/users.acl

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Führen Sie nun den folgenden Befehl aus, um die ACLs-Datei '/etc/redis/users.acl' zu erstellen.

touch /etc/redis/users.acl

Führen Sie anschließend den folgenden Befehl aus, um den Redis-Dienst neu zu starten und die vorgenommenen Änderungen zu übernehmen.

sudo systemctl restart redis

Damit ist Redis mit neuen Konfigurationen betriebsbereit. Der nächste Schritt besteht darin, Ihre Redis-Konfiguration über die Redis-CLI zu überprüfen.

Stellen Sie mit dem folgenden Befehl „redis-cli“ eine Verbindung zum Redis-Server her. In diesem Beispiel geben Sie die IP-Adresse für den Redis-Server an.

redis-cli -h 192.168.5.21

Führen Sie nach der Anmeldung den folgenden Befehl aus, um sicherzustellen, dass die Verbindung erfolgreich ist. Sie sollten damit rechnen, dass die Ausgabe „test redis“ angezeigt wird, wenn die Verbindung erfolgreich ist.

PING "test redis"

Führen Sie als Nächstes die folgenden Abfragen aus, um die aktuellen Redis-Konfigurationen abzurufen. In diesem Beispiel überprüfen Sie die Einstellungen „bind“, „supervised“ und protected-mode“.

CONFIG GET bind
CONFIG GET supervised
CONFIG GET protected-mode

Bei Erfolg sollte die Konfiguration mit den zuvor vorgenommenen Einstellungen abgeglichen werden.

Führen Sie abschließend die folgende ACL-Abfrage aus, um die Liste der verfügbaren ACLs auf Redis abzurufen.

ACL LIST

Sie sollten damit rechnen, dass die Ausgabe so aussieht: Die standardmäßige Redis-Installation kommt mit dem ACL-Benutzer „default“, die Authentifizierung ist „nopass“ oder Sie können sich ohne Passwort anmelden und die Berechtigung „+@all“, die es dem „default“-Benutzer ermöglicht, beliebige Redis-Abfragen auszuführen.

An diesem Punkt haben Sie nun die Grundkonfiguration von Redis abgeschlossen. Im nächsten Schritt befassen Sie sich mit der Konfiguration von Redis-ACLs (Zugriffskontrolllisten) zur Sicherung der Redis-Installation.

Redis mit ACLs (Access Control Lists) sichern

Seit Redis 6.x ist die Implementierung von ACLs (Access Control Lists) die beste Möglichkeit, Redis zu sichern. Dadurch können Sie Benutzer und Berechtigungen auf dem Redis-Server einrichten. Dadurch können die Parameter „requirepass“ und „rename-command“ in der alten Redis-Version veraltet sein.

Sie können ACLs auf Redis mit zwei verschiedenen Methoden einrichten:

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

Mit dem von Ihnen konfigurierten Redis-Server richten Sie Redis-ACLs über eine externe ACL-Datei ein.

Öffnen Sie zunächst die ACL-Datei '/etc/redis/users.acl' mit dem folgenden Nano-Editor-Befehl.

sudo nano /etc/redis/users.acl

Fügen Sie die folgenden Konfigurationen ein, um zwei Benutzer für Redis zu erstellen.

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

Speichern Sie die Datei und beenden Sie den Editor, wenn Sie fertig sind.

Mit dieser Konfiguration erstellen Sie zwei Benutzer:

  • Benutzer alice mit Passwort „AliceP4ssw0rd“ und berechtigt, alle Abfragen „+@all“ außer DEBUG „-DEBUG auszuführen >‘ und erlaubt außerdem die Ausführung von Abfragen für alle verfügbaren Schlüsselwerte ‚~*‘.
  • Ein Benutzer bob mit dem Passwort „BobP4ssw0rd“ und erlaubte dem Benutzer bob, 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 an alle verfügbaren Schlüsselwerte auf dem Redis-Server stellen.

Holen Sie sich die vollständige Liste der Befehlskategorien auf Redis.

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

sudo systemctl restart redis

Stellen Sie nach dem Neustart von Redis eine Verbindung zum Redis-Server her, indem Sie den folgenden redis-cli-Befehl unten verwenden.

redis-cli -h 192.168.5.21

Führen Sie nach der Anmeldung die folgende ACL-Abfrage aus, um die Liste der verfügbaren Benutzer auf Redis zu überprüfen.

ACL LIST

Zu diesem Zeitpunkt sollten Sie mit den drei Benutzern Alice, Bob und Default rechnen.

Sie können den detaillierten Benutzer auch auf Redis mithilfe der folgenden Abfrage überprüfen.

ACL GETUSER alice
ACL GETUSER bob

Sie sollten sehen, dass der Benutzer alice alle verfügbaren Befehle auf Redis mit der Befehlsgruppe „+@all“ ausführen darf.

Für den Benutzer bob sehen Sie den erlaubten Befehl „+@all“, aber auch die deaktivierte Befehlsgruppe „gefährlich“.

Deaktivieren Sie den standardmäßigen Redis-Benutzer

Nachdem der neue Benutzer „Alice und Bob“ erstellt wurde, müssen Sie den Benutzer „default“ mithilfe der folgenden Abfrage deaktivieren.

ACL SETUSER default OFF

Überprüfen Sie dann erneut die Liste der verfügbaren Benutzer auf Redis, indem Sie den folgenden Befehl verwenden.

ACL LIST

Sie sollten den Benutzer „default“ mit dem Status „off“ oder „deaktiviert“ wie folgt erwarten:

Drücken Sie Strg+D, um die Redis-Shell zu verlassen.

Melden Sie sich anschließend mit dem folgenden Befehl erneut bei Redis an.

redis-cli -h 192.168.5.21

Geben Sie dann die folgende PING-Abfrage ein, um die aktuelle Verbindung zu überprüfen.

PING

Wenn der Redis-Benutzer „Standard“ deaktiviert ist, sollten Sie eine Fehlermeldung wie die folgende erhalten: Sie müssen ein authentifizierter Benutzer sein, um Abfragen ausführen zu können.

Überprüfen Sie den Benutzer alice

Als Nächstes überprüfen Sie die neuen Redis-Benutzer alice und bob, die Sie erstellt haben.

Führen Sie den folgenden Befehl aus, um sich als Benutzer „alice“ zu authentifizieren. Bei Erfolg sollten Sie die Ausgabe „OK“ erhalten.

AUTH alice AliceP4ssw0rd

Führen Sie nun die folgenden Abfragen aus, um sicherzustellen, dass Sie über den Benutzer alice bei Redis authentifiziert sind.

PING
ACL WHOAMI

Sie sollten damit rechnen, die Nachricht PONG zu sehen und sich als Benutzer alice zu authentifizieren.

Führen Sie nun die folgenden Abfragen aus, um sicherzustellen, dass der Benutzer Alice alle verfügbaren Abfragen ausführen kann, einschließlich der zugehörigen Redis-Verwaltung.

CONFIG GET bind
CONFIG GET supervised

Bei Erfolg sollten Sie eine Ausgabe der aktuellen Redis-Konfiguration für die Parameterbindung und -überwachung erhalten.

Überprüfen Sie den Benutzer bob

Führen Sie die folgende Abfrage aus, um sich als Benutzer bob anzumelden und zu authentifizieren.

AUTH bob BobP4ssw0rd

Führen Sie nach der Authentifizierung die folgende PING-Abfrage aus. Bei Erfolg sollten Sie die Meldung PONG erhalten.

PING

Als nächstes fügt der Benutzer in der Redis-ACL-Datei die Befehlskategorie „-@dangerous“ ein, die diesen Benutzer daran hindert, einige gefährliche Befehle wie FLUSHALL, CONFIG und viele mehr auf dem Redis-Server auszuführen.

Wenn Sie die folgenden Abfragen als Benutzer bob ausführen, sollten Sie eine Ausgabe wie „NOPERM“ erhalten, was bedeutet, dass der Benutzer bob keine Berechtigung zum Ausführen des Befehls hat.

FLUSHALL
CONFIG GET bind
SAVE

Damit haben Sie Redis nun erfolgreich mit ACLs (Access Control Lists) per ACL-Datei gesichert.

Abschluss

Glückwunsch! Sie haben Redis nun erfolgreich auf AlmaLinux 9 installiert. Sie haben außerdem gelernt, wie Sie ACLs (Zugriffskontrolllisten) über eine ACL-Datei einrichten, um die Redis-Installation zu sichern. Darüber hinaus haben Sie Redis auch mit firewalld gesichert, indem Sie eine spezielle Zone für den Redis-Dienst erstellt haben.

Verwandte Artikel: