介绍
在这个实验中,你将学习如何增强你的 Redis 服务器的安全性。我们将涵盖设置密码以防止未经授权的访问,以及禁用特定命令以限制潜在的滥用。在本实验结束时,你将拥有一个更安全的 Redis 实例。
在这个实验中,你将学习如何增强你的 Redis 服务器的安全性。我们将涵盖设置密码以防止未经授权的访问,以及禁用特定命令以限制潜在的滥用。在本实验结束时,你将拥有一个更安全的 Redis 实例。
CONFIG SET requirepass
设置密码默认情况下,Redis 不需要密码,这使其容易受到攻击。设置密码是保护你的 Redis 服务器的第一步,也是最重要的一步。我们将使用 CONFIG SET requirepass
命令来完成此操作。
CONFIG SET
命令允许你动态更改 Redis 的配置设置。requirepass
设置指定客户端连接到服务器时必须提供的密码。
让我们开始吧:
使用 redis-cli
连接到 Redis 服务器:
在 LabEx 虚拟机(VM)中打开一个终端。默认目录是 ~/project
。执行以下命令:
redis-cli
这将把你连接到运行在默认主机 (127.0.0.1) 和端口 (6379) 上的 Redis 服务器。你应该看到 127.0.0.1:6379>
提示符。
127.0.0.1:6379>
使用 CONFIG SET requirepass
命令设置密码:
我们将密码设置为 mysecretpassword
。对于生产环境,请选择一个强壮且唯一的密码。
CONFIG SET requirepass mysecretpassword
你应该看到以下输出:
OK
这确认密码已设置。
尝试在没有身份验证的情况下执行命令:
尝试执行一个简单的命令,如 PING
:
PING
你应该收到一条错误消息:
(error) NOAUTH Authentication required.
这表明现在需要身份验证。
退出 redis-cli
:
为了确保命令被记录,通过键入 exit
或按 Ctrl+D
退出 redis-cli
。
exit
这对于验证步骤能够正确执行非常重要。
AUTH
命令进行身份验证现在我们已经设置了密码,让我们学习如何使用 AUTH
命令对 Redis 服务器进行身份验证。此命令需要你在上一步中设置的密码。
使用 redis-cli
连接到 Redis 服务器:
在 LabEx 虚拟机(VM)中打开一个终端。默认目录是 ~/project
。执行以下命令:
redis-cli
你应该看到 127.0.0.1:6379>
提示符。
使用 AUTH
命令进行身份验证:
使用 AUTH
命令,后跟你在之前设置的密码:
AUTH mysecretpassword
如果身份验证成功,你将看到:
OK
在身份验证后执行命令:
现在你已经通过身份验证,再次尝试 PING
命令:
PING
你应该收到预期的响应:
PONG
退出 redis-cli
:
通过键入 exit
或按 Ctrl+D
退出 redis-cli
。
exit
CONFIG SET
禁用命令Redis 提供了许多命令,但有些命令在某些环境中可能有风险。禁用这些命令可以提升安全性。我们将使用 CONFIG SET disable-command
来禁用 FLUSHALL
命令作为示例。「FLUSHALL」会删除所有数据库中的所有数据,因此禁用它可以防止意外数据丢失。
使用 redis-cli
连接到 Redis 服务器:
在 LabEx VM 中打开一个终端。默认目录是 ~/project
。执行以下命令:
redis-cli
你应该看到 127.0.0.1:6379>
提示符。
使用 AUTH
命令进行身份验证:
使用 AUTH
命令后跟你的密码进行身份验证:
AUTH mysecretpassword
成功身份验证后,你应该看到 OK
输出。
使用 CONFIG SET disable-command
禁用 FLUSHALL
命令:
CONFIG SET disable-command FLUSHALL
你应该看到:
OK
这确认命令已被禁用。
尝试执行 FLUSHALL
命令:
FLUSHALL
现在,你应该收到错误消息:
(error) ERR unknown command 'FLUSHALL', just try HELP
这表示「FLUSHALL」命令不再可用。
退出 redis-cli
:
通过键入 exit
或按 Ctrl+D
退出 redis-cli
。
exit
在这个实验中,你已经学习了如何增强 Redis 的安全性。你使用 CONFIG SET requirepass
设置了密码,以防止未经授权的访问。你还学习了如何使用 AUTH
命令进行身份验证,以及如何使用 CONFIG SET disable-command
禁用诸如 FLUSHALL
之类的特定命令,以限制潜在的有害操作。这些步骤对于保护你的 Redis 服务器至关重要。