Php memcached验证远程连接
假设服务器1位于5:5:5:5:11211,服务器2位于25.25.25.25:11211。将它们添加到服务器池中,一切都很好。直到有人连接到该端口并开始干扰您的数据 所以我们把端口改为38295。很难找到,但并非不可能,所以这还不够 我的问题是: 1) 能否为memcached服务器设置身份验证(用户名/密码)以验证连接?你能把特定的主机/IP列入白名单吗(可能是个坏主意) 2) 您是否能够保护通过互联网传输的数据?数据是原始格式的,您的ISP和任何嗅探该线路的人都可以看到所有发送的数据。但加密数据可能会影响性能Php memcached验证远程连接,php,memcached,Php,Memcached,假设服务器1位于5:5:5:5:11211,服务器2位于25.25.25.25:11211。将它们添加到服务器池中,一切都很好。直到有人连接到该端口并开始干扰您的数据 所以我们把端口改为38295。很难找到,但并非不可能,所以这还不够 我的问题是: 1) 能否为memcached服务器设置身份验证(用户名/密码)以验证连接?你能把特定的主机/IP列入白名单吗(可能是个坏主意) 2) 您是否能够保护通过互联网传输的数据?数据是原始格式的,您的ISP和任何嗅探该线路的人都可以看到所有发送的数据。但加
有什么解决方案可以设置memcached服务器集群,以及如何保护和验证它们?memcached现在支持SASL。这将允许您对memchaced服务执行强身份验证。下面是一篇关于如何使用memcached设置SASL的好文章
我认为我们不需要像Mike提到的那样在这里寻找复杂的解决方案 假设您的web服务器(web1、web2、web3)需要通过位于同一内部网络中的11211端口从memcache服务器(mem1和mem2)获取数据,每个web服务器的内部ip地址从172.221开始 在这种情况下,您可以在mem1和mem2服务器的ip表中设置一个限制,以仅接受来自172.221的请求。。对于11211端口
希望这会有所帮助。满足我需求的解决方案是按照sumoanand的建议设置iptables条目。这是我的工作 使用如下方式启动memcached:
/usr/bin/memcached-p 11211-l 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是按照输入的顺序读取的,因此如果在发出任何接受规则之前发出REJECT ALL语句,所有连接都将被拒绝(即使是白名单上的连接)
然而,以这种方式发送的数据仍然没有以任何方式进行加密。任何拦截您的memcached服务器和远程服务器(数据包嗅探器、ISP)的东西都将能够看到完全原始的数据。php5 memcache客户机是否对其进行身份验证?我已经研究了SASL,但我仍然对客户端如何对其进行身份验证感到困惑,因为我没有看到任何这样做的函数