Redis, auch bekannt als „Remote Dictionary Server“, ist eine Open-Source- und In-Memory-Datenbank, die als Datenbank, Cache und Nachrichtenbroker verwendet werden kann. Redis unterstützt verschiedene Datenstrukturen wie Strings, Hashes, Listen, Sets und viele mehr. Redis ist in der Programmiersprache C geschrieben und funktioniert in den meisten POSIX-Systemen wie Linux, Free BSD und OS X. Redis kann Tausende von Befehlen pro Sekunde ausführen. Redis verfügt über eine Vielzahl von Funktionen, darunter Replikation, automatisches Failover, Lua-Skripting, LRU-Entfernung von Schlüsseln, Transaktionen und vieles mehr.
In diesem Tutorial lernen wir, wie man Redis auf einem Debian 10-Server installiert und sichert.
Anforderungen
- Ein Server mit Debian 10.
- Ein Root-Passwort wird für Ihren 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.
Installieren Sie Redis
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
Starten Sie nach der Installation von Redis den Redis-Dienst und aktivieren Sie 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:
Standardmäßig überwacht Redis den Localhost 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:6379root 2294 706 0 05:59 pts/0 00:00:00 grep redis
Testen Sie als Nächstes 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> pingen
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 am Ende der Datei die folgenden Zeilen hinzu:
maxmemory 64mbmaxmemory-policy allkeys-lru
Wenn der maximale Speicher von 64 MB erreicht ist. Redis entfernt alle Schlüssel gemäß dem LRU-Algorithmus. Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Redis-Dienst mit dem folgenden Befehl neu:
systemctl redis-server neu starten
Sobald Sie fertig sind. Sie können mit dem nächsten Schritt fortfahren.
Redis-Authentifizierung konfigurieren
Standardmäßig können Sie jeden Befehl in der Redis-Shell ausführen. Daher wird empfohlen, die Redis-Authentifizierung für Clients so zu konfigurieren, dass ein Kennwort erforderlich ist, bevor Befehle ausgeführt werden. 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
Suchen Sie im Abschnitt SICHERHEIT die folgende Zeile:
# requirepass foobared
Kommentieren Sie es aus und ersetzen Sie es 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 neu, um die Konfigurationsänderungen zu übernehmen:
systemctl redis-server neu starten
Greifen Sie nun mit dem folgenden Befehl auf die Redis-Shell zu:
redis-cli
Führen Sie nun den folgenden Befehl ohne Authentifizierung aus:
127.0.0.1:6379> INFO-Server
Dies funktioniert nicht, da Sie sich nicht authentifizieren. Sie sollten die folgende Fehlermeldung erhalten:
NOAUTH-Authentifizierung erforderlich.
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 nun den vorherigen Befehl erneut aus:
127.0.0.1:6379> INFO-Server
Dies wird erfolgreich ausgeführt und Sie sollten die folgende Ausgabe sehen:
# Serverredis_version:5.0.3redis_git_sha1:00000000redis_git_dirty:0redis_build_id:afa0decbb6de285fredis_mode:standaloneos:Linux 4.19.0-5-amd64 x86_64arch_bits:64multiplexing_api:epollatomicvar_api:atomic-builtingcc_version:8.3.0process_id:2308run_id:2cf0470a9492deddf98bcc72fa9ec94e941edf6ctcp_port:6379uptime_in_seconds:50uptime_in_days:0Hz:10configured_hz:10lru_clock:7483371executable:/usr/bin/redis-serverconfig_file:/etc/redis/redis.conf
Sobald Sie fertig sind. Sie können mit dem nächsten Schritt fortfahren.
Bestimmte Befehle umbenennen
Aus Sicherheitsgründen wird empfohlen, bestimmte als gefährlich eingestufte Befehle umzubenennen.
Hier werden wir den Befehl "config" umbenennen. Der Befehl config wird verwendet, um das Redis-Passwort abzurufen. Sehen wir uns das an einem Beispiel an:
Verbinden und authentifizieren Sie zunächst die Redis-Shell mit dem folgenden Befehl:
redis-cli
127.0.0.1:6379> AUTH AlsW34%#df
Rufen Sie als Nächstes das Redis-Passwort mit dem folgenden 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 Konfigurationsbefehl umbenennen, indem Sie die Datei /etc/redis/redis.conf bearbeiten:
nano /etc/redis/redis.conf
Suchen Sie die folgende Zeile:
# Umbenennungsbefehl CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
Kommentieren Sie aus und ersetzen Sie sie durch die gewünschte Zeichenfolge:
Umbenennungsbefehl CONFIG H2sW_Config
Speichern und schließen Sie die Datei. Starten Sie dann den Redis-Dienst mit dem folgenden Befehl neu:
systemctl redis-server neu starten
Als nächstes verbinden und authentifizieren Sie die Redis-Shell mit dem folgenden Befehl:
redis-cli
127.0.0.1:6379> AUTH AlsW34%#df
Rufen Sie als Nächstes das Redis-Passwort mit dem Konfigurationsbefehl ab:
127.0.0.1:6379> config get requirepass
Wir haben diesen Befehl umbenannt, sodass Sie die folgende Fehlermeldung erhalten sollten:
(Fehler) ERR unbekannter Befehl `config`, mit Argumenten beginnend mit:`get`, `requirepass`,
Führen Sie nun den umbenannten Befehl wie unten gezeigt 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> beenden
Schlussfolgerung
Herzliche Glückwünsche! Sie haben den Redis-Server erfolgreich auf Debian 10 installiert und gesichert. Ich hoffe, Sie haben jetzt genug Wissen, um Ihren Redis-Server mit Passwortauthentifizierung zu sichern. Fühlen Sie sich frei, mich zu fragen, wenn Sie irgendwelche Fragen haben.