【发布时间】:2018-03-16 02:48:31
【问题描述】:
我已经在我的环境中设置了 Redis,并且只看到了通过密码进行授权的部分。有没有办法设置用户名呢?还是只通过密码验证?
【问题讨论】:
-
redis.io/topics/security 它并不是真正为外部曝光而设计的。
-
感谢您的回复
-
我投票结束这个问题,因为它不是一个编程问题
我已经在我的环境中设置了 Redis,并且只看到了通过密码进行授权的部分。有没有办法设置用户名呢?还是只通过密码验证?
【问题讨论】:
Redis 只能通过密码进行身份验证。
请记住,密码(与其他所有内容一样)是通过未加密的网络发送的,因此任何可以监听网络流量的人都很容易窃听,因此使用密码不足以保护暴露的 Redis在网络上:
身份验证层的目标是选择性地提供一层冗余。如果为保护 Redis 免受外部攻击而实施的防火墙或任何其他系统出现故障,外部客户端仍然无法在不知道身份验证密码的情况下访问 Redis 实例。
要在网络上安全地使用 Redis,您可以使用网络级隧道或 SSL/TLS,请参阅:
【讨论】:
在 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 之类的程序中做到这一点。
【讨论】: