Manager, Developer Education
Redis ist ein In-Memory-Schlüsselwertspeicher, der für seine Flexibilität, Leistung und breite Sprachunterstützung bekannt ist. Dieses Quickstart-Tutorial zeigt, wie Sie Redis auf einem Ubuntu 20.04-Server installieren, konfigurieren und sichern.
Um diesen Leitfaden auszuführen, benötigen Sie Zugriff auf einen Ubuntu 20.04-Server, der einen non-root user mit sudo
-Berechtigungen und eine mit ufw
konfigurierte Firewall aufweist. Hierzu können Sie unserem Leitfaden zur Ersteinrichtung eines Servers unter Ubuntu 20.04 folgen.
Als Erstes aktualisieren Sie Ihren lokalen apt
-Paketcache:
Installieren Sie anschließend Redis, indem Sie Folgendes eingeben:
Öffnen Sie als Nächstes die Redis-Konfigurationsdatei mit Ihrem bevorzugten Texteditor:
Suchen Sie in der Datei nach der Anweisung supervised
, mit der Sie ein Init-System zur Verwaltung von Redis als Dienst deklarieren können. Da Ubuntu das Init-System systemd verwendet, ändern Sie den Wert von no
zu systemd
:
. . .
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
# supervised no - no supervision interaction
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
# supervised auto - detect upstart or systemd method based on
# UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
# They do not enable continuous liveness pings back to your supervisor.
supervised systemd
. . .
Wenn Sie fertig sind, speichern und schließen Sie die Datei. Wenn Sie nano
zum Bearbeiten der Datei verwendet haben, drücken Sie dazu STRG + X
, Y
und dann ENTER
.
Starten Sie dann den Redis-Dienst neu, damit die Änderungen, die Sie in der Konfigurationsdatei vorgenommen haben, angewendet werden:
Um zu testen, ob Redis richtig funktioniert, stellen Sie mit dem Redis-Befehlszeilenclient redis-cli
eine Verbindung zum Server her:
Testen Sie in der folgenden Eingabeaufforderung die Verbindung mit dem Befehl ping
:
OutputPONG
Diese Ausgabe bestätigt, dass die Serververbindung hergestellt ist. Als Nächstes überprüfen Sie, ob Sie Schlüssel festlegen können, indem Sie Folgendes ausführen:
OutputOK
Rufen Sie den Wert ab, indem Sie Folgendes eingeben:
Wenn alles funktioniert, können Sie den gespeicherten Wert abrufen:
Output"It's working!"
Nachdem Sie die Bestätigung haben, dass Sie den Wert abrufen können, beenden Sie die Redis-Eingabeaufforderung, um wieder zur Shell zu gelangen:
Sie können ein Redis-Passwort direkt in der Konfigurationsdatei von Redis, /etc/redis/redis.conf
., konfigurieren. Öffnen Sie die Datei erneut mit Ihrem bevorzugten Editor:
Scrollen Sie zum Abschnitt SECURITY
und suchen Sie eine Anweisung mit der Kommentierung:
. . .
# requirepass foobared
. . .
Heben Sie die Kommentierung auf, indem Sie #
entfernen, und ändern Sie foobared
in ein sicheres Passwort:
. . .
requirepass your_redis_password
. . .
Nach dem Einrichten des Passworts speichern und schließen Sie die Datei. Starten Sie erneut Redis:
Öffnen Sie den Redis-Client, um zu testen, ob das Passwort funktioniert:
Folgendes zeigt eine Sequenz von Befehlen, mit denen getestet wird, ob das Redis-Passwort funktioniert. Der erste Befehl versucht, einen Schlüssel auf einen Wert vor der Authentifizierung einzustellen:
Das funktioniert nicht, da Sie keine Authentifizierung durchgeführt haben. Daher gibt Redis einen Fehler aus:
Output(error) NOAUTH Authentication required.
Der nächste Befehl führt die Authentifizierung mit dem Passwort durch, das in der Redis-Konfigurationsdatei angegeben ist:
Redis bestätigt:
OutputOK
Danach wird der vorherige Befehl erfolgreich ausgeführt:
OutputOK
get key1
fragt Redis nach dem Wert des neuen Schlüssels.
Output"10"
Nachdem Sie die Bestätigung haben, dass Sie Befehle im Redis-Client nach Authentifizierung ausführen können, beenden Sie redis-cli
:
Die andere in Redis integrierte Sicherheitsfunktion besteht in der Umbenennung oder vollständigen Deaktivierung bestimmter Befehle, die als gefährlich eingestuft werden. Einige der Befehle, die als gefährlich eingestuft werden, sind: FLUSHDB
, FLUSHALL
, KEYS
, PEXPIRE
, DEL
, CONFIG
, SHUTDOWN
, BGREWRITEAOF
, BGSAVE
, SAVE
, SPOP
, SREM
, RENAME
und DEBUG
. Die Deaktivierung oder Umbenennung dieser und anderer Befehle erschwert es unautorisierten Benutzern, Ihre Daten anders zu konfigurieren, zu zerstören oder anderweitig zu vernichten.
Um Redis-Befehle umzubenennen oder zu deaktivieren, öffnen Sie erneut die Konfigurationsdatei:
Achtung: Die folgenden Schritte zur Deaktivierung und Umbenennung von Befehlen sind Beispiele. Sie sollten nur die Befehle deaktivieren oder umbenennen, die für Sie sinnvoll sind. Sie können die vollständige Liste der Befehle unter redis.io/commands selbst überprüfen und eruieren, wie diese missbraucht werden könnten.
Um einen Befehl zu deaktivieren, benennen Sie ihn einfach wie unten gezeigt in eine leere Zeichenfolge um (gekennzeichnet durch ein Paar Anführungszeichen ohne Zeichen dazwischen):
. . .
# It is also possible to completely kill a command by renaming it into
# an empty string:
#
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""
. . .
Zur Umbenennung eines Befehls geben Sie diesem wie bei den unten gezeigten Beispielen einen anderen Namen. Umbenannte Befehle sollten für andere schwierig zu erraten und für Sie selbst leicht zu merken sein:
. . .
# rename-command CONFIG ""
rename-command SHUTDOWN SHUTDOWN_MENOT
rename-command CONFIG ASC12_CONFIG
. . .
Speichern Sie Ihre Änderungen und schließen Sie die Datei.
Nach der Umbenennung eines Befehls wenden Sie die Änderung an, indem Sie Redis neu starten:
Um den neuen Befehl zu testen, gehen Sie in die Redis-Befehlszeile:
Führen Sie dann eine Authentifizierung durch:
OutputOK
Wenn Sie den Befehl CONFIG
wie im vorausgehenden Beispiel in ASC12_CONFIG
umbenannt haben, probieren Sie nun den ursprünglichen Befehl CONFIG
aus. Das sollte fehlschlagen, da Sie diesen umbenannt haben:
Output(error) ERR unknown command `config`, with args beginning with:
Der umbenannte Befehl kann jedoch erfolgreich aufgerufen werden. Die Groß- und Kleinschreibung muss dabei nicht beachtet werden:
Output1) "requirepass"
2) "your_redis_password"
In diesem Quickstart-Tutorial haben Sie Redis installiert und konfiguriert, die korrekte Funktion Ihrer Redis-Installation überprüft und die integrierten Sicherheitsfunktionen genutzt, um sie weniger anfällig für Angriffe böswilliger Akteure zu machen.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!