我们有两台主机,理论上在同一个数据中心。这两台机器托管在 Online.net 上。我们有一点争论:是否应该加密两台主机之间的流量。
我们需要交换的流量是 Redis 查询。将要交换的数据是 Twitter 和 Facebook 用户 ID、指示要做的工作的代码和市场 ID,它本身就是一个 UUID。典型的查询和响应是:
> hgetall Twitter:12345
1) 1) "c4a9c7f0-78d1-0132-b14c-70921c10876c"
2) "F"
我们正在考虑的两个实现:
使用带有端口转发的 SSH 隧道将 Redis 服务器隐藏在公共 Internet 之外。在托管 Redis 服务器的机器上,使用单个 aurthorized_keys 创建一个单独的用户,并使用适当的安全性以不允许运行任意程序;
只需使用防火墙将流向 Redis 的流量限制为我们需要的单个 IP 地址,仅此而已。
我们不确定哪个会“更安全”(或更恰当地说,风险更小)。添加用户和配置 SSH 会带来复杂性,而添加防火墙规则则要简单得多。另一方面,如果攻击者读取飞行中的数据包,他们能收集到哪些有用的数据?
我要防止的是,在获得对客户端计算机的访问权之后,攻击者可以在 Redis 服务器计算机中获得立足点,该服务器计算机托管更多服务。