版权声明:本文由云鼎实验室 原创文章,转载请注明出处:
文章原文连接:https://www.qcloud.com/community/article/519598001488335177mysql
来源:腾云阁 https://www.qcloud.com/communityredis
据最新报道显示,继MongoDB和Elasticsearch以后,MySQL成为下个数据勒索目标,从2月12日凌晨开始,已有成百上千个开放在公网的MySQL数据库被劫持,删除了数据库中的存储数据,攻击者留下勒索信息,要求支付比特币以赎回数据。sql
遍观MongoDB和Elasticsearch以及如今的MySQL数据库勒索,能够发现都是基线安全问题致使被黑客劫持数据而勒索,缘由在于这些服务都开放在公网上,而且存在空密码或者弱口令等使得攻击者能够轻易暴力破解成功,直接连上数据库从而下载并清空数据,特别是不正确的安全组配置致使问题被放大。mongodb
其实相似问题已不是第一次,近期云鼎实验室观测到多起案例,攻击呈现扩大态势,不只仅是勒索,更多的是服务器被入侵,从而致使数据被下载。基线安全问题已经成了Web漏洞以外入侵服务器的主要途径,特别是弱口令等状况。错误的配置能够致使相关服务暴露在公网上,成为黑客攻击的目标,加上采用空密码等弱口令,黑客能够轻易入侵这些服务。数据库
值此事件爆发之际,建议对本身的服务器进行自查,避免相关数据丢失等问题,具体自查方式可参考以下:
一、排查服务器开放的端口及对应的服务,如无必要,关闭外网访问;可使用NMap 直接执行 nmap 服务器IP(在服务器外网执行),可获得如下结果即为开放在外网的端口和服务。安全
二、重点针对这些开放在公网上的服务进行配置的检查,检查相关服务是否设置密码,是否弱口令。
三、如无必要,均不要使用root或者其余系统高权限帐号启动相关服务。服务器
1、采用正确的安全组或者iptables等方式实现访问控制;
2、关闭相关服务外网访问和修改弱密码:
一、MongoDB
a. 配置鉴权
下面以3.2版本为例,给出 MongoDB设置权限认证,具体步骤以下:ui
1. 切换到 admin 库; 2. 建立管理员用户,命令以下(user和pwd能够根据须要设置): db.createUser({user: "root",pwd: "password",roles: [ "root" ]}) 3. 使用管理员用户登陆后,根据角色建立您须要的用户
b. 关闭公网访问
可经过MongoDB的bind_ip参数进行配置,只需将IP绑定为内网IP便可,以下:搜索引擎
1. 启动时增长bind_ip参数:mongod --bind_ip 127.0.0.1,10.x.x.x 2. 在配置文件mongodb.conf中添加如下内容: bind_ip = 127.0.0.1,10.x.x.x 其中10.x.x.x为您机器的内网IP.
二、Redis
a. 配置鉴权spa
b. 关闭公网访问
c. 其余
相关配置完毕后重启Redis-server服务
三、MySQL
a. 配置鉴权
MySQL安装默认要求设置密码,若是是弱命令,可经过如下几种方式修改密码:
//以root登陆MySQL后, USE mysql; UPDATE user SET password=PASSWORD('新密码') WHERE user='root'; FLUSH PRIVILEGES;
//以root登陆MySQL后, SET PASSWORD FOR root=PASSWORD('新密码');
mysqladmin -u root -p 旧密码 新密码
b. 关闭公网访问
四、其余服务
请参考以上方式或者官方文档进行配置