alfish Asked: 2012-09-05 13:28:17 +0800 CST2012-09-05 13:28:17 +0800 CST 2012-09-05 13:28:17 +0800 CST 如何保护内存缓存? 772 在 Debian 中,我安装了 memcached(使用本指南)以降低 mysql 数据库上难以管理的负载。数据库在单独的服务器上,memcached和varnish在前端服务器上。让 memcached 不受防火墙保护是否存在潜在的安全漏洞?如果是这样,我应该如何保护它?这种情况尤其令人担忧,因为我已经收到(未经证实的)服务器上 cookie 盗窃的报告。谢谢 security 1 个回答 Voted Best Answer Logic Wreck 2012-09-05T13:40:30+08:002012-09-05T13:40:30+08:00 只需在防火墙中阻止 memcached 端口并仅允许从数据库服务器访问。这应该会给你一些保护。您还可以在 mysql 和 memcached 服务器之间建立一个 SSL 隧道,并使 memcached-mysql 数据仅流经它。 对于 SSL 隧道,您可以使用 IPSEC,要设置它,您可以按照http://wiki.debian.org/IPsec或http://lartc.org/howto/lartc.ipsec.tunnel.html上的教程进行设置 要阻止除一个以外的所有 ip 的端口,您可以发出 iptables 命令,例如: iptables -A INPUT -s 2.2.2.2/32 -p tcp --destination-port 11211 -j ALLOW iptables -A INPUT -s 0.0.0.0/0 -p tcp --destination-port 11211 -j DROP 或者: iptables -A INPUT -s !2.2.2.2/32 -p tcp --destination-port 11211 -j DROP 另外据我了解您的网络服务器和内存缓存服务器在同一台机器上?如果是这样,那么您的网络服务器将与 memcached 而不是 mysql 服务器通信。它要么从缓存中获取数据,要么如果它不存在于缓存中,它将从 mysql 服务器获取它。在这种情况下,将 memcached 绑定到本地主机就足够了,因此只有您的网络服务器可以使用 php、ruby、python 或任何其他语言代码访问 memcached,这应该尽可能安全。
只需在防火墙中阻止 memcached 端口并仅允许从数据库服务器访问。这应该会给你一些保护。您还可以在 mysql 和 memcached 服务器之间建立一个 SSL 隧道,并使 memcached-mysql 数据仅流经它。
对于 SSL 隧道,您可以使用 IPSEC,要设置它,您可以按照http://wiki.debian.org/IPsec或http://lartc.org/howto/lartc.ipsec.tunnel.html上的教程进行设置
要阻止除一个以外的所有 ip 的端口,您可以发出 iptables 命令,例如:
或者:
另外据我了解您的网络服务器和内存缓存服务器在同一台机器上?如果是这样,那么您的网络服务器将与 memcached 而不是 mysql 服务器通信。它要么从缓存中获取数据,要么如果它不存在于缓存中,它将从 mysql 服务器获取它。在这种情况下,将 memcached 绑定到本地主机就足够了,因此只有您的网络服务器可以使用 php、ruby、python 或任何其他语言代码访问 memcached,这应该尽可能安全。