由于memcached默认安装是不用配置密码的(具体的密码配置我也没怎么研究,据说是有的,大家感兴趣去找一找)
然而memcached链接也是非常简单的
linux命令链接使用 Telnet IP地址 端口 例如 telnet 127.0.0.1 11211
但是如果我们memcached启动时配置了外网IP可访问的话,那么怎么能保证指定的服务器能链接,而其他服务器拒绝链接呢,memcached又没有密码,怎么保证memcached的安全呢?带着这些疑问,我在网上也找了相关资料,也不知道对不对,有不对的地方,望大家海涵并指出
iptables 这个应该听过吧,这就是Linux防火墙的配置工具
没错,我们用iptables配置memcached的访问权限,比如我们开启了三个memcached服务器,端口分别是11211 11212 11213
大概的思路是
1.禁止所以IP访问11211 11212 11213端口
2.允许指定IP访问11211 11212 11213端口
这样不就解决问题了吗。
好,我们来配置一下iptables,如果大家很熟悉iptables的话,就不必往下看了,因为我讲的可能没你好。如果大家想了解更多更详细的,也可以去网上找相关资料
我启动memcached
memcached -d -m 64 -u root -p 11211 -P /tmp/memcached-11211.pid
memcached -d -m 64 -u root -p 11212 -P /tmp/memcached-11212.pid
memchaced -d -m 64 -u root -p 11213 -P /tmp/memcached-11213.pid
现在我们已经开启了3个memcached服务
接着我们用iptables做安全保护
终端输入
iptables -A INPUT -p tcp –dport 11211:11213 -j REJECT
iptables -I INPUT -s 127.0.0.1 -p tcp –dport 11211:11213 -j ACCEPT
iptables -I INPUT -s 目标IP -p tcp –dport 11211:11213 -j ACCEPT
这样只有本机和目标IP能操作memcached服务了
我们可以使用telnet 127.0.0.1 11211 访问测试