【问题标题】:Does Redis use a username for authentication?Redis 是否使用用户名进行身份验证?
【发布时间】:2018-03-16 02:48:31
【问题描述】:

我已经在我的环境中设置了 Redis,并且只看到了通过密码进行授权的部分。有没有办法设置用户名呢?还是只通过密码验证?

【问题讨论】:

  • redis.io/topics/security 它并不是真正为外部曝光而设计的。
  • 感谢您的回复
  • 我投票结束这个问题,因为它不是一个编程问题

标签: database redis


【解决方案1】:

Redis 只能通过密码进行身份验证。

请记住,密码(与其他所有内容一样)是通过未加密的网络发送的,因此任何可以监听网络流量的人都很容易窃听,因此使用密码不足以保护暴露的 Redis在网络上:

身份验证层的目标是选择性地提供一层冗余。如果为保护 Redis 免受外部攻击而实施的防火墙或任何其他系统出现故障,外部客户端仍然无法在不知道身份验证密码的情况下访问 Redis 实例。

要在网络上安全地使用 Redis,您可以使用网络级隧道或 SSL/TLS,请参阅:

【讨论】:

    【解决方案2】:

    在 Redis 6 上有 ACL。这些有一个用户名。查看https://redis.io/topics/acl

    要使用用户名访问,请在 redis.conf 文件中添加以下内容:

    user bert allcommands allkeys on >abc123
    requirepass foobar
    

    'user' 命令添加用户,requirepass 命令只是设置用户'default' 的密码。

    显示它在 redis-cli 中的外观:

    Redis# redis-cli -a foobar
    Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
    127.0.0.1:6379> ACL LIST
    1) "user bert on #6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090 ~* &* +@all"
    2) "user default on #c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2 ~* &* +@all"
    

    然后在用户“bert”上从 redis-cli 登录:

    redis-cli --user bert --pass abc123
    

    目前从文档中不清楚如何在 NodeJS 之类的程序中做到这一点。

    【讨论】:

      猜你喜欢
      • 2017-10-21
      • 2020-08-29
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      • 2017-05-15
      • 1970-01-01
      • 2010-10-02
      相关资源
      最近更新 更多