使用TLS / SSL保护Cassandra通信

时间:2010-06-30 13:19:27

标签: cassandra ssl

我们希望保护卡桑德拉免受中间人攻击。有没有办法以客户端 - 服务器和服务器 - 服务器(复制)通信进行SSL加密的方式配置Cassandra?

谢谢

4 个答案:

答案 0 :(得分:4)

现在似乎可以使用加密的服务器服务器通信:

https://issues.apache.org/jira/browse/CASSANDRA-1567
为节点间通信提供可配置的加密支持

决议:已解决 修正版本:0.8 beta 1
已解决:19 / Jan / 11 18:11

答案 1 :(得分:3)

简短回答:否:)

对于客户端 - 服务器:THRIFT-151

编辑:您可能想要关注ML

上的this主题

答案 2 :(得分:2)

我采用的策略是让Apache Cassandra节点通过站点到站点VPN隧道进行通信。

cassandra.yaml文件的具体配置:

 listen_address: 10.x.x.x # vpn network ip
 rpc_address: 172.16.x.x. # non-vpn network for client access although, I leave it blank so that it listens on all interfaces

这种方法的好处是您可以将Apache Cassandra部署到许多不同的环境中,并且您可以成为提供程序无关的。例如,托管各种Amazon EC2环境中的节点,并在您自己的物理数据中心托管节点,并在您的桌面下托管其他几个节点!

成本问题阻止您研究这种方法?看看Vyatta ......

正如KajMagnus所指出的那样,在一个稳定版本的Apache Cassandra中可以解析并提供一个JIRA票证:https://issues.apache.org/jira/browse/CASSANDRA-1567它可以让你通过TLS / SSL完成你想要的东西..但是有几种方法完成你想要的。

最后,如果您希望在Amazon EC2上托管您的实例,则区域到区域可能会出现问题,尽管1.x.x中有可用的修补程序,但它真的是正确的方法吗?我发现VPN方法可以减少不同区域中节点之间的延迟,并且仍然保持必要的安全级别。

最后 - 第2部分 -

如果您想保护客户端到服务器的通信,请让您的客户端(Web服务器)通过同一个VPN进行通信。我的配置如下:

  • 前端Web服务器通过内部网络与应用程序服务器进行通信
  • 应用程序服务器位于自己的内部网络和VPN网络上,并通过VPN隧道与内部网络之间的数据层进行通信
  • 数据层存在于每个数据中心/机架自己的网络上,并通过VPN网络接收请求

答案 3 :(得分:1)

根据上述问题,可以保护节点到节点(八卦)通信。客户端和服务器都将很快支持Kerberos(在提交时为Hector主服务器:https://github.com/rantav/hector/commit/08149a03c81b559cba5680d115943dbf334f58fa很快就会遇到Cassandra方。)