我们希望保护卡桑德拉免受中间人攻击。有没有办法以客户端 - 服务器和服务器 - 服务器(复制)通信进行SSL加密的方式配置Cassandra?
谢谢
答案 0 :(得分:4)
现在似乎可以使用加密的服务器服务器通信:
https://issues.apache.org/jira/browse/CASSANDRA-1567
为节点间通信提供可配置的加密支持
决议:已解决
修正版本:0.8 beta 1
已解决:19 / Jan / 11 18:11
答案 1 :(得分:3)
答案 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进行通信。我的配置如下:
答案 3 :(得分:1)
根据上述问题,可以保护节点到节点(八卦)通信。客户端和服务器都将很快支持Kerberos(在提交时为Hector主服务器:https://github.com/rantav/hector/commit/08149a03c81b559cba5680d115943dbf334f58fa很快就会遇到Cassandra方。)