GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So führen Sie eine sichere Redis-Installation unter Linux durch

Redis ist für viele Dinge von Vorteil, darunter das 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 aufpassen, können viele Fehler auftreten. Glück für Sie, dieses Tutorial hat Sie abgedeckt.

In diesem Tutorial lernen Sie, wie Sie Redis sicher auf Ihrem Linux-System installieren, zusammen mit einigen Tipps, um häufige Fehler zu vermeiden.

Lesen Sie weiter und ersparen Sie sich die Kopfschmerzen bei der Behebung von Redis-Installationsfehlern!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben:

  • Ein Ubuntu 20.04 LTS-Computer – Dieses Tutorial verwendet Ubuntu 20.04 LTS, aber die Anweisungen sind für die meisten Linux-Distributionen ähnlich.
  • Root-Rechte oder ein Nicht-Root-Benutzer mit sudo Privilegien

Redis-Installation mit dem APT-Paketmanager

Es gibt einige Möglichkeiten, Redis unter Ubuntu zu installieren, aber für dieses Tutorial verwenden Sie den APT-Paketmanager, um Redis zu installieren.

Redis ist in C geschrieben, also müssten Sie Redis manuell aus seinem Quellcode kompilieren. Es müssten mehrere Abhängigkeiten installiert werden, und der Erstellungsprozess ist nicht gerade narrensicher.

Das Kompilieren von Redis aus der Quelle 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 apt update aus Befehl unten, um sicherzustellen, dass Sie über die neuesten Paketlisten verfügen.

sudo apt update -y

Führen Sie nun apt install aus Befehl unten, um Redis auf Ihrem Computer zu installieren.

Der folgende Befehl verwendet den apt Paketmanager zum Herunterladen und Installieren von redis-server Paket aus den Ubuntu-Repositories auf Ihren Rechner. Die -y Flag sagt apt Eingabeaufforderungen während des Installationsvorgangs automatisch zu akzeptieren.

sudo apt install redis-server -y

Konfigurieren der Redis.conf-Datei zum Ausführen von Redis als Dienst

Sie haben Redis gerade installiert, aber es ist noch nicht einsatzbereit. Bevor Sie mit der Verwendung von Redis beginnen können, konfigurieren Sie zunächst die redis.conf Datei.

Die redis.conf Konfigurationsdatei ist in dem von Ihnen installierten Redis-Paket enthalten und wird in /etc/redis/ gespeichert Verzeichnis standardmäßig. Diese Datei enthält alle Konfigurationsoptionen für Redis.

Die Dateierweiterung .conf ist logisch, da sie einem konventionellen Muster folgt. Viele andere Programme verwenden denselben Stil. Der Apache-Webserver verwendet beispielsweise die Dateierweiterung .conf für seine Hauptkonfigurationsdatei.

1. Führen Sie den folgenden systemctl aus Befehl an stop die redis-server Service. Das Beenden der Ausführung des Redis-Dienstes ist eine empfohlene Vorgehensweise, wenn Sie zum ersten Mal mit Redis beginnen.

sudo systemctl stop redis.service

2. Als nächstes öffnen Sie die /etc/redis/redis.conf Datei in Ihrem bevorzugten Texteditor.

Finden Sie die Betreuten Direktive und setzen Sie sie dann auf systemd , wie unten gezeigt, und speichern Sie die Änderungen. Dadurch wird das Betriebssystem angewiesen, Redis als Dienst auszuführen.

3. Führen Sie nun systemctl restart aus Befehl unten, um den Redis-Dienst neu zu starten (redis.service ), da der Redis-Dienst die Änderungen noch nicht kennt.

sudo systemctl restart redis.service

4. Führen Sie abschließend systemctl status aus Befehl unten, um zu sehen, ob Redis läuft.

sudo systemctl status redis.service

Wie Sie unten sehen können, zeigt die Ausgabe, dass der Redis-Dienst ausgeführt wird.

Testen, ob der Redis-Server ordnungsgemäß funktioniert

Sie haben konfiguriert und überprüft, dass der Redis-Dienst aktiv ausgeführt wird, aber das bedeutet nicht, dass der Redis-Server funktioniert. Wie teste ich, ob der Redis-Server richtig funktioniert? Stellen Sie eine Verbindung zum Redis-Server her und senden Sie Befehle, um zu sehen, ob der Server antwortet.

1. Führen Sie redis-cli aus Befehl unten, 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 Status überprüfen können.

redis-cli

Unten sehen Sie, dass Sie sich in der Eingabeaufforderung des Redis-Servers befinden (127.0.0.1:6379> ). Die redis-cli versucht, eine Verbindung zu einem Redis-Server unter 127.0.0.1:6379 herzustellen standardmäßig.

2. Führen Sie als Nächstes ping aus Befehl unten, um zu prüfen, ob der Redis-Server erreichbar ist.

ping

Wie Sie sehen können, hat der Server PONG zurückgegeben , was anzeigt, dass der Redis-Server erreichbar ist und nun erfolgreich mit dem Dienst kommunizieren kann.

Vielleicht sind Sie noch skeptisch; Führen Sie set aus Befehl unten. Die set command ist ein Redis-Befehl, der ein Schlüssel-Wert-Paar in einer Datenbank festlegt.

set test "This is a test"

Wie Sie sehen können, gibt der set-Befehl „OK zurück “, was darauf hinweist, dass der Redis-Dienst ordnungsgemäß funktioniert.

3. Führen Sie exit aus Befehl unten, um redis-cli zu beenden . Dadurch wird die Verbindung zum Redis-Server geschlossen.

exit

Den Redis-Server an Localhost binden

Sie haben gerade getestet, dass der Redis-Server ordnungsgemäß funktioniert, aber er ist möglicherweise auch von anderen Geräten in Ihrem Netzwerk aus zugänglich. Dieses Verhalten ist unerwünscht und normalerweise möchten Sie Ihren Redis-Server vor Fremden schützen.

Durch die Bindung des Redis-Servers an localhost wird ein Verhalten festgelegt, bei dem nur der Computer, auf dem Sie Redis installiert haben, auf den Redis-Server zugreifen kann.

1. Öffnen Sie die /etc/redis/redis.conf Datei in Ihrem Texteditor.

2. Suchen Sie die Zeile mit der Aufschrift bind 127.0.0.1 ::1 und kommentieren Sie die Zeile aus, indem Sie das Nummernzeichen löschen (# ) am Zeilenanfang.

3. Führen Sie nun den folgenden Befehl aus, um redis-server neu zu starten Service.

sudo systemctl restart redis-server

4. Führen Sie abschließend den folgenden Befehl aus, um zu überprüfen, ob Ihr Redis-Server an localhost gebunden ist. Der netstat -lnp listet alle aktiven Netzwerkverbindungen und den grep redis auf part filtert die Ausgabe in 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.

sudo netstat -lnp | grep redis

Sie können unten sehen, dass der Redis-Server jetzt nur noch auf der localhost-Schnittstelle lauscht (127.0.0.1:6379 ). Aufgrund der Änderung in der Konfigurationsdatei können Sie sehen, dass nur die localhost-Schnittstelle unter Ihren aktiven Internetverbindungen aufgeführt ist (tcp ).

Jetzt können keine anderen Geräte in Ihrem Netzwerk eine Verbindung zu Ihrem Redis-Server herstellen.

Sichern der Redis-Serververbindung mit einem Passwort

An diesem Punkt 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 mit ihm verbinden und seine Daten ändern.

Wie schützen Sie Ihren Redis-Server? Legen Sie ein Passwort fest, um Benutzer beim Herstellen einer Verbindung mit Ihrem Redis-Server zur Authentifizierung aufzufordern.

1. Öffnen Sie die redis.conf erneut Konfigurationsdatei in Ihrem Text-/Code-Editor.

2. Legen Sie als Nächstes ein sicheres Passwort fest:

  • Suchen Sie nach requirepass foobared unter dem SECURITY Abschnitt
  • Löschen Sie das Nummernzeichen (# ) am Anfang der Zeile
  • Ersetzen Sie foobared mit einem starken Passwort Ihrer Wahl und speichern Sie die Änderungen

3. Führen Sie die folgenden Befehle aus, um Ihren Redis-Server neu zu starten und eine Verbindung herzustellen.

sudo systemctl restart redis-server
redis-cli

4. Führen Sie nun ping aus Befehl, um zu sehen, ob Sie eine Antwort vom Server erhalten.

ping

Unten sehen Sie eine Fehlermeldung, die besagt:NOAUTH-Authentifizierung erforderlich . Diese Meldung weist darauf hin, dass Sie ein Authentifizierungskennwort benötigen, um remote auf Ihren Redis-Server zuzugreifen.

5. Führen Sie den folgenden auth aus Befehl gefolgt von Ihrem Passwort, um Ihre Verbindung zu Ihrem Redis-Server zu authentifizieren.

auth Qae9p_fY:YjdtJ7k

Sie erhalten ein OK Antwort, wenn die Authentifizierung erfolgreich ist, wie unten.

6. Führen Sie abschließend ping erneut aus Befehl, um zu testen, ob Sie Ihre Verbindung zu Ihrem Redis-Server authentifiziert haben.

ping

Sie erhalten jetzt das PONG Antwort, wie unten gezeigt, nachdem Sie Ihre Verbindung authentifiziert haben. An dieser Stelle haben Sie Ihren Redis-Server nun erfolgreich mit einem Passwort geschützt.

Gefährliche Befehle zum Schutz Ihres Redis-Servers deaktivieren

Das Festlegen eines Passworts zum Authentifizieren der Verbindung zu Ihrem Redis-Server bedeutet nicht, dass es 100 % geschützt ist. Standardmäßig enthält Redis mehrere gefährliche Befehle, mit denen Benutzer die Daten in Ihrer Datenbank ändern können.

Wenn diese Befehle von nicht autorisierten Benutzern ausgeführt werden, ermöglichen sie Eindringlingen, die Daten Ihrer Redis-Datenbank zu lesen, zu ändern, zu zerstören und sogar zu löschen.

Nachfolgend finden Sie keine vollständige Liste, da Ihr Redis-Server möglicherweise über zusätzliche gefährliche Befehle verfügt, aber in den meisten Fällen sind dies die gefährlichen Befehle:

FLUSHDB, FLUSHALL, KEYS, PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF
BGSAVE, SAVE, SPOP, SREM, RENAME, DEBUG, EVAL

Um Ihren Redis-Server weiter zu sichern, benennen Sie diese gefährlichen Befehle in der redis.conf um Datei:

1. Öffnen Sie die redis.conf Datei in Ihrem Texteditor und suchen Sie nach dem Befehl Umbenennen Sektion.

Benennen Sie Befehle in eine leere Zeichenfolge um, um sie gemäß der folgenden Syntax zu deaktivieren. Ersetzen Sie the-command mit dem eigentlichen Befehl zum Deaktivieren.

rename-command the-command ""

Deaktivieren Sie beispielsweise CONFIG Befehl durch Umbenennen von CONFIG in eine leere Zeichenfolge, wie unten gezeigt, und speichern Sie dann die Änderungen. Die doppelten Anführungszeichen (“”) geben eine leere Zeichenfolge an, die das Deaktivieren eines Befehls bedeutet.

2. Beenden Sie den Texteditor und führen Sie den folgenden Befehl aus, um den Redis-Server neu zu starten.

sudo systemctl restart redis-server

3. Führen Sie nun die folgenden Befehle aus, um eine Verbindung zu Ihrem Redis-Server herzustellen.

redis-cli
auth Qae9p_fY:YjdtJ7k

4. Führen Sie abschließend config get aus Befehl, um zu testen, ob der CONFIG Befehl ist deaktiviert.

config get requirepass

Sie erhalten einen ERR unknown command config Antwort, wie unten gezeigt, was darauf hinweist, dass CONFIG Befehl ist deaktiviert.

Wenn der config get requirepass Wenn der Befehl durchgeht, fordert er Ihren Redis-Server nach dem Passwort an, um die Verbindung zu Ihrem Redis-Server zu authentifizieren.

Sie haben jetzt erfolgreich einen gefährlichen Redis-Befehl umbenannt, um Ihren Redis-Server zu schützen. Deaktivieren Sie jetzt weiterhin andere gefährliche Befehle in der redis.conf Datei.

Verbindungsanfrage an Redis-Server mit einer Firewall blockieren

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 , dann ist dieser Port das, was Sie nur öffnen müssen. Wenn Sie den Zugriff von einer bestimmten IP-Adresse oder einem Adressbereich zulassen müssen, können Sie diese Adressen zu den Firewall-Regeln hinzufügen.

Um eine Firewall einzurichten, installieren Sie zunächst ein Firewall-Konfigurationstool. Dieses Beispiel verwendet UFW, ein häufig verwendetes Firewall-Konfigurationstool unter Linux. Sie können aber auch ein anderes Tool wie iptables verwenden, um eine Firewall einzurichten.

1. Führen Sie den folgenden Befehl aus, um UFW auf Ihrem Computer zu installieren.

sudo apt install ufw -y

2. Führen Sie als Nächstes den folgenden Befehl aus, um UFW zu aktivieren.

sudo ufw enable

Geben Sie "Y" ein, wenn Sie die unten gezeigte Eingabeaufforderung erhalten, um mit der Ausführung des Befehls fortzufahren.

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

sudo ufw allow from 11.22.33.44 to any port 6379

4. Führen Sie abschließend den folgenden Befehl aus, um zu überprüfen, ob Sie die Firewall-Regel erfolgreich hinzugefügt haben. Der Befehl prüft den status Ihrer Firewall.

sudo ufw status

In der Ausgabe unten sehen Sie, dass die Firewall aktiv ist und hat die Regel, Verkehr auf Port 6379 zuzulassen für Redis von der IP-Adresse 11.22.33.44 .

Jetzt alle Benutzer mit der IP-Adresse 11.22.33.44 kann sich über Port 6379 mit Redis verbinden und müssen sich mit einem Passwort authentifizieren. Auf ähnliche Weise können Sie zusätzliche Ports für andere Dienste hinzufügen.

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, wie Sie Ihren Redis-Server installieren und sichern, indem Sie gefährliche Befehle in leere Zeichenfolgen umbenennen und eine Firewall einrichten.

Mit diesem neu gewonnenen Wissen können Sie die Vorteile von Redis voll ausschöpfen, ohne sich Sorgen machen zu müssen, Ihren Server unnötigen Risiken auszusetzen.

Möchten Sie mehr erfahren? Warum nicht damit beginnen, einen Redis-Server in Kubernetes zu sichern?


Linux
  1. So installieren Sie Python unter Linux

  2. So installieren Sie Java unter Linux

  3. So installieren Sie den SSH-Dienst (Secure Shell) unter Kali Linux

  4. So installieren Sie NodeJS unter Linux

  5. So installieren und sichern Sie Redis unter Ubuntu 20.04

So installieren Sie Grafana unter Rocky Linux

So installieren Sie FreeOffice unter Linux

So installieren Sie die Go-Sprache unter Linux

So installieren Sie Redis unter Linux Mint 20

So installieren und konfigurieren Sie Redis auf einem Linux-System

So führen Sie eine Samba Active Directory-Installation unter Linux durch