Redis 安全设置

RedisRedisBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在这个实验中,你将学习如何增强你的 Redis 服务器的安全性。我们将涵盖设置密码以防止未经授权的访问,以及禁用特定命令以限制潜在的滥用。在本实验结束时,你将拥有一个更安全的 Redis 实例。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") subgraph Lab Skills redis/access_cli -.-> lab-552103{{"Redis 安全设置"}} end

使用 CONFIG SET requirepass 设置密码

默认情况下,Redis 不需要密码,这使其容易受到攻击。设置密码是保护你的 Redis 服务器的第一步,也是最重要的一步。我们将使用 CONFIG SET requirepass 命令来完成此操作。

CONFIG SET 命令允许你动态更改 Redis 的配置设置。requirepass 设置指定客户端连接到服务器时必须提供的密码。

让我们开始吧:

  1. 使用 redis-cli 连接到 Redis 服务器:

    在 LabEx 虚拟机(VM)中打开一个终端。默认目录是 ~/project。执行以下命令:

    redis-cli

    这将把你连接到运行在默认主机 (127.0.0.1) 和端口 (6379) 上的 Redis 服务器。你应该看到 127.0.0.1:6379> 提示符。

    127.0.0.1:6379>
  2. 使用 CONFIG SET requirepass 命令设置密码:

    我们将密码设置为 mysecretpassword。对于生产环境,请选择一个强壮且唯一的密码。

    CONFIG SET requirepass mysecretpassword

    你应该看到以下输出:

    OK

    这确认密码已设置。

  3. 尝试在没有身份验证的情况下执行命令:

    尝试执行一个简单的命令,如 PING

    PING

    你应该收到一条错误消息:

    (error) NOAUTH Authentication required.

    这表明现在需要身份验证。

  4. 退出 redis-cli

    为了确保命令被记录,通过键入 exit 或按 Ctrl+D 退出 redis-cli

    exit

    这对于验证步骤能够正确执行非常重要。

使用 AUTH 命令进行身份验证

现在我们已经设置了密码,让我们学习如何使用 AUTH 命令对 Redis 服务器进行身份验证。此命令需要你在上一步中设置的密码。

  1. 使用 redis-cli 连接到 Redis 服务器:

    在 LabEx 虚拟机(VM)中打开一个终端。默认目录是 ~/project。执行以下命令:

    redis-cli

    你应该看到 127.0.0.1:6379> 提示符。

  2. 使用 AUTH 命令进行身份验证:

    使用 AUTH 命令,后跟你在之前设置的密码:

    AUTH mysecretpassword

    如果身份验证成功,你将看到:

    OK
  3. 在身份验证后执行命令:

    现在你已经通过身份验证,再次尝试 PING 命令:

    PING

    你应该收到预期的响应:

    PONG
  4. 退出 redis-cli

    通过键入 exit 或按 Ctrl+D 退出 redis-cli

    exit

使用 CONFIG SET 禁用命令

Redis 提供了许多命令,但有些命令在某些环境中可能有风险。禁用这些命令可以提升安全性。我们将使用 CONFIG SET disable-command 来禁用 FLUSHALL 命令作为示例。「FLUSHALL」会删除所有数据库中的所有数据,因此禁用它可以防止意外数据丢失。

  1. 使用 redis-cli 连接到 Redis 服务器:

    在 LabEx VM 中打开一个终端。默认目录是 ~/project。执行以下命令:

    redis-cli

    你应该看到 127.0.0.1:6379> 提示符。

  2. 使用 AUTH 命令进行身份验证:

    使用 AUTH 命令后跟你的密码进行身份验证:

    AUTH mysecretpassword

    成功身份验证后,你应该看到 OK 输出。

  3. 使用 CONFIG SET disable-command 禁用 FLUSHALL 命令:

    CONFIG SET disable-command FLUSHALL

    你应该看到:

    OK

    这确认命令已被禁用。

  4. 尝试执行 FLUSHALL 命令:

    FLUSHALL

    现在,你应该收到错误消息:

    (error) ERR unknown command 'FLUSHALL', just try HELP

    这表示「FLUSHALL」命令不再可用。

  5. 退出 redis-cli

    通过键入 exit 或按 Ctrl+D 退出 redis-cli

    exit

总结

在这个实验中,你已经学习了如何增强 Redis 的安全性。你使用 CONFIG SET requirepass 设置了密码,以防止未经授权的访问。你还学习了如何使用 AUTH 命令进行身份验证,以及如何使用 CONFIG SET disable-command 禁用诸如 FLUSHALL 之类的特定命令,以限制潜在的有害操作。这些步骤对于保护你的 Redis 服务器至关重要。