Einführung
In diesem Lab lernen Sie, wie Sie die Sicherheit Ihres Redis-Servers verbessern können. Wir behandeln das Setzen eines Passworts, um unbefugten Zugriff zu verhindern, und das Deaktivieren spezifischer Befehle, um potenzielle Missbräuche einzuschränken. Am Ende dieses Labs werden Sie eine sicherere Redis-Instanz haben.
Passwort mit CONFIG SET requirepass setzen
Standardmäßig erfordert Redis kein Passwort, was es anfällig macht. Das Setzen eines Passworts ist der erste und wichtigste Schritt zur Sicherung Ihres Redis-Servers. Wir werden dazu den Befehl CONFIG SET requirepass verwenden.
Der Befehl CONFIG SET ermöglicht es Ihnen, Redis-Konfigurationseinstellungen dynamisch zu ändern. Die Einstellung requirepass gibt das Passwort an, das Clients bereitstellen müssen, um eine Verbindung zum Server herzustellen.
Lassen Sie uns beginnen:
Verbinden Sie sich mit dem Redis-Server über
redis-cli:Öffnen Sie ein Terminal in der LabEx VM. Das Standardverzeichnis ist
~/project. Führen Sie den folgenden Befehl aus:redis-cliDadurch werden Sie mit dem Redis-Server verbunden, der auf dem Standard-Host (127.0.0.1) und Port (6379) läuft. Sie sollten die Eingabeaufforderung
127.0.0.1:6379>sehen.127.0.0.1:6379>Setzen Sie das Passwort mit dem Befehl
CONFIG SET requirepass:Wir setzen das Passwort auf
mysecretpassword. Für Produktionsumgebungen wählen Sie ein starkes, eindeutiges Passwort.CONFIG SET requirepass mysecretpasswordSie sollten die folgende Ausgabe sehen:
OKDies bestätigt, dass das Passwort gesetzt wurde.
Beenden Sie nun
redis-cli, indem Sieexiteingeben und Enter drücken. Dadurch wird sichergestellt, dass Ihre Befehle protokolliert werden.exitVersuchen Sie, einen Befehl ohne Authentifizierung auszuführen:
Öffnen Sie ein neues Terminal und verbinden Sie sich mit dem Redis-Server über
redis-cli:redis-cliVersuchen Sie, einen einfachen Befehl wie
PINGauszuführen:PINGSie sollten eine Fehlermeldung erhalten:
(error) NOAUTH Authentication required.Dies zeigt an, dass nun eine Authentifizierung erforderlich ist.
Beenden Sie die
redis-cli:Um sicherzustellen, dass der Befehl protokolliert wird, beenden Sie die
redis-cli, indem Sieexiteingeben oderStrg+Ddrücken.exitDies ist wichtig, damit der Verifizierungsschritt korrekt funktioniert.
Authentifizierung mit dem AUTH-Befehl
Nachdem wir ein Passwort gesetzt haben, lernen wir nun, wie wir uns mit dem Redis-Server über den Befehl AUTH authentifizieren können. Dieser Befehl erfordert das Passwort, das Sie im vorherigen Schritt gesetzt haben.
Verbinden Sie sich mit dem Redis-Server über
redis-cli:Öffnen Sie ein Terminal in der LabEx VM. Das Standardverzeichnis ist
~/project. Führen Sie den folgenden Befehl aus:redis-cliSie sollten die Eingabeaufforderung
127.0.0.1:6379>sehen.Authentifizieren Sie sich mit dem
AUTH-Befehl:Verwenden Sie den Befehl
AUTH, gefolgt von dem zuvor gesetzten Passwort:AUTH mysecretpasswordWenn die Authentifizierung erfolgreich ist, sehen Sie:
OKFühren Sie einen Befehl nach der Authentifizierung aus:
Nachdem Sie sich authentifiziert haben, versuchen Sie den
PING-Befehl erneut:PINGSie sollten die erwartete Antwort erhalten:
PONGBeenden Sie die
redis-cli:Beenden Sie die
redis-cli, indem Sieexiteingeben oderStrg+Ddrücken.exit
Einschränkung gefährlicher Befehle
Redis bietet viele Befehle, aber einige können in bestimmten Umgebungen riskant sein. Obwohl wir Befehle nicht dynamisch mit CONFIG SET deaktivieren können (da rename-command einen Server-Neustart erfordert), können wir das Konzept der Befehlssicherheit demonstrieren, indem wir zeigen, wie gefährliche Befehle wie FLUSHALL funktionieren und warum sie in Produktionsumgebungen eingeschränkt werden sollten.
Verbinden Sie sich mit dem Redis-Server über
redis-cli:Öffnen Sie ein Terminal in der LabEx VM. Das Standardverzeichnis ist
~/project. Führen Sie den folgenden Befehl aus:redis-cliSie sollten die Eingabeaufforderung
127.0.0.1:6379>sehen.Authentifizieren Sie sich mit dem
AUTH-Befehl:Authentifizieren Sie sich mit dem Befehl
AUTH, gefolgt von Ihrem Passwort:AUTH mysecretpasswordNach erfolgreicher Authentifizierung sollten Sie die Ausgabe
OKsehen.Erstellen Sie einige Testdaten, um die Gefahr von
FLUSHALLzu demonstrieren:SET testkey "important data" SET anotherkey "more important data"Beide Befehle sollten
OKzurückgeben.Überprüfen Sie, ob die Daten vorhanden sind:
KEYS *Sie sollten beide Schlüssel aufgelistet sehen:
1) "testkey" 2) "anotherkey"Demonstrieren Sie den gefährlichen
FLUSHALL-Befehl:Warnung: Dieser Befehl löscht alle Daten in allen Datenbanken!
FLUSHALLSie sollten sehen:
OKDieser Befehl löscht erfolgreich alle Daten aus allen Datenbanken.
Überprüfen Sie, ob alle Daten gelöscht wurden:
KEYS *Sie sollten sehen:
(empty array)Dies zeigt, warum
FLUSHALLals gefährlich gilt und in der Produktion deaktiviert werden sollte, indemrename-command FLUSHALL ""zur Dateiredis.confhinzugefügt wird.Beenden Sie die
redis-cli:Beenden Sie die
redis-cli, indem Sieexiteingeben oderStrg+Ddrücken.exit
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie die Sicherheit von Redis verbessern können. Sie haben ein Passwort mit CONFIG SET requirepass gesetzt, um unbefugten Zugriff zu verhindern. Sie haben auch gelernt, wie Sie sich mit dem AUTH-Befehl authentifizieren und die gefährliche Natur von Befehlen wie FLUSHALL demonstriert, die alle Daten löschen können. In Produktionsumgebungen sollten solche gefährlichen Befehle deaktiviert werden, indem rename-command FLUSHALL "" zur Datei redis.conf hinzugefügt und der Redis-Server neu gestartet wird. Diese Schritte sind unerlässlich, um Ihren Redis-Server zu sichern.


