安装
memcached
依赖libevent
,要先安装libevent
然后安装memcached
。
安装libevent(以下命令暂未亲测):
# tar zxvf libevent-2.0.12-stable.tar.gz
# cd libevent-2.0.12-stable
# ./configure –prefix=/home/memcached/libevent-2.0.12-stable
# make && make install
安装memcached:
# tar zxvf memcached-1.4.26.tar.gz
# cd memcached-1.4.26
# ./configure --prefix=/home/memcached/memcached-1.4.26 --with-libevent=/home/memcached/libevent-2.0.12-stable
# make && make install
启动
# cd /home/memcached/memcached-1.4.26
# ./memcached -p 11211 -d -u root -m 100 -c 256 -P /tmp/memcached.pid -l 127.0.0.1
参数解释:
-p是设置Memcache监听的端口,这里设置了11211;
-d选项是启动(-d start);
-u是运行Memcache的用户,这里是root;
-m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB;
-c选项是最大运行的并发连接数,默认是1024,这里设置了256,按照你服务器的负载量来设定;
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
-l是设置监听的IP,设置为127.0.0.1可以只让本机才能访问,外网无法访问;
想开机自动启动的话,只需在/etc/rc.d/rc.local
中加入一行下面命令:
cd /etc/rc.d/
vim rc.local
# 添加如下内容
/home/memcached/memcached-1.4.26/memcached -p 11211 -d -u root -m 100 -c 256 -P /tmp/memcached.pid -l 127.0.0.1
其它命令
停止:
kill `cat /tmp/memcached.pid`
查看启动的memcache服务:
netstat -lp | grep memcached
查看memcache的进程号:
ps -ef | grep memcached
禁止外网访问Memcached
漏洞描述
Memcached
是一套常用的key-value
缓存系统,由于它本身没有权限控制模块,所以对公网开放的Memcache服务很容易被攻击者扫描发现,攻击者通过命令交互可直接读取Memcached中的敏感信息。
解决方法
解决方法其实上面已经提到了,就是启动memcached
时指定-l 127.0.0.1
,这样外网就无法访问了,为了安全起见,再在防火墙增加如下配置vim /etc/sysconfig/iptables
:
# 只允许本机访问11211端口
-A INPUT -p tcp -s 127.0.0.1 --dport 11211 -j ACCEPT
-A INPUT -p udp -s 127.0.0.1 --dport 11211 -j ACCEPT
-A INPUT -p tcp --dport 11211 -j DROP
-A INPUT -p udp --dport 11211 -j DROP
然后执行service iptables restart
重启生效。
Windows下安装
本来不应该写在这里,但是内容太少不足以单独写一篇文章。
Windows下直接双击exe文件就是了,但是老是开一个窗口好难看,最好配置成服务。
管理员身份打开命令行:
memcached.exe -d install
默认生成如下服务:
如果想安装多个不同端口的服务或者自定义名称的话,需要用sc
命令自己来安装,这里不做多介绍。
Mac下安装
brew install memcached
安装,安装完配置环境变量:
vim /etc/profile
PATH=$PATH:/usr/local/opt/memcached/bin/
wq
source /etc/profile
启动:memcached -p 11211 -d -u root -m 100 -c 256 -P /tmp/memcached.pid -l 127.0.0.1