Wie können Sie den geschützten Modus in Redis 3.2.6 Sentinel deaktivieren?

8

Ich habe alles versucht, was von der folgenden Fehlermeldung empfohlen wird:

  

(Fehler) DENIED Redis wird im geschützten Modus ausgeführt, da der geschützte Modus aktiviert ist, keine Bindungsadresse angegeben wurde, kein Authentifizierungskennwort für Clients angefordert wird. In diesem Modus werden Verbindungen nur von der Loopback-Schnittstelle akzeptiert. Wenn Sie eine Verbindung von externen Computern zu Redis herstellen möchten, können Sie eine der folgenden Lösungen anwenden: 1) Deaktivieren Sie einfach den geschützten Modus, indem Sie den Befehl 'CONFIG SET protected mode no' von der Loopback-Schnittstelle aus an Redis vom selben Host senden läuft, jedoch VERMEIDEN Redis ist nicht öffentlich zugänglich aus dem Internet, wenn Sie dies tun. Verwenden Sie CONFIG REWRITE, um diese Änderung dauerhaft zu machen. 2) Alternativ können Sie den geschützten Modus einfach deaktivieren, indem Sie die Redis-Konfigurationsdatei bearbeiten und die Option für den geschützten Modus auf "Nein" setzen und dann den Server neu starten. 3) Wenn Sie den Server nur zum Testen manuell gestartet haben, starten Sie ihn mit der Option '--protected-mode no' neu. 4) Richten Sie eine Bindeadresse oder ein Authentifizierungskennwort ein. HINWEIS: Sie müssen nur eines der oben genannten Dinge ausführen, damit der Server Verbindungen von außen akzeptiert.

Mein /etc/redis/sentinel.conf :

%Vor%

BEARBEITEN: Mein /etc/redis/redis.conf :

%Vor%

Ich habe auch versucht, sentinel auth-pass master XXX hinzuzufügen.

Mein gesamtes Backend befindet sich in privaten Subnetzen. Ich bin in mein Datencenter hinter der Firewall, die aus demselben privaten Netzwerk kommt, VPN, und ich kann immer noch nur lokal verbinden, ohne diese frustrierende Fehlermeldung zu bekommen.

Server-Umgebung: Debian 8, Redis 3.2.6
Client-Umgebung: Ubuntu 16.10, redis-cli 3.2.1
Redis-Instanzen : 3
Sentinel-Instanzen: 3

Ich habe nicht nur eins gemacht, sondern 3/4 der vorgeschlagenen Dinge (habe die Befehlszeilenflags nicht gesetzt). Hat jemand eine Anleitung oder Ideen? Mir fehlt eindeutig etwas, was ich nicht aus der Fehlermeldung, der Dokumentation, Stackoverflow, Google und Trial & amp; Error. Ich dachte, ich würde hier zuerst eine Frage stellen, bevor ich in den Quellcode eintauche.

Jede Hilfe wird geschätzt. Danke!

... und, ja, ich habe die Dämonen nach Konfigurationsänderungen neu gestartet. :)

    
pestilence669 30.03.2017, 02:39
quelle

1 Antwort

1

Ссылка

Wie Sie wissen, hatten wir einige Probleme mit ungeschützten Redis-Instanzen, die dem Internet ausgesetzt waren. Ich habe den Grund behandelt, warum eine restriktive Bindung an 127.0.0.1 standardmäßig ein Usability-Problem darstellt und, noch schlimmer, das Problem möglicherweise nicht beheben kann (hey, nur die "bind" -Anweisung kommentieren und neu starten!) In meinem Blog-Post.

Derselbe Blogbeitrag führte einen Angriff ein, der von Skript-Kiddies stark genutzt wurde, um in Redis-Instanzen einzudringen (ernsthafte Sicherheitsforscher, wo dies bereits möglich war, denke ich).

Ich habe mich also entschieden, etwas vor Redis 3.2 zu tun: Geschützter Modus ist das Ergebnis und wird in 3.2 RC2 zusammengeführt.

Die Funktion ist bereits im Unstable-Zweig verfügbar, der durch dieses Commit eingeführt wurde. So funktioniert es.

Wenn und nur wenn: Geschützter Modus ist aktiviert (dies ist der Standard sowohl in der Konfigurationsdatei als auch im konfigurationslosen Standard).

AND IF Wenn kein AUTH-Passwort konfiguriert ist.

UND IF Wenn keine "bind" -Direktive verwendet wird, um Redis auf bestimmte Schnittstellen zu beschränken.

Dann akzeptiert Redis nur Verbindungen von den Loopback-IPv4- und IPv6-Adressen. Externe Verbindungen werden nur für die Zeit akzeptiert, um dem Client einen Fehler zu senden, der den Benutzer darauf aufmerksam macht, was passiert:

%Vor%

(Fehler) DENIED Redis wird im geschützten Modus ausgeführt, da der geschützte Modus aktiviert ist, keine Bindungsadresse angegeben wurde, kein Authentifizierungskennwort für Clients angefordert wird.

In diesem Modus werden Verbindungen nur von der Lookback-Schnittstelle akzeptiert. Wenn Sie eine Verbindung von externen Computern zu Redis herstellen möchten, können Sie eine der folgenden Lösungen übernehmen:

1) Deaktivieren Sie den geschützten Modus, indem Sie den Befehl 'CONFIG SET protected-mode no' von der Loopback-Schnittstelle durch Verbinden mit Redis von demselben Host, auf dem der Server läuft, ausführen. Wenn Sie dies dennoch tun, ist Redis nicht öffentlich zugänglich damit. Verwenden Sie CONFIG REWRITE, um diese Änderung dauerhaft zu machen.

2) Alternativ können Sie den geschützten Modus auch deaktivieren, indem Sie die Redis-Konfigurationsdatei bearbeiten, die Option für den geschützten Modus auf "no" setzen und dann den Server neu starten.

3) Wenn Sie den Server nur zum Testen manuell gestartet haben, starten Sie ihn mit der Option --ported-mode no neu.

4) Richten Sie eine Bindeadresse oder ein Authentifizierungskennwort ein. HINWEIS: Sie müssen nur eines der oben genannten Dinge ausführen, damit der Server Verbindungen von außen akzeptiert.

Dies sollte Fehler auf eine vernünftige Art und Weise schützen, während Benutzern ein Hinweis anstelle einer verweigerten Verbindung bereitgestellt wird. Bitte teilen Sie uns Ihre Rückmeldungen mit, damit wir diese Funktion bei Bedarf ändern können, bevor sie in Redis 3.2 RC2 zusammengeführt wird. Danke.

    
Allen 16.07.2017 05:40
quelle

Tags und Links