Redis Sicherheitseinstellungen

RedisBeginner
Jetzt üben

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:

  1. 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-cli

    Dadurch 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>
  2. 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 mysecretpassword

    Sie sollten die folgende Ausgabe sehen:

    OK

    Dies bestätigt, dass das Passwort gesetzt wurde.

    Beenden Sie nun redis-cli, indem Sie exit eingeben und Enter drücken. Dadurch wird sichergestellt, dass Ihre Befehle protokolliert werden.

    exit
  3. Versuchen Sie, einen Befehl ohne Authentifizierung auszuführen:

    Öffnen Sie ein neues Terminal und verbinden Sie sich mit dem Redis-Server über redis-cli:

    redis-cli

    Versuchen Sie, einen einfachen Befehl wie PING auszuführen:

    PING

    Sie sollten eine Fehlermeldung erhalten:

    (error) NOAUTH Authentication required.

    Dies zeigt an, dass nun eine Authentifizierung erforderlich ist.

  4. Beenden Sie die redis-cli:

    Um sicherzustellen, dass der Befehl protokolliert wird, beenden Sie die redis-cli, indem Sie exit eingeben oder Strg+D drücken.

    exit

    Dies 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.

  1. 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-cli

    Sie sollten die Eingabeaufforderung 127.0.0.1:6379> sehen.

  2. Authentifizieren Sie sich mit dem AUTH-Befehl:

    Verwenden Sie den Befehl AUTH, gefolgt von dem zuvor gesetzten Passwort:

    AUTH mysecretpassword

    Wenn die Authentifizierung erfolgreich ist, sehen Sie:

    OK
  3. Führen Sie einen Befehl nach der Authentifizierung aus:

    Nachdem Sie sich authentifiziert haben, versuchen Sie den PING-Befehl erneut:

    PING

    Sie sollten die erwartete Antwort erhalten:

    PONG
  4. Beenden Sie die redis-cli:

    Beenden Sie die redis-cli, indem Sie exit eingeben oder Strg+D drü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.

  1. 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-cli

    Sie sollten die Eingabeaufforderung 127.0.0.1:6379> sehen.

  2. Authentifizieren Sie sich mit dem AUTH-Befehl:

    Authentifizieren Sie sich mit dem Befehl AUTH, gefolgt von Ihrem Passwort:

    AUTH mysecretpassword

    Nach erfolgreicher Authentifizierung sollten Sie die Ausgabe OK sehen.

  3. Erstellen Sie einige Testdaten, um die Gefahr von FLUSHALL zu demonstrieren:

    SET testkey "important data"
    SET anotherkey "more important data"

    Beide Befehle sollten OK zurückgeben.

  4. Überprüfen Sie, ob die Daten vorhanden sind:

    KEYS *

    Sie sollten beide Schlüssel aufgelistet sehen:

    1) "testkey"
    2) "anotherkey"
  5. Demonstrieren Sie den gefährlichen FLUSHALL-Befehl:

    Warnung: Dieser Befehl löscht alle Daten in allen Datenbanken!

    FLUSHALL

    Sie sollten sehen:

    OK

    Dieser Befehl löscht erfolgreich alle Daten aus allen Datenbanken.

  6. Überprüfen Sie, ob alle Daten gelöscht wurden:

    KEYS *

    Sie sollten sehen:

    (empty array)

    Dies zeigt, warum FLUSHALL als gefährlich gilt und in der Produktion deaktiviert werden sollte, indem rename-command FLUSHALL "" zur Datei redis.conf hinzugefügt wird.

  7. Beenden Sie die redis-cli:

    Beenden Sie die redis-cli, indem Sie exit eingeben oder Strg+D drü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.