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:
- sudo apt update
Installieren Sie anschließend Redis, indem Sie Folgendes eingeben:
- sudo apt install redis-server
Öffnen Sie als Nächstes die Redis-Konfigurationsdatei mit Ihrem bevorzugten Texteditor:
- sudo nano /etc/redis/redis.conf
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:
- sudo systemctl restart redis.service
Um zu testen, ob Redis richtig funktioniert, stellen Sie mit dem Redis-Befehlszeilenclient redis-cli
eine Verbindung zum Server her:
- redis-cli
Testen Sie in der folgenden Eingabeaufforderung die Verbindung mit dem Befehl ping
:
- 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:
- set test "It's working!"
OutputOK
Rufen Sie den Wert ab, indem Sie Folgendes eingeben:
- get test
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:
- exit
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:
- sudo nano /etc/redis/redis.conf
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:
- sudo systemctl restart redis.service
Öffnen Sie den Redis-Client, um zu testen, ob das Passwort funktioniert:
- redis-cli
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:
- set key1 10
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:
- auth your_redis_password
Redis bestätigt:
OutputOK
Danach wird der vorherige Befehl erfolgreich ausgeführt:
- set key1 10
OutputOK
get key1
fragt Redis nach dem Wert des neuen Schlüssels.
- get key1
Output"10"
Nachdem Sie die Bestätigung haben, dass Sie Befehle im Redis-Client nach Authentifizierung ausführen können, beenden Sie redis-cli
:
- quit
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:
- sudo nano /etc/redis/redis.conf
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:
- sudo systemctl restart redis.service
Um den neuen Befehl zu testen, gehen Sie in die Redis-Befehlszeile:
- redis-cli
Führen Sie dann eine Authentifizierung durch:
- auth your_redis_password
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:
- config get requirepass
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:
- asc12_config get requirepass
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!