Memcache是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以开放在外网的Memcache服务很容易被攻击者扫描发现,通过命令交互可直接读取Memcache中的敏感信息。
修复方案
因Memcache无权限控制功能,所以需要用户对访问来源进行限制,下面分享4中有效的解决方法。
1、绑定IP
如果Memcache没有在外网开放的必要,可在Memcache启动的时候指定绑定的IP地址为 127.0.0.1。例如:
2、配置IPTables规则
如果Memcache服务需要对外提供服务,则可以通过IPTables进行访问控制。
iptables -A INPUT -p tcp -s 192.168.0.2 --dport 11211 -j ACCEPT
上述规则的意思是只允许192.168.0.2这个ip对11211端口进行访问。
3、修改配置文件
如果你使用的Linux,你可参考下面的方法:
先查看11211端口占用情况
执行命令:nc -vv x.x.x.x 11211 提示连接成功
执行命令:vim /etc/sysconfig/memcached,修改配置文件
增加限制 OPTIONS=”-l 127.0.0.1″,只能本机访问,不对公网开放,保存退出
执行命令:/etc/init.d/memcached reload重启服务即可
再执行连接命令提示连接失败,
4、服务器安全软件
如果你的服务器安装了安全软件,例如安全狗等,你可以配置Tcp连接策略,限制Memcache端口的外网IP访问。
修复方案
因Memcache无权限控制功能,所以需要用户对访问来源进行限制,下面分享4中有效的解决方法。
1、绑定IP
如果Memcache没有在外网开放的必要,可在Memcache启动的时候指定绑定的IP地址为 127.0.0.1。例如:
memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid
memcached -d -m 128 -l 127.0.0.1 -p 11211 -u root -d
2、配置IPTables规则
如果Memcache服务需要对外提供服务,则可以通过IPTables进行访问控制。
iptables -A INPUT -p tcp -s 192.168.0.2 --dport 11211 -j ACCEPT
上述规则的意思是只允许192.168.0.2这个ip对11211端口进行访问。
3、修改配置文件
如果你使用的Linux,你可参考下面的方法:
先查看11211端口占用情况
命令:netstat -an|more 或者 netstat -anp | grep 11211
执行命令:nc -vv x.x.x.x 11211 提示连接成功
执行命令:vim /etc/sysconfig/memcached,修改配置文件
增加限制 OPTIONS=”-l 127.0.0.1″,只能本机访问,不对公网开放,保存退出
执行命令:/etc/init.d/memcached reload重启服务即可
再执行连接命令提示连接失败,
4、服务器安全软件
如果你的服务器安装了安全软件,例如安全狗等,你可以配置Tcp连接策略,限制Memcache端口的外网IP访问。