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.