Configure Redis Network Security with bind and protected-mode
📖 Scenario: You are setting up a Redis server for a small company. To keep the server safe, you need to control which computers can connect to it and enable a security mode that protects the server from unauthorized access.
🎯 Goal: Learn how to configure Redis network security by setting the bind address and enabling protected-mode in the Redis configuration file.
📋 What You'll Learn
Create a Redis configuration file with default settings
Add a bind directive to restrict connections to localhost
Enable protected-mode to enhance security
Ensure the final configuration file includes both settings correctly
💡 Why This Matters
🌍 Real World
In real life, Redis servers often run on machines connected to networks. Setting the bind address and enabling protected mode helps prevent hackers or unauthorized users from accessing your data.
💼 Career
Database administrators and system engineers must secure Redis servers to protect sensitive data and ensure reliable service. Knowing how to configure network security is a key skill.
Progress0 / 4 steps
1
Create a basic Redis configuration file
Create a file named redis.conf with the line port 6379 to set the default Redis port.
Redis
Hint
The Redis server listens on port 6379 by default. Just add this line to your configuration file.
2
Add the bind address to restrict connections
Add the line bind 127.0.0.1 below port 6379 in redis.conf to allow connections only from the local computer.
Redis
Hint
The bind directive limits which IP addresses can connect to Redis. Use 127.0.0.1 to allow only local connections.
3
Enable protected-mode for extra security
Add the line protected-mode yes below the bind 127.0.0.1 line in redis.conf to turn on Redis protected mode.
Redis
Hint
Protected mode helps prevent unauthorized access when Redis is exposed to the network. Enable it by setting protected-mode yes.
4
Complete the Redis configuration with network security settings
Ensure your redis.conf file contains these three lines exactly in this order: port 6379, bind 127.0.0.1, and protected-mode yes.
Redis
Hint
Double-check that all three lines are present and correctly spelled to secure your Redis server.
Practice
(1/5)
1. What is the main purpose of the bind configuration in Redis?
easy
A. To configure the Redis password
B. To enable data encryption for Redis connections
C. To set the maximum number of client connections
D. To specify which IP addresses can connect to the Redis server
Solution
Step 1: Understand the role of bind in Redis
The bind setting restricts Redis to listen only on specified IP addresses.
Step 2: Compare other options
Encryption, max clients, and password settings are handled by other configurations, not bind.
Final Answer:
To specify which IP addresses can connect to the Redis server -> Option D
Quick Check:
bind controls allowed IPs [OK]
Hint: Remember: bind = allowed IP addresses [OK]
Common Mistakes:
Confusing bind with password setting
Thinking bind enables encryption
Assuming bind sets max clients
2. Which of the following is the correct way to disable protected mode in the Redis configuration file?
easy
A. protected-mode no
B. protected_mode no
C. protected-mode yes
D. disable-protected-mode true
Solution
Step 1: Identify correct syntax for protected mode setting
The correct syntax uses a hyphen and accepts 'yes' or 'no' values: protected-mode no disables it.
Step 2: Eliminate incorrect options
Options with underscores or 'disable-' prefix are invalid in Redis config.
Final Answer:
protected-mode no -> Option A
Quick Check:
Disable protected mode with protected-mode no [OK]
Hint: Use hyphen and 'no' to disable protected mode [OK]
Common Mistakes:
Using underscore instead of hyphen
Writing 'disable-protected-mode' which is invalid
Setting 'protected-mode yes' to disable
3. Given this Redis config snippet:
bind 127.0.0.1
protected-mode yes
Which clients can connect to the Redis server?
medium
A. Only clients connecting from localhost (127.0.0.1)
B. Any client on the network can connect
C. No clients can connect because protected mode is enabled
D. Only clients with a password can connect
Solution
Step 1: Analyze the bind setting
Binding to 127.0.0.1 means Redis listens only on localhost, so only local clients can connect.
Step 2: Understand protected-mode effect
Protected mode 'yes' prevents external access if no password or bind is not localhost, but here bind restricts to localhost anyway.
Final Answer:
Only clients connecting from localhost (127.0.0.1) -> Option A
Quick Check:
bind localhost + protected-mode yes = local clients only [OK]
Hint: bind localhost + protected-mode yes = local access only [OK]
Common Mistakes:
Thinking protected mode blocks all connections
Assuming any network client can connect
Confusing password requirement with protected mode
4. You set bind 0.0.0.0 and protected-mode no in your Redis config. What is the main security issue with this setup?
medium
A. Redis will only accept connections from localhost
B. Redis will reject all connections due to conflicting settings
C. Redis will be open to all network clients without protection
D. Redis will require a password for all connections
Solution
Step 1: Understand bind 0.0.0.0 meaning
Binding to 0.0.0.0 means Redis listens on all network interfaces, allowing any IP to connect.
Step 2: Effect of disabling protected mode
Protected mode off disables safety checks, so no restrictions or warnings prevent unauthorized access.
Final Answer:
Redis will be open to all network clients without protection -> Option C
Quick Check:
bind all + protected-mode no = open and unsafe [OK]
Hint: bind all + protected-mode no = open to everyone [OK]
Common Mistakes:
Thinking Redis blocks connections with these settings
Assuming password is required automatically
Believing protected mode disables binding
5. You want your Redis server to accept connections only from two IP addresses: 192.168.1.10 and 10.0.0.5, and ensure it is protected from unauthorized access. Which configuration is correct?
hard
A. bind 0.0.0.0\nprotected-mode no
B. bind 192.168.1.10 10.0.0.5\nprotected-mode yes
C. bind 192.168.1.10\nprotected-mode no
D. bind 10.0.0.5\nprotected-mode yes
Solution
Step 1: Set bind to specific IP addresses
Using bind 192.168.1.10 10.0.0.5 restricts Redis to listen only on these two IPs.
Step 2: Enable protected mode for safety
Setting protected-mode yes adds an extra layer of protection against unauthorized access.
Final Answer:
bind 192.168.1.10 10.0.0.5\nprotected-mode yes -> Option B