2014-10-08 105 views
0

因此,基本上所有需要连接到memcached服务器的都是主机名和端口。鉴于这意味着任何人都可以连接到我的服务器并获取我的信息,这是一件坏事。我读到我可以实现SASL需要某种证书,但我找不到如何使用SASL为初学者安装Memcached文章,我想知道是否可以只配置它以便只有某个IP可以连接?Memcached安全性:仅允许来自特定IP的连接

我在服务器上的访问非常少,因为我正在使用最便宜的计划共享主机。

+0

如果您的访问非常少,您希望能够安装/配置sasl? – 2014-10-08 18:25:34

+0

@MarcB我希望有一个SASL的替代品。这对我来说似乎太复杂了,即使我设法让它工作,我也永远无法确定这些东西,我不太明白.. – 2014-10-08 18:26:54

+0

最快/最脏是为了放入防火墙规则来阻止对memcached的访问端口除了你的一个IP地址之外的任何东西,但是由于你无法访问该级别的机器,你可能是SOL。 – 2014-10-08 18:33:02

回答

1

如果您的应用程序,其中是memcached你可以使用套接字连接,而不是TCP的同一台服务器上运行:

memcached -s /tmp/memcached.socket -m 256 -u nobody 

然后你就可以访问你的应用的memcached(PHP版本):

$memcache = new Memcached; 
$memcache->addServer('unix:///tmp/memcached.socket',0); 

顺便说一句,memcache将运行更快一点的插座,而非标准的tcp连接。

如果您已经在单独的服务器上安装了memcache,那么您可以使用iptables过滤到memcached进程的传入连接。或者任何其他防火墙。

0

Memcached仅支持通过SASL进行身份验证,并且只有在使用SASL支持进行编译时才支持。这意味着您可能无法在该机器上自行安装它。

但这并不重要:即使您的memached支持SASL,它仍然会授予已验证的用户访问所有数据。 Memcached不会对用户的数据进行“分区”。 (这至少是我读the documentation。如果有人发现相反证据,请纠正我。)

因此,您应该担心的是在同一台服务器上可以访问Memcached的其他用户。他们可以读取和修改您存储在本地Memcache实例中的任何内容 - SASL与否。

顺便说一句,正确配置的Memcached只会监听本地接口。因此,您不必担心可以从外部访问它。

相关问题