满足我需求的解决方案是按照sumoanand的建议设置iptables条目。这是我的工作。
使用这样的事情开始的memcached:
/usr/bin/memcached -p 11211 -l 0.0.0.0 -d -u www-data -m 12288
请记住,-l
参数设置为0.0.0.0
,基本上可以从任意源连接。如果你保持标准127.0.0.1
这不会工作。
接下来,我们进入iptables。如果您的memcached服务器位于您的LAN上,则以下命令将仅允许来自特定本地服务器的连接。
举例来说,为了增加192.168.1.100
到允许列表中,我们发出命令:
iptables -A INPUT -p tcp -s 192.168.1.100 --dport 11211 -j ACCEPT
如果要列入白名单的远程服务器,例如,25.62.25.62
那么您发出其他命令:
iptables -A INPUT -p tcp -s 25.62.25.62 --dport 11211 -j ACCEPT
您可以根据需要将多个IP列入白名单,但一定要发出阻止该端口上所有其他连接的最终命令。
iptables -A INPUT -p tcp --dport 11211 -j REJECT
iptables的读入它们的输入顺序,因此,如果您发出发出任何接受的规则,所有的连接将被拒绝(甚至白名单的)前拒绝所有声明。
但是,以这种方式发送的数据仍然没有以任何方式加密。拦截你的memcached服务器和远程服务器(数据包嗅探器,ISP)的任何东西都能够完全看到数据。
'php5-memcache'客户端是否对其进行身份验证?我研究过SASL,但我仍然对客户如何验证它感到困惑,因为我没有看到任何功能可以这样做 – user2103849 2013-04-23 19:03:31