Redis ist für viele Dinge nützlich, darunter auch Caching. Sie können Redis auch als primären Datenspeicher oder sogar als Ersatz für eine Datenbank verwenden. Aber wie führt man eine sichere Redis-Installation durch? Die Installation von Redis kann mühsam sein, und wenn Sie nicht vorsichtig sind, könnten Sie viele Fehler erhalten. Glücklicherweise ist dieses Tutorial genau das Richtige für Sie.
In diesem Tutorial erfahren Sie, wie Sie Redis sicher auf Ihrem Linux-System installieren können, zusammen mit einigen Tipps, um gängige Fehler zu vermeiden.
Lesen Sie weiter und ersparen Sie sich die Kopfschmerzen beim Beheben von Redis-Installationsfehlern!
Voraussetzungen
In diesem Tutorial wird eine praktische Demonstration durchgeführt. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben:
- Eine Ubuntu 20.04 LTS-Maschine – Dieses Tutorial verwendet Ubuntu 20.04 LTS, aber die Anweisungen sind für die meisten Linux-Distributionen ähnlich.
Redis Installation mit dem APT-Paketmanager
Es gibt einige Möglichkeiten, Redis auf Ubuntu zu installieren, aber für dieses Tutorial verwenden Sie den APT-Paketmanager, um Redis zu installieren.
Redis ist in C geschrieben, daher müssten Sie Redis aus seinem Quellcode manuell kompilieren. Mehrere Abhängigkeiten müssten installiert werden, und der Build-Prozess ist nicht gerade narrensicher.
Das Kompilieren von Redis aus dem Quellcode wird nicht empfohlen, aber der Vorteil ist, dass Sie Ihre Installation anpassen können, wenn Sie möchten. Sie laden den Quellcode herunter und konfigurieren ihn dann manuell.
Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl apt update
aus, um sicherzustellen, dass Sie die neuesten Paketlisten haben.

Führen Sie nun den folgenden Befehl apt install
aus, um Redis auf Ihrem Gerät zu installieren.
Der folgende Befehl verwendet den apt
-Paketmanager, um das Paket redis-server
aus den Ubuntu-Repositorys auf Ihr Gerät herunterzuladen und zu installieren. Die Flagge -y
teilt apt
mit, während des Installationsprozesses automatisch aufgefordert zu akzeptieren.

Konfigurieren der Redis.conf-Datei, um Redis als Dienst auszuführen
Du hast gerade Redis installiert, aber es ist noch nicht einsatzbereit. Bevor du Redis verwenden kannst, musst du zuerst die Datei redis.conf konfigurieren.
Die Konfigurationsdatei redis.conf ist im Redis-Paket enthalten, das du installiert hast, und wird standardmäßig im Verzeichnis /etc/redis/ gespeichert. Diese Datei enthält alle Konfigurationsoptionen für Redis.
Die .conf-Dateierweiterung ist logisch, da sie einem konventionellen Muster folgt. Viele andere Programme verwenden denselben Stil. Der Apache Webserver verwendet beispielsweise die .conf-Dateierweiterung für seine Hauptkonfigurationsdatei.
1. Führe den folgenden systemctl
-Befehl aus, um den redis-server
-Dienst zu stoppen
. Das Stoppen des Redis-Dienstes beim ersten Starten mit Redis wird empfohlen.
2. Öffne anschließend die Datei /etc/redis/redis.conf in deinem bevorzugten Texteditor.
Finde die Anweisung supervised und setze sie auf systemd, wie unten gezeigt, und speichere die Änderungen. Dadurch wird dem Betriebssystem mitgeteilt, Redis als Dienst auszuführen.

3. Führen Sie nun den Befehl systemctl restart
unten aus, um den Redis-Dienst (redis.service
) neu zu starten, da der Redis-Dienst die Änderungen noch nicht kennt.
4. Führen Sie abschließend den Befehl systemctl status
unten aus, um zu sehen, ob Redis läuft.
Wie Sie unten sehen können, zeigt die Ausgabe, dass der Redis-Dienst läuft.

Testen, ob der Redis-Server ordnungsgemäß funktioniert
Sie haben konfiguriert und überprüft, dass der Redis-Dienst aktiv läuft, aber das bedeutet nicht, dass der Redis-Server funktioniert. Wie testet man, ob der Redis-Server ordnungsgemäß funktioniert? Verbinden Sie sich mit dem Redis-Server und senden Sie Befehle, um zu sehen, ob der Server antwortet.
1. Führen Sie den Befehl redis-cli
unten aus, um eine Verbindung zum Redis-Server herzustellen. redis-cli
ist die Befehlszeilenschnittstelle für Redis, mit der Sie Befehle an den Server senden und seinen Zustand überprüfen können.
Hier können Sie feststellen, dass Sie sich im Redis-Server-Prompt befinden (127.0.0.1:6379>). Der Befehl redis-cli
versucht standardmäßig, eine Verbindung zu einem Redis-Server unter 127.0.0.1:6379
herzustellen.

2. Führen Sie anschließend den Befehl ping
unten aus, um zu überprüfen, ob der Redis-Server erreichbar ist.
Wie Sie sehen können, hat der Server PONG zurückgegeben, was darauf hinweist, dass der Redis-Server erreichbar ist und jetzt erfolgreich mit dem Dienst kommunizieren kann.

Vielleicht sind Sie noch skeptisch; führen Sie den untenstehenden Befehl set
aus. Der Befehl set
ist ein Redis-Befehl, der ein Schlüssel-Wert-Paar in einer Datenbank setzt.
Wie Sie sehen können, gibt der set-Befehl „OK“ zurück, was darauf hinweist, dass der Redis-Dienst korrekt funktioniert.

3. Führen Sie den Befehl exit
unten aus, um die Verbindung zum redis-cli
zu beenden. Dadurch wird die Verbindung zum Redis-Server geschlossen.
Binden Sie den Redis-Server an Localhost
Sie haben gerade getestet, dass der Redis-Server ordnungsgemäß funktioniert, aber er könnte auch von anderen Geräten in Ihrem Netzwerk aus zugänglich sein. Dieses Verhalten ist unerwünscht, und Sie möchten normalerweise Ihren Redis-Server vor Fremden schützen.
Durch das Binden des Redis-Servers an localhost wird festgelegt, dass nur die Maschine, auf der Sie Redis installiert haben, auf den Redis-Server zugreifen kann.
1. Öffnen Sie die Datei /etc/redis/redis.conf in Ihrem Texteditor.
2. Suchen Sie die Zeile, die bind 127.0.0.1 ::1
angibt, und entfernen Sie das Nummernzeichen (#
) am Anfang der Zeile, um die Zeile zu aktivieren.

3. Führen Sie nun den Befehl unten aus, um den redis-server
-Dienst neu zu starten.
4. Führen Sie abschließend den folgenden Befehl aus, um zu überprüfen, ob Ihr Redis-Server an localhost gebunden ist. Der Befehl netstat -lnp
listet alle aktiven Netzwerkverbindungen auf, und der Teil grep redis
filtert die Ausgabe nach Zeilen, die „redis“ enthalten.
-lnp
steht für Local Name Protocol, ein Netzwerkprotokoll, das von UNIX-ähnlichen Systemen verwendet wird, um Hostnamen in IP-Adressen aufzulösen.
Wie Sie unten sehen können, hört der Redis-Server jetzt nur noch auf die lokale Schnittstelle (127.0.0.1:6379
). In der Konfigurationsdatei ist ebenfalls zu sehen, dass nur die lokale Schnittstelle unter Ihren aktiven Internetverbindungen (tcp
) aufgeführt ist.
Jetzt können keine anderen Geräte in Ihrem Netzwerk eine Verbindung zu Ihrem Redis-Server herstellen.

Sichern der Redis-Serververbindung mit einem Passwort
Zu diesem Zeitpunkt ist Redis nicht so eingestellt, dass Benutzer sich mit einem Passwort authentifizieren müssen. Jeder, der die IP-Adresse oder den Hostnamen Ihres Redis-Servers kennt, könnte sich damit verbinden und dessen Daten ändern.
Wie schützen Sie Ihren Redis-Server? Legen Sie ein Passwort fest, um Benutzer zur Authentifizierung bei der Verbindung mit Ihrem Redis-Server zu zwingen.
1. Öffnen Sie die Konfigurationsdatei redis.conf erneut in Ihrem Text- oder Code-Editor.
2. Setzen Sie dann ein starkes Passwort mit folgendem Befehl:
- Suchen Sie nach
requirepass foobared
im AbschnittSECURITY
- Löschen Sie das Nummernzeichen (
#
) am Anfang der Zeile - Ersetzen Sie
foobared
durch ein starkes Passwort Ihrer Wahl und speichern Sie die Änderungen

3. Führen Sie die folgenden Befehle aus, um den Redis-Server neu zu starten und eine Verbindung herzustellen.
4. Führen Sie jetzt den Befehl ping
aus, um zu prüfen, ob Sie eine Antwort vom Server erhalten.
Unten sehen Sie eine Fehlermeldung, die besagt NOAUTH Authentifizierung erforderlich. Diese Meldung deutet darauf hin, dass Sie ein Authentifizierungspasswort benötigen, um auf Ihren Redis-Server remote zuzugreifen.

5. Führen Sie den folgenden auth
-Befehl mit Ihrem Passwort aus, um Ihre Verbindung zu Ihrem Redis-Server zu authentifizieren.
Sie erhalten eine OK-Antwort, wenn die Authentifizierung erfolgreich ist, wie unten gezeigt.

6. Führen Sie abschließend den ping
-Befehl erneut aus, um zu testen, ob Sie Ihre Verbindung zu Ihrem Redis-Server authentifiziert haben.
Sie erhalten nun die PONG-Antwort, wie unten gezeigt, nachdem Sie Ihre Verbindung authentifiziert haben. Zu diesem Zeitpunkt haben Sie Ihren Redis-Server erfolgreich mit einem Passwort geschützt.

Deaktivierung gefährlicher Befehle zum Schutz Ihres Redis-Servers
Das Festlegen eines Passworts zur Authentifizierung der Verbindung zu Ihrem Redis-Server bedeutet nicht, dass es zu 100 % geschützt ist. Redis enthält standardmäßig mehrere gefährliche Befehle, die es Benutzern ermöglichen, die Daten in Ihrer Datenbank zu ändern.
Wenn diese Befehle von nicht autorisierten Benutzern ausgeführt werden, können Eindringlinge Daten in Ihrer Redis-Datenbank lesen, ändern, zerstören und sogar vollständig löschen.
Hier ist keine umfassende Liste, da Ihr Redis-Server möglicherweise zusätzliche gefährliche Befehle hat, aber in den meisten Fällen handelt es sich um gefährliche Befehle:
Um Ihren Redis-Server weiter zu sichern, benennen Sie diese gefährlichen Befehle in der Datei redis.conf um:
1. Öffnen Sie die Datei redis.conf in Ihrem Texteditor und suchen Sie nach dem Abschnitt Command renaming.
Benennen Sie Befehle gemäß der untenstehenden Syntax in einen leeren String um, um sie zu deaktivieren. Ersetzen Sie the-command
durch den tatsächlichen Befehl, den Sie deaktivieren möchten.
Zum Beispiel deaktivieren Sie den Befehl CONFIG
, indem Sie CONFIG
in einen leeren String umbenennen, wie unten gezeigt, und speichern Sie dann die Änderungen. Die doppelten Anführungszeichen (“”) geben einen leeren String an, der die Deaktivierung eines Befehls kennzeichnet.

CONFIG
command 2. Beenden Sie den Texteditor und führen Sie den folgenden Befehl aus, um den Redis-Server neu zu starten.
3. Führen Sie jetzt die folgenden Befehle aus, um eine Verbindung zu Ihrem Redis-Server herzustellen.
4. Führen Sie abschließend den Befehl config get
aus, um zu überprüfen, ob der Befehl CONFIG
deaktiviert ist.
Sie erhalten eine ERR unknown command config
-Antwort, wie unten gezeigt, was darauf hinweist, dass der Befehl CONFIG
deaktiviert ist.

CONFIG
command Wenn der Befehl config get requirepass
ausgeführt wird, fordert er Ihren Redis-Server auf, das Passwort anzufordern, um die Verbindung zu Ihrem Redis-Server zu authentifizieren.
Sie haben nun erfolgreich einen gefährlichen Redis-Befehl umbenannt, um Ihren Redis-Server zu schützen. Deaktivieren Sie jetzt weitere gefährliche Befehle in der Datei redis.conf.
Blockieren von Verbindungsanfragen an den Redis-Server mit einer Firewall
Eine weitere Möglichkeit, Ihren Redis-Server zu sichern, besteht darin, eine Firewall einzurichten. Das Einrichten einer Firewall erfordert, dass Sie nur den erforderlichen Port für jeden der auf Ihrem Server ausgeführten Dienste zulassen.
Zum Beispiel, wenn Sie Redis auf Ihrem Server auf Port 6379
ausführen, müssen Sie nur diesen Port öffnen. Wenn Sie den Zugriff von einer bestimmten IP-Adresse oder einem Adressbereich erlauben möchten, können Sie diese Adressen zu den Firewall-Regeln hinzufügen.
Um eine Firewall einzurichten, installieren Sie zuerst ein Firewall-Konfigurationstool. Dieses Beispiel verwendet UFW, ein häufig verwendetes Firewall-Konfigurationstool unter Linux. Sie können jedoch auch ein anderes Tool wie iptables verwenden, um eine Firewall einzurichten.
1. Führen Sie den folgenden Befehl aus, um UFW auf Ihrem Gerät zu installieren.
2. Führen Sie als Nächstes den unten stehenden Befehl aus, um UFW zu aktivieren.
Geben Sie ‚Y‘ ein, wenn Sie die unten angezeigte Aufforderung erhalten, um den Befehl fortzusetzen.

3. Führen Sie den Befehl ufw
unten aus, um eine Regel hinzuzufügen, die den Verkehr auf Port 6379
für Ihren Redis-Server erlaubt. Ersetzen Sie die IP-Adresse 11.22.33.44
durch die IP-Adressen Ihrer beabsichtigten Benutzer.

6379
4. Führen Sie schließlich den Befehl unten aus, um zu überprüfen, ob Sie die Firewall-Regel erfolgreich hinzugefügt haben. Der Befehl überprüft den Status
Ihrer Firewall.
Sie können im folgenden Output sehen, dass die Firewall aktiv ist und die Regel, den Verkehr auf Port 6379
für Redis von der IP-Adresse 11.22.33.44
zuzulassen.

Nun können Benutzer mit der IP-Adresse 11.22.33.44
über den Port 6379
eine Verbindung zu Redis herstellen und müssen sich mit einem Passwort authentifizieren. Sie können auf ähnliche Weise zusätzliche Ports für andere Dienste hinzufügen.
Schlussfolgerung
In diesem Tutorial haben Sie gelernt, wie Sie Ihren Redis-Server installieren und sichern können, indem Sie gefährliche Befehle in leere Zeichenketten umbenennen und eine Firewall einrichten.
Mit diesem neu gewonnenen Wissen können Sie die vollen Vorteile von Redis genießen, ohne sich Sorgen machen zu müssen, dass Sie Ihren Server unnötigen Risiken aussetzen.
Möchten Sie mehr erfahren? Warum beginnen Sie nicht mit der Sicherung eines Redis-Servers in Kubernetes?