Memcached安全性:只允许来自特定IP的连接


Memcached security: Allow connections only from certain IP

所以基本上,连接到memcached服务器所需要的只是主机名和端口。考虑到这意味着任何人都可以连接到我的服务器并获取我的信息,这是一件坏事。我读到我可以实现SASL以要求某种凭据,但我找不到如何使用SASL为初学者安装Memcached的文章,我想知道我是否可以将其配置为只有特定的IP可以连接?

我很少访问服务器,因为我使用的是最便宜的共享主机。

如果您的应用程序在memcached所在的同一服务器上运行,您可以使用套接字连接而不是tcp:

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

然后你可以从你的应用程序(php版本)访问memcached:

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

顺便说一句,使用套接字而不是标准的tcp连接,memcache的运行速度会更快一些。

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

Memcached只支持通过SASL进行身份验证,并且只有在编译时支持SASL。这意味着你可能无法自己在那台机器上安装它。

但这并不重要:即使您的memached支持SASL,它仍然会授予经过身份验证的用户访问所有数据的权限。Memcached不会按用户对数据进行"分区"。(至少我是这样阅读文件的。如果有人发现相反的证据,请纠正我。)

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

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