Installation und Sicherung eines Redis-Servers unter Debian 10

Redis, auch bekannt als „Remote Dictionary Server“, ist eine Open-Source- und In-Memory-Datenbank, die als Datenbank, Cache und Message Broker verwendet werden kann. Redis unterstützt verschiedene Datenstrukturen, wie z.B. Zeichenketten, Hashes, Listen, Sets und viele andere. Redis ist in der Programmiersprache C geschrieben und funktioniert in den meisten POSIX-Systemen wie Linux, Free BSD und OS X. Redis ist und kann Tausende von Befehlen pro Sekunde ausführen. Redis verfügt über eine Vielzahl von Funktionen, darunter Replikation, automatische Ausfallsicherung, Lua-Skripting, LRU-Auslagerung von Schlüsseln, Transaktionen und viele weitere.

In diesem Tutorial werden wir lernen, wie man Redis auf einem Debian-10-Server installiert und sichert.

Anforderungen

  • Ein Server, auf dem Debian 10 läuft.
  • Ein Root-Passwort wird auf Ihrem Server eingerichtet.

Erste Schritte

Bevor Sie beginnen, müssen Sie Ihr System mit der neuesten Version aktualisieren. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

apt-get update -y
 apt-get upgrade -y

Sobald Ihr Server aktualisiert ist, starten Sie Ihren Server neu, um die Änderungen zu übernehmen.

Redis installieren

Standardmäßig ist Redis im Debian-10-Repository verfügbar. Sie können es installieren, indem Sie einfach den folgenden Befehl ausführen:

apt-get install redis-server -y

Nach der Installation von Redis starten Sie den Redis-Dienst und aktivieren ihn nach dem Systemneustart mit dem folgenden Befehl:

systemctl start redis-server
 systemctl enable redis-server

Sie können den Status des Redis-Servers auch mit dem folgenden Befehl überprüfen:

systemctl status redis-server

Sie sollten die folgende Ausgabe erhalten:

? redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-09-06 05:57:45 EDT; 4s ago
     Docs: http://redis.io/documentation,
           man:redis-server(1)
  Process: 2284 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
 Main PID: 2285 (redis-server)
    Tasks: 4 (limit: 1138)
   Memory: 6.8M
   CGroup: /system.slice/redis-server.service
           ??2285 /usr/bin/redis-server 127.0.0.1:6379

Sep 06 05:57:45 debian systemd[1]: Starting Advanced key-value store...
Sep 06 05:57:45 debian systemd[1]: redis-server.service: Can't open PID file /run/redis/redis-server.pid (yet?) after start: No such file or di
Sep 06 05:57:45 debian systemd[1]: Started Advanced key-value store.

Standardmäßig lauscht Redis auf dem lokalen Rechner auf Port 6379. Sie können dies mit dem folgenden Befehl überprüfen:

ps -ef | grep redis

Sie sollten die folgende Ausgabe sehen:

redis     2285     1  0 05:57 ?        00:00:00 /usr/bin/redis-server 127.0.0.1:6379
root      2294   706  0 05:59 pts/0    00:00:00 grep redis

Testen Sie dann die Redis-Konnektivität mit dem folgenden Befehl:

redis-cli

Sie sollten die folgende Ausgabe sehen:

127.0.0.1:6379> 

Überprüfen Sie nun die Redis-Konnektivität mit dem Ping-Befehl:

127.0.0.1:6379> ping

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe sehen:

PONG

Sobald Sie fertig sind. Sie können mit dem nächsten Schritt fortfahren.

Redis als Cache konfigurieren

Sie können Redis als Cache konfigurieren, indem Sie die Datei /etc/redis/redis.conf bearbeiten:

nano /etc/redis/redis.conf

Fügen Sie die folgenden Zeilen am Ende der Datei hinzu:

maxmemory 64mb
maxmemory-policy allkeys-lru

Wenn der maximale Speicher von 64mb erreicht ist. Redis wird jeden Schlüssel gemäß dem LRU-Algorithmus entfernen. Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Redis-Dienst mit dem folgenden Befehl neu:

systemctl restart redis-server

Wenn Sie fertig sind. Sie können mit dem nächsten Schritt fortfahren.

Konfigurieren Sie die Redis-Authentifizierung

Standardmäßig können Sie jeden beliebigen Befehl in der Redis-Shell ausführen. Es wird also empfohlen, die Redis-Authentifizierung für Clients so zu konfigurieren, dass ein Passwort erforderlich ist, bevor ein Befehl ausgeführt wird. Sie können die Passwortauthentifizierung direkt in der Konfigurationsdatei von Redis konfigurieren. Öffnen Sie dazu die Datei /etc/redis/redis.conf mit Ihrem bevorzugten Editor:

nano /etc/redis/redis.conf

Unter dem Abschnitt SECURITY finden Sie folgende Zeile:

# requirepass foobared

Entfernen Sie den Kommentar und ersetzen Sie ihn durch Ihr gewünschtes Passwort, wie unten gezeigt:

requirepass AlsW34%#df

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Redis-Dienst erneut, um die Konfigurationsänderungen zu übernehmen:

systemctl restart redis-server

Greifen Sie nun mit folgendem Befehl auf die Redis-Shell zu:

redis-cli

Führen Sie jetzt den folgenden Befehl ohne Authentifizierung aus:

127.0.0.1:6379> INFO server

Dies wird nicht funktionieren, weil Sie sich nicht authentifizieren. Sie sollten den folgenden Fehler erhalten:

NOAUTH Authentication required.

Führen Sie als nächstes den folgenden Befehl aus, um sich mit dem in der Redis-Konfigurationsdatei angegebenen Kennwort zu authentifizieren:

127.0.0.1:6379> AUTH AlsW34%#df

Sie sollten die folgende Ausgabe erhalten:

OK

Führen Sie jetzt den vorherigen Befehl erneut aus:

127.0.0.1:6379> INFO server

Dies wird erfolgreich ausgeführt, und Sie sollten die folgende Ausgabe sehen:

# Server
redis_version:5.0.3
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:afa0decbb6de285f
redis_mode:standalone
os:Linux 4.19.0-5-amd64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:8.3.0
process_id:2308
run_id:2cf0470a9492deddf98bcc72fa9ec94e941edf6c
tcp_port:6379
uptime_in_seconds:50
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:7483371
executable:/usr/bin/redis-server
config_file:/etc/redis/redis.conf

Sobald Sie fertig sind. Sie können mit dem nächsten Schritt fortfahren.

Spezifische Befehle umbenennen

Aus Sicherheitsgründen wird empfohlen, bestimmte Befehle, die als gefährlich gelten, umzubenennen.

Hier werden wir den Befehl „config“ umbenennen. Der Befehl „config“ wird verwendet, um das Redis-Passwort abzurufen. Sehen wir uns ein Beispiel an:

Zuerst verbinden und authentifizieren Sie die Redis-Shell mit dem folgenden Befehl:

redis-cli
127.0.0.1:6379> AUTH AlsW34%#df

Als nächstes rufen Sie das Redis-Passwort mit folgendem Befehl ab:

127.0.0.1:6379> config get requirepass

Sie sollten die folgende Ausgabe erhalten:

1) "requirepass"
2) "AlsW34%#df"
127.0.0.1:6379> 

Sie können den Befehl config umbenennen, indem Sie die Datei /etc/redis/redis.conf bearbeiten:

nano /etc/redis/redis.conf

Suchen Sie die folgende Zeile:

# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52

Entkommentieren Sie und ersetzen Sie mit Ihrer gewünschten Zeichenfolge:

rename-command CONFIG H2sW_Config        

Speichern und schließen Sie die Datei. Starten Sie dann den Redis-Dienst mit dem folgenden Befehl neu:

systemctl restart redis-server

Als nächstes verbinden und authentifizieren Sie die Redis-Shell mit dem folgenden Befehl:

redis-cli
 127.0.0.1:6379> AUTH AlsW34%#df

Als nächstes können Sie das Redis-Passwort mit dem Befehl config abrufen:

127.0.0.1:6379> config get requirepass

Wir haben diesen Befehl umbenannt, so dass Sie den folgenden Fehler erhalten sollten:

(error) ERR unknown command `config`, with args beginning with: `get`, `requirepass`, 

Führen Sie nun den umbenannten Befehl wie unten dargestellt aus:

127.0.0.1:6379> H2sW_Config get requirepass

Sie sollten die folgende Ausgabe erhalten:

1) "requirepass"
2) "AlsW34%#df"

Verlassen Sie schließlich die Redis-Shell mit dem folgenden Befehl:

127.0.0.1:6379> exit

Schlussfolgerung

Gratulation! Sie haben den Redis-Server erfolgreich auf Debian 10 installiert und gesichert. Ich hoffe, Sie haben nun genug Wissen, um Ihren Redis-Server mit einer Passwortauthentifizierung zu sichern. Fragen Sie mich ruhig, wenn Sie Fragen haben.

Das könnte dich auch interessieren …