Redis is een populaire in-memory database die hoog presteert, maar standaard niet sterk beveiligd is. Vooral wanneer het toegankelijk is via een netwerk, kunnen verkeerde instellingen leiden tot gegevenslekken, hacking, en serviceonderbrekingen.

In dit artikel leggen we uit hoe je de netwerkbeveiliging van Redis kunt versterken en welke belangrijke instellingen er zijn, zodat beginners het gemakkelijk kunnen begrijpen. Laten we een voor een bekijken welke instellingen je moet controleren om Redis veilig te laten draaien.

1. Toegang tot Redis beperken van externe bronnen

✅ 1-1. Toegang alleen toestaan vanaf specifieke IP-adressen (bind instelling)

Redis accepteert standaard verbindingen van alle netwerkinterfaces. Dat betekent dat zonder enige instellingen iedereen toegang kan krijgen tot de Redis-server.

Om dit te voorkomen, moet je de bind instelling gebruiken om toegang alleen vanaf bepaalde IP-adressen te beperken.

📌 Voorbeeld: Toegang alleen vanuit lokaal (127.0.0.1)
bind 127.0.0.1 -::1

Met deze instelling kunnen alleen clients die op dezelfde server draaien toegang krijgen tot Redis.

📌 Wat als externe IP-adressen toegang nodig hebben?

Als je toegang vanaf externe IP's nodig hebt, kun je specifieke IP-adressen toestaan.

bind 192.168.1.100 10.0.0.1

Op deze manier kunnen alleen 192.168.1.100 en 10.0.0.1 verbinding maken met Redis.

✅ 1-2. Beschermde modus (protected-mode) instellen

Redis biedt de functie beschermde modus aan om de beveiliging te versterken. In de beschermde modus is het niet mogelijk om zonder wachtwoord van buitenaf toegang te krijgen.

📌 Beschermde modus inschakelen
protected-mode yes

Met deze instelling kan Redis alleen worden benaderd vanaf 127.0.0.1 (lokaal).

2. Beperkingen van netwerkpoorten en verbindingen voor Redis

✅ 2-1. Poort instellen waarop Redis verbindingen accepteert (port)

Redis draait standaard op de 6379 poort.

port 6379

Als je alleen Unix-socket en geen TCP-socket wilt gebruiken, stel je de poort in op 0.

port 0

✅ 2-2. Instellen dat alleen specifieke poorten communiceren (bind-source-addr)

De uitgaande verbindingen (replica's die verbinding maken met de master, communicatie tussen clusters, etc.) zijn standaard niet gebonden aan een specifieke netwerkinterface.

bind-source-addr 10.0.0.1

Met deze instelling communiceert Redis alleen met externe Redis-servers via de 10.0.0.1 interface.

3. Instellingen voor de stabiliteit van netwerkverbindingen

✅ 3-1. Groote van de TCP-verbinding wachtrij (tcp-backlog)

tcp-backlog 511

🔹 Het is raadzaam om deze waarde in te stellen op 1.024 of 4.096 voor servers die hoge verkeersvolumes verwerken.

✅ 3-2. Inactiviteitsduur van de client (timeout)

timeout 300

Als een client 5 minuten inactief is, wordt de verbinding automatisch verbroken.

4. Extra instellingen voor versterking van de beveiliging

✅ 4-1. Blokkeren van gevaarlijke commando's (enable-debug-command)

Bepaalde Redis-commando's (DEBUG, MODULE LOAD, etc.) kunnen om veiligheidsredenen riskant zijn.

enable-debug-command no
enable-module-command no

Met deze instelling worden potentieel gevaarlijke commando's niet uitgevoerd.

5. Samenvatting: Controlelijst voor Redis netwerkbeveiligingsinstellingen

  • ✔ Toegang tot Redis alleen beperken tot specifieke IP's (bind)
  • ✔ Activeren van beschermde modus (protected-mode) om externe toegang te blokkeren
  • ✔ TCP-poortinstellingen (port) om ongewenste toegang te beperken
  • ✔ Instellen van inactiviteitstimer voor clients (timeout) om inactieve verbindingen te blokkeren
  • ✔ Instellen van Keepalive (tcp-keepalive) om netwerkverbindingen te behouden
  • ✔ Blokkeren van gevaarlijke commando's (enable-debug-command no) om de beveiliging te versterken

Redis is een database waarbij netwerkbeveiliging cruciaal is. Als je deze instellingen zorgvuldig toepast, kun je hacking en gegevenslekken voorkomen! Als je een Redis-server beheert, controleer dan onmiddellijk de beveiligingsinstellingen. 🔐🚀

Redis netwerkbeveiligingsinstellingen