2018-01-13 23:43:38
来 源
中存储
阿里云
阿里云风险等级为中危的memcached基线检测,-u root说明了目前正是在以root权限运行,这也正是阿里云提示启动权限检测的原因了。加固建议: 创建memcached低权限账号运行memcached。

阿里云 基线配置不当

阿里云ECS服务器实例提示有几个基线配置不当,其中一个风险等级为中危的memcached基线检测。

memcached基线检测

漏洞详细描述

检查项: memcached启动权限检测

当前值: root

加固建议: 创建memcached低权限账号(例如:useradd memcached),并在memcached启动时加上-u memcached。注意:在切换低权限账户启动时,需要将memcached文件目录使用chown -R memcached:memcached修改上述目录权限

解决方案

其实不记得什么时候安装过这个memcached的,但是既然提示了那就看看,首先确定下其安装:

[云入门_Yunrumen.com ~]# find / -name memcached

/usr/local/include/memcached

/usr/local/bin/memcached

[云入门_Yunrumen.com bin]# ps aux|grep memcached

root      1969  0.0  0.0 341360   604 ?        Ssl   2017   8:20 /usr/local/bin/memcached 

-d -m 256 -l 127.0.0.1 -p 11211 -u root

可以看到确实已经安装并启动,其中-u root说明了目前正是在以root权限运行,这也正是阿里云提示启动权限检测的原因了。其实-l 127.0.0.1已经限制了只能本机访问memcached,除非有人侵入了你的主机,否则是安全的,所以即便是提醒这是个中危风险,也可以选择忽略。想要更踏实,或者看着有个风险提示就碍眼,那就继续啦。

提醒,开始任何操作之前,请确保系统已经备份了哦!

下边开始修改root为一个低权限账号memcached。

首先添加用户:

[云入门_Yunrumen.com bin]# useradd -d /home/memcached -m memcached

更改属主和组:

[云入门_Yunrumen.com bin]# chown memcached:memcached /usr/local/bin/memcached

[云入门_Yunrumen.com bin]# ls -l /usr/local/bin/memcached

-rwxr-xr-x 1 memcached memcached 452521 Feb 27  2017 /usr/local/bin/memcached

然后停止memcached,命令如下:

[云入门_Yunrumen.com bin]# ps -ef |grep memcached

root      1969     1  0  2017 ?        00:08:21 /usr/local/bin/memcached -d -m 256 -l 127.

0.0.1 -p 11211 -u rootroot     19683 19477  0 01:09 pts/0    00:00:00 grep memcached

[云入门_Yunrumen.com bin]# kill 1969

[云入门_Yunrumen.com bin]# ps -ef |grep memcached

root     19685 19477  0 01:09 pts/0    00:00:00 grep memcached

最后重新启动memcached,命令如下:

[云入门_Yunrumen.com bin]# memcached -d -m 1024 -u memcached -l 127.0.0.1 -p 11222 -c 1024 -P /tmp/memcached.pid

检查启动成功:

[云入门_Yunrumen.com bin]# ps -ef |grep memcached

502      19693     1  0 01:16 ?        00:00:00 memcached -d -m 1024 -u memcached -l 127.0.0.1 -p 11222 -c 1024 -P /tmp/memcached.pidroot     19702 19477  0 01:16 pts/0    00:00:00 grep memcached

可以看到,使用memcached用户启动,占用内存1024兆,限制了只能本机访问,端口从默认的11221变成了11222,进程保存到 /tmp/memcached.pid。

关于memcached

Memcached是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以对公网开放的Memcache服务很容易被攻击者扫描发现,攻击者通过命令交互可直接读取Memcached中的敏感信息。

Memcached命令参数说明

  • -d 是指启动一个守护进程。
  • -m 是指分配给Memcached使用的内存数量,单位是MB,以上为1024MB。
  • -u 是指运行Memcached的用户,推荐使用单独普通权限用户memcached,而不要使用root权限账户。
  • -l 是指监听的服务器IP地址,例如指定服务器的IP地址为127.0.0.1。
  • -p 是用来设置Memcached的监听端口,默认端口为11211。建议设置1024以上的端口。
  • -c 是指最大运行的并发连接数,默认是1024。可按照您服务器的负载量来设定。
  • -P 是指设置保存Memcached的pid文件,例如保存在 /tmp/memcached.pid 位置。

推荐学习资料:

Memcached在线教程

Memcached系统防护加固,应对目前流行的Memcached 超大型DRDoS攻击

对于正在使用Memcached系统的用户,为了避免被攻击者利用,使Memcached成为攻击源,对外发起攻击流量,影响自身系统性能,我们提供如下几点建议。

1)在边界网络设备上配置URPF策略,过滤外发的虚假源IP报文;

2)在Memcached系统前进行深度检测,直接过滤报文特征中set key 0 900 64000的第三个字段过大的数据包,这样做可以在Memcached系统被修改利用成为攻击源前进行拦截;

3)对Memcached服务进行安全检查,查看Memcached服务是否监听UDP端口。查找Memcached进程,查看是否有-l参数,如果没有则默认为0.0.0.0。若Memcached服务不需要监听UDP,禁用UDP。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。