REDIS

Zaraz po instalacji Redis na VPS, aby bezpiecznie umożliwić dostęp z hasłem z zewnątrz, musisz wykonać trzy kluczowe kroki w pliku konfiguracyjnym (/etc/redis/redis.conf) oraz skonfigurować firewall.

1. Zmiana adresu nasłuchiwania (bind)

Domyślnie Redis słucha tylko na 127.0.0.1 (localhost). Musisz to zmienić, aby akceptował połączenia z sieci.

  • Opcja zalecana (bezpieczniejsza): Dodaj adres IP swojego serwera obok localhost:
    bind 127.0.0.1 <TWOJE_IP_VPS>
  • Opcja otwarta (mniej bezpieczna): Słuchanie na wszystkich interfejsach:
    bind 0.0.0.0 [1]

2. Ustawienie silnego hasła (requirepass)

To Twoja główna linia obrony. Odkomentuj linię i ustaw skomplikowane hasło: [1, 2]

text

requirepass TwojeBardzoDlugieISilneHaslo123!

Używaj kodu z rozwagą.

Redis jest bardzo szybki w sprawdzaniu haseł, więc krótkie hasło można łatwo złamać metodą brute-force. [1, 2]

3. Pozostawienie protected-mode yes

W nowych wersjach Redis (3.2+), jeśli ustawisz hasło i skonfigurujesz bind, tryb chroniony pozwoli na połączenia zewnętrzne. Nie musisz go wyłączać, co stanowi dodatkowy bezpiecznik. [1, 2]

4. Konfiguracja Firewall (UFW)

Musisz fizycznie otworzyć port w systemie, ale najlepiej zrobić to tylko dla Twojego konkretnego adresu IP (np. Twojego domu lub serwera aplikacji), zamiast otwierać go dla całego świata: [1, 2, 3]

bash

# Zezwól na dostęp tylko z Twojego IP
sudo ufw allow from <TWOJE_IP_DOMOWE> to any port 6379
sudo ufw reload

Używaj kodu z rozwagą.

5. Restart i test

Zastosuj zmiany:

bash

sudo systemctl restart redis-server

Używaj kodu z rozwagą.

Sprawdź połączenie z komputera zewnętrznego:

bash

redis-cli -h <IP_TWOJEGO_VPS> -a <TWOJE_HASLO> ping
# Oczekiwana odpowiedź: PONG

Używaj kodu z rozwagą.

Dobra praktyka: Dla maksymalnego bezpieczeństwa w środowisku produkcyjnym rozważ użycie tunelu SSH lub VPN, zamiast wystawiać port Redis bezpośrednio do internetu.

REDIS TUNEL SSH

Na serwerze produkcyjnym użycie tunelu SSH to najbezpieczniejsza metoda, ponieważ pozwala całkowicie zamknąć port 6379 dla świata w firewallu. Redis „myśli”, że łączysz się lokalnie.

Oto jak to skonfigurować krok po kroku:

1. Przygotowanie serwera VPS

Wróć do pliku /etc/redis/redis.conf i upewnij się, że Redis słucha tylko na localhost:

text

bind 127.0.0.1

Używaj kodu z rozwagą.

Następnie zamknij port 6379 w firewallu (jeśli go wcześniej otwierałeś):

bash

sudo ufw delete allow 6379/tcp

Używaj kodu z rozwagą.

Teraz Redis jest całkowicie niedostępny z zewnątrz.

2. Tworzenie tunelu z Twojego komputera

Uruchom poniższą komendę na swoim lokalnym komputerze (nie na VPS):

bash

ssh -L 6380:127.0.0.1:6379 user@ip-twojego-vps -N

Używaj kodu z rozwagą.

Co robi ta komenda?

  • -L 6380:127.0.0.1:6379: Przekierowuje Twój lokalny port 6380 na port 6379 serwera VPS.
  • user@ip-twojego-vps: Twoje dane logowania do serwera.
  • -N: Mówi SSH, aby nie uruchamiało zdalnej powłoki (tylko tunelowanie).

3. Łączenie się z Redisem przez tunel

Teraz Twoja aplikacja lub narzędzie CLI może połączyć się z Redisem, celując w Twój własny komputer na port 6380:

bash

# Jeśli masz ustawione hasło w redis.conf:
redis-cli -p 6380 -a TwojeHaslo

Używaj kodu z rozwagą.

Dlaczego to jest lepsze na produkcję?

  1. Szyfrowanie: Cały ruch między Tobą a Redisem jest szyfrowany przez SSH.
  2. Brak otwartych portów: Skanery portów nie wykryją Redisa na Twoim VPS.
  3. Uwierzytelnianie kluczem: Możesz logować się do tunelu za pomocą bezpiecznych kluczy SSH zamiast hasła.

Pro-tip: Tunel w tle

Jeśli chcesz, aby tunel działał stale w tle, użyj flagi -f:

bash

ssh -fN -L 6380:127.0.0.1:6379 user@ip-twojego-vps