保护节点 Redis

Securing Node Redis

我正在尝试保护 Node Redis IPC 服务器以使用 private/public 密钥。我遵循 this tutorial ,它使用 stunnel 将 Redis 使用的隧道包装在 SSL 层下。

该示例不适用于 Node,但它确实保护了连接,只有在我的配置文件中包含认证时我才能连接到服务器,否则连接将被重置。

但是,我无法用 NodeJS 复制它。在我的服务器计算机上,我有:

var redis = require('redis'); 
var client = redis.createClient();

client.auth('myPassword');
client.publish('instances', 'start');

我在我的客户端计算机上有:

var redis = require('redis');
var client = redis.createClient();

client.auth('myPassword');
client.subscribe('instances');
client.on('message', function (channel, message) {
  console.log("Got message " + message + " from channel " + channel);
})

但是,无论我是否在我的 stunnel 配置文件中包含认证,这两个设备都会进行通信。如何确保此连接安全?

干杯

这个我也搜过。但是 redis 不需要任何 ssl,因为它只在经过验证的专用网络上运行。使用 stunnel 提供安全性的唯一方法。因为我们可以使用 AUTH 命令启用密码。在 redis 中,他们提供了一个名为 GPG 密钥的密码生成器。它生成了一个 2048 长度的密钥,它将提供安全性。我认为我的回答是相关的。

你可以通过像这样在创建客户端时传入tls配置来做到这一点

var redis = require("redis");

var client = redis.createClient(6380,'location.of.server', {auth_pass: 'password', tls: {servername: 'location.of.server'}});