之前做了一些开发,在阿里云上部署了服务,用的是 mongodb,因为有时候会在本地做一些数据的更新,而且我这流量太小,相当于没有,当时也有点懒,就没给 db 加权限控制,结果今天发现数据被删了,要 0.15 个比特币才给恢复。
于是赶紧想了想有什么恢复措施,发现平时根本没做备份,突然想到之前使用过阿里云快照功能,进去一看,居然 17 年以后就开始收费了。。自然也没有自动快照生成。只能在重新录入数据了。又要花费好长时间了。。。
网上搜了下 mongodb 数据勒索的事件,发现以前早就有了,就是利用了 mongodb 不需要身份验证来搞的。
https://yq.aliyun.com/articles/114813
借此机会给广大 v 友提个醒,mongodb 一定要记得加密,最好也能经常备份数据。
顺便求问:mongodb 没有手动备份,有可以恢复数据的方法么。。。
1
AngryMagikarp 2020-03-30 11:16:19 +08:00
你的 mongodb 绑定的是公网 IP 地址吗
|
2
zy5a59 OP @AngryMagikarp 是。。因为在本地方便直接连数据库改些东西,就直接绑了。
|
3
AngryMagikarp 2020-03-30 11:32:03 +08:00
@zy5a59 我自己的服务器我也都是没有密码的,不过只绑定内网 IP 。要该数据就 ssh 上去改。
|
4
smallgoogle 2020-03-30 11:36:53 +08:00
淡定。我也遇到过。但是数据不重要 从新再录入一边就好了。
|
6
marcTTT 2020-03-30 11:50:29 +08:00
楼上正解,ssh 连数据库就可以,不用绑公网 ip
|
7
spadger 2020-03-30 11:52:34 +08:00
一个不加密的默认设置,害了多少人
|
8
zy5a59 OP |
9
lovedebug 2020-03-30 11:58:24 +08:00
这种数据库难道不应该限制内网本地登陆吗?
|
10
imnaive 2020-03-30 12:00:21 +08:00
可以试试 MongoDB 官方的 Atlas,需要设置信任的 IP 和管理员账号密码。
|
11
sphawkcn 2020-03-30 12:02:10 +08:00 2
佩服,敢绑公网。
|
12
xuanbg 2020-03-30 12:06:37 +08:00
无论是 mysql 、redis 还是 mongo 啊 mq 啊什么的,加密码,不用默认端口,有条件就用白名单是基操啊。
|
13
diferent 2020-03-30 12:39:12 +08:00
这不不叫未加密吧.
这个叫未认证. |
14
nicevar 2020-03-30 12:43:00 +08:00
隔一段时间在 v 站上就看到楼主这样犯错的,很多人还是一样,开公网,即使加密有啥用呢,有漏洞照样危险,不开公网才是最保险的,楼上的人也说了,直接用 ssh 就可以了,bitvise 这样的软件直接就能隐射到本地。
|
15
Vegetable 2020-03-30 12:51:48 +08:00
很常见,我还和同事分析了一波,认为就算你给了 btc 。也不可能给你恢复数据,因为他们的网络环境根本不可能允许他们下载超大数据库,而小数据库往往是没价值的。
|
16
PHPer233 2020-03-30 12:53:41 +08:00 via Android
黑客给你上了一课,吃一堑长一智,以后要保护好自己的东西,别有侥幸心理。
|
21
hantsy 2020-03-30 14:04:00 +08:00
开发环境不要用户认证就罢了,生产环境这么来能怪谁。
|
22
tt67wq 2020-03-30 14:04:35 +08:00
标题不太对,者不叫加密,叫鉴权
|
23
hyyou2010 2020-03-30 14:10:30 +08:00
我倾向于数据库本身就应该设计为默认需要口令。
|
24
wmhx 2020-03-30 14:15:39 +08:00
不要用默认端口, 不要用默认端口, 不要用默认端口
|
25
renmu 2020-03-30 14:47:00 +08:00 via Android
他们都是用机器来扫的,不会在意你是大的还是小的数据库(我被黑过一次博客,然后就被我关了 2333 )
|
26
xcstream 2020-03-30 14:51:16 +08:00
能使用 mysql 的尽量使用 mysql
|
27
janxin 2020-03-30 15:15:02 +08:00
你这是没加权限认证🤦♂️
|
28
no1xsyzy 2020-03-30 15:43:31 +08:00
@zy5a59 #18 大概三年前就看到这种消息了…… 而且被删的数据库查流量会发现没有大上传,上传量连十分之一的数据库都没有,所以根本没留底,只是简单帮你删了然后留段信息。
完全自动化扫过去的,确实没有 “人” 搞你。 |
29
Vegetable 2020-03-30 15:47:02 +08:00
@hyyou2010 mongodb 本身设计时 bind 127.0.0.1,这样其实足够了吧,我非常反对像 MySQL 那样还要去日志找密码的设计。
|
31
zy5a59 OP 感谢上面各位老哥的建议,再同步一下最新的结果:
我在 db 文件里找了半天,发现有 journal 文件,会保存每一条插入记录,还好当前数据不多,于是把 journal 文件里面的数据拿出来重新插入了一遍,避免了重新再手动录入。 后面如果大家有类似问题,也提供一个思路 |
32
proqj 2020-03-31 04:06:15 +08:00 via Android
可以,又提醒了大伙儿
|
33
123444a 2020-03-31 07:58:19 +08:00 via Android
aws 有 security group 设置硬件防火墙的,绑公网很正常
|
34
123444a 2020-03-31 07:59:29 +08:00 via Android
加什么密,都是来源 IP 限制,难道黑客黑入到你公司的 IP 那就没辙
|
35
123444a 2020-03-31 08:00:02 +08:00 via Android
你以为加密扫描的人就破解不了么
|
36
Kobayashi 2020-03-31 08:29:12 +08:00 via Android
大清亡了?
|
37
lc7029 2020-03-31 11:41:47 +08:00
1,数据库权限控制
2,访问来源控制 3,MongoDB 不给公网 IP 三选一就行 |
38
xyjincan 2020-03-31 12:58:05 +08:00
别开放端口啊,内部用就行了
|
39
mostkia 2020-03-31 13:33:12 +08:00
不备份的真大丈夫。我数据库每天零点准时备份。。虽然站点基本基本没什么人来,写个计划任务那么难嘛。。
|
40
kiddingU 2020-03-31 22:44:55 +08:00
心大
1 、公网 IP 2 、默认端口 3 、不加权限 4 、数据不备份 删库了,只能说买教训了 |
41
kiddingU 2020-03-31 22:45:21 +08:00
备份,写个脚本自动每天 dump 不就行了
|