繁体   English   中英

如何在敌对的云环境中保护memcached / beanstalkd?

[英]How can I secure memcached/beanstalkd in a hostile cloud environment?

我的服务器(在Amazon EC2中)如下所示:

Server 1                    Server 2                  Server 3
__________________________     _____________________      _______________
|  Cloud Monitor Daemon  |    |  Memcached daemon  |      |  beanstalkd  |
|                        |    |  Memcached daemon  |      ________________
| "Hostile" user process | /  |  Memcached daemon  |
| "Hostile" user process | /  |  Memcached daemon  |
| "Hostile" user process | /  |  Memcached daemon  |
| "Hostile" user process | /   ______________________
| "Hostile" user process | /
__________________________

一台服务器上有多个用户进程。 然后,每个用户都会在一个(单独的)服务器上运行自己的Memcached实例(以及许多其他Memcached实例)。 没有任何类型的安全性(默认情况下是这样),用户进程B可能会猜测用户A的内存缓存实例的端口并访问它。 如何保护该系统,以便用户C只能访问memcached实例C而不能访问其他实例(即使memcached实例都在同一服务器上)? 我的用户不必采取任何措施来利用安全性(只需像往常一样继续连接到memcached端口),所有这些操作均应由系统自动进行。

另外,服务器上的Cloud Monitor守护程序以及“敌对”用户进程也需要能够访问远程beantalkd服务器。 Beanstalkd也没有身份验证,因此,如果我的Monitor Daemon可以访问beanstalkd,那么“敌对的”用户进程也可以,并且我不希望这样做。 我该如何固定这部分?

我最近在博客文章中提到了有关保护Memcached的一些技巧。 对于您的情况,SASL可能会有所帮助。

我不知道beantalk是否曾经获得SASL支持,但是那是一个不同的应用程序。

当然,您可以构建VPN或启用IPSEC来控制对节点级别上所有计算机上所有服务的访问。

您可以在Server3本地IP(127.0.0.1)上启动beantalkd,然后使用从Server 1到Server 3的SSH隧道。将它与inetd和ssh-key结合使用以确保故障安全。

几周前,亚马逊宣布了Amazon VPC (虚拟私有云),我们正在使用它来保护Memcached和beantalkd。

很棒! 认真推荐; 一个少的开销,不得不面对自己。

我最终选择了普通的旧iptables。 允许我执行每个uid规则,并且很容易通过编程进行配置。 最重要的是,用户不需要参与该过程,他们可以继续使用标准协议,而不必处理身份验证,并且iptables将丢弃任何“顽皮”的数据包,这些数据包将流向他们不应该去的地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM