VPS 上运行了自己的记账程序和博客程序,今天早上起来突然发现账单里面的记录全都没了,刚才登录到 VPS 里查看,发现数据库目录只剩下 DB_DELETED.0 和 DB_DELETED.ns 两个文件,其他的全都没了,哭晕简直!
请问大佬们这种情况是发生什么了?我的 MongoDB 没有做用户权限,也没有备份,出现这两个文件,是被人恶意删库了吗还是因为其他原因,请教啊 QAQ
晚上又登录上去看了下数据库,发现了留下来的信息,这下真的是哭晕了
经过这次教训,明天准备重装VPS,请教了大佬,有两个办法:
把服务端也迁移到VPS上,MongoDB只监听本地环回接口,彻底禁止外网访问
装上防火墙,MongoDB切换端口,设置管理员权限,定期备份,只是可怜我那垃圾VPS又得折腾了
以后一定要备份,唉
1
lifeintools 2017-04-21 14:20:27 +08:00 via iPhone 1
前一段不是报出来一个漏洞么?
|
2
jiangzhuo 2017-04-21 14:20:32 +08:00 1
https://www.v2ex.com/t/356219#reply7
如果设置了用户权限的话,也可能是你梦游的时候自己删了不记得了。 看你有没有创建主从了,如果没有的话好像完全没有希望恢复了。 你可以找找有没有给你留下联系邮箱或者比特币钱包地址,觉得价格合适交钱删库的人会还给你数据。 |
3
hellodigua OP @jiangzhuo 并没有设置管理员,默认连接的,以后只能长记性,每天备份了
|
4
hand515 2017-04-21 14:31:40 +08:00 1
我还想进来让你尽快跑路
|
5
nailuoGG 2017-04-21 14:32:49 +08:00 1
眼熟地瓜😂
|
6
Elven 2017-04-21 14:38:12 +08:00 via iPhone 1
啊嘞嘞,地瓜这名怎么这么熟悉,唔,没备份的话大概没办法了 Orz
|
7
linxl 2017-04-21 14:42:26 +08:00 1
还好我不会 MongoDB
|
8
Phariel 2017-04-21 14:44:03 +08:00 1
没有备份就 GG ,血的教训
|
9
LokiSharp 2017-04-21 14:46:07 +08:00 1
@hellodigua #3 地瓜!!!
|
10
realpg 2017-04-21 14:46:10 +08:00 1
你一定是用了 centos
|
11
anyclue 2017-04-21 14:49:59 +08:00 2
|
12
iRiven 2017-04-21 14:51:05 +08:00 via Android 1
快照
|
13
hellodigua OP @realpg 你怎么知道的! centos7
|
14
Ouyangan 2017-04-21 15:29:33 +08:00 1
没事 ,博客你迟早会自己删的.
|
15
realpg 2017-04-21 15:30:33 +08:00 1
|
17
lfzyx 2017-04-21 15:36:57 +08:00 2
debian 大法好,退 centos 保平安
|
18
jiangzhuo 2017-04-21 15:41:44 +08:00 2
arc 大法好,退 centos 保平安???
因为 centos 默认所有端口全开着的,如果是给公共访问的 mongodb 建议只给用户只读权限 |
19
lianz 2017-04-21 15:45:55 +08:00 1
你能怎么办, 你也很绝望啊
|
20
hellodigua OP @jiangzhuo 多谢大佬提醒
|
21
hellodigua OP @Ouyangan 是啊哈哈,但是数据还是想保存的……
|
22
tabris17 2017-04-21 15:51:43 +08:00 1
接下去该跑路了
|
23
DoraJDJ 2017-04-21 15:54:57 +08:00 via Android 1
缺乏安全意识,没能及时为服务器进行安全配置的后果,只能是自作自受。
下次记得做好服务器安全配置的检查,多做备份。 |
25
oott123 2017-04-21 16:29:43 +08:00 1
你用 MongoChef 之类的 GUI 工具连上去看(主要是方便),应该能看到删库的人留下的联系信息。
不过建议不要交赎金,很大可能交了赎金也拿不回数据…… 试试联系 VPS 提供商,看他们有没有较早的实例备份,可能可以付点钱拿回来。 |
26
wbt 2017-04-21 16:33:54 +08:00 1
我还想提醒你趁早跑路呢
|
27
ftdejo 2017-04-21 16:42:28 +08:00 1
兄得 你这个还好 要是商业项目就只能跑路了 2333
|
28
jeneser 2017-04-21 16:46:50 +08:00 via Android 1
也别跑路了,从头再来吧......
|
29
notreami 2017-04-21 17:08:01 +08:00 1
每天定时备份,多简单的事情
|
30
nullcc 2017-04-21 17:10:01 +08:00 1
可能你的 mongodb 对外开放端口且是默认端口,也没设置密码,被别人扫到,直接进去搞破坏。
|
31
misaka19000 2017-04-21 17:10:48 +08:00 via Android 1
楼主不哭,摸摸头😆
|
32
jiangzhuo 2017-04-21 17:47:05 +08:00 1
@murmur 你得看良心不良心了吧。要树立国际化的百年勒索品牌的话,信誉肯定是首要的。拿了赎金还撕票的话以后还怎么在江湖上混,第二票再绑了谁还会给赎金。
|
34
flyingghost 2017-04-21 18:08:15 +08:00 2
1 ,数据库或者说任何服务开外网并且不上锁简直就是作死。
2 ,比特币勒索不要去支付,根本没人帮你备份的。 3 ,安全意识差和操作系统默认设置没关系。就算默认不开端口, lz 为了外网访问而搜索百度然后打开 iptables 设置。 4 ,作为以上一条补充: mongodb 虽然默认没密码,但人家默认不开外网的。。。 |
35
tblxdezhu 2017-04-21 18:14:35 +08:00 via Android 1
我也是来看楼主是不是要跑路的
|
37
hellodigua OP @nullcc 很有可能,因为这台机器平时真的用的不多
|
38
hellodigua OP @anyclue 看到了你贴的第一个帖子,灵机一动,去看了下那个数据库,然后发现悲剧了……
|
39
hellodigua OP |
40
oott123 2017-04-21 20:55:42 +08:00 via Android 1
不想迁移服务端可以通过配置 iptables 给你服务端开白名单解决。
当然用户名密码也是有必要的。 换端口意义就不是很大了,属于掩耳盗铃,防止一些批量扫描而已。 |
41
hellodigua OP @oott123 了解,明天去试试,还是多谢了~
|
42
gongpeione 2017-04-21 21:04:38 +08:00 1
心疼地瓜 dalao
|
43
mathgl 2017-04-21 21:50:42 +08:00 1
我在 vps 用 mongodb 从来都会屏蔽外网访问。
|
44
hellodigua OP @mathgl 服务端不在本地,没办法
|
45
hellodigua OP @gongpeione 被树 dalao 心疼
|
46
mathgl 2017-04-21 22:36:25 +08:00 1
@hellodigua 如果两台都是 vps, 那么搞白名单好了,老实说任何数据库放开端口,就算有用户密码,都是高风险,不推荐这样用。
|
47
gzlock 2017-04-21 23:21:04 +08:00 1
docker-compose 内使用 mongodb ,不暴露端口到宿主机,可否避免这个问题?
|
48
GoBeyond 2017-04-21 23:30:50 +08:00 via Android 1
数据库没特殊需求给外网等于找死
|
49
yunshansimon 2017-04-21 23:40:35 +08:00 1
@gzlock 除非你的 client 端也在同一台机器上,并用 docker 的内置 router 连接,才能保证安全。或者映射服务端口到 127.0.0.1 上。没有密码千万不要映射到外部 ip 上。
|
50
cxbig 2017-04-22 00:46:25 +08:00 1
老生常谈的问题
1. 只用 SSH Key 登录 2. 任何数据库服务不对外网公开 3. 经常、多地备份 |
51
fy 2017-04-22 00:53:55 +08:00 1
看看能不能回滚,也就是自动的镜像备份什么的。
话说一个博客程序弄 mongodb 干啥,还不如 sqlite 健壮朴实,迁移方便啊! |
52
Mbin 2017-04-22 04:29:49 +08:00 via iPhone 1
这是去年的事了,楼主竟然没警觉
|
53
neroxps 2017-04-22 09:07:34 +08:00 1
只开放使用的端口是必须的吧?
端口就是洞洞,开的越多越危险啊。恨不得 SSH 也用 HTTPS 代理呢。 |
54
2owe 2017-04-22 09:39:51 +08:00 1
给钱的方法不靠谱吧,割肉喂狼
|
55
hellodigua OP @fy 前端开发练手用的,,,
|
56
hellodigua OP @Mbin 前端表示基本没关注过数据库方面的问题啊,结果今天才被坑。。。
|
57
hellodigua OP @2owe 肯定是不会给钱的,我那点数据也不值 800 块。。。
|
58
kimoCHG 2017-04-22 10:31:05 +08:00 1
MongoDB 鉴权模式登录 http://www.jianshu.com/p/79caa1cc49a5
|
59
realpg 2017-04-22 11:44:10 +08:00 1
|
60
wdlth 2017-04-22 11:55:59 +08:00 1
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited 默认只开放 22 ,肯定是你改了 iptables 规则或者关闭了 iptables …… |
61
L1shen 2017-04-22 11:59:43 +08:00 via Android 1
心疼地瓜 dalao
|
62
annielong 2017-04-22 12:03:08 +08:00 1
前一段时间就已经发生一波了,一看就是不经常光 V2 ,还有别付钱,都是删库的,谁会多事给你备份一下
|
63
yuchting 2017-04-22 12:15:06 +08:00 1
|
64
1yndonn3u 2017-04-22 15:01:15 +08:00 1
这个 case 发生很久了,竟然楼主都没有注意么。
另外,换一个入门 MongoDB , MongoDB 从入门到跑路。 |
65
tux 2017-04-22 15:48:33 +08:00 via Android 1
数据库被绑架了,绑匪要求赎金 0.1BTC ,不然就撕票
|
66
cwek 2017-04-22 15:52:57 +08:00 1
已经猜出了,开放 mongodb 被勒索删库,没备份的话,默哀吧。
|
67
DT27 2017-04-22 16:20:21 +08:00 1
我的站点跟数据库每天自动打包后通过 webdev 备份到坚果云。
之前用的 dropbox ,后台文件大了, dropbox 又太贵就改坚果云了。。 |
70
kaneg 2017-04-22 18:52:32 +08:00 via iPhone 1
防火墙配起来,只开必要的端口,比如 ufw
|
71
nanjishidu 2017-04-22 19:05:51 +08:00 via iPhone 1
数据备份很重要 。。。
|
73
realpg 2017-04-22 20:59:49 +08:00
|
75
realpg 2017-04-22 21:03:56 +08:00 1
@kn007 #74
我觉得这个问题上 debian 系的 apt 做的要好 首先你要复杂应用 数据库都跟 webserver 之类分离的大项目,一般都有更专业一些的系统管理员(哪怕非专职) 反而是大部分的单服务器玩法的 不精通运维 就像楼主一样踩坑 |
77
realpg 2017-04-22 21:14:35 +08:00
@kn007 #76
mysql 其实还好,真正不开权限系统的好像还真没见过几个 redis 和 mongodb 就完蛋了 尤其 redis 如果你用 sshkey 登陆 server ,用备份接口直接获取你 server 的 root 登录权限 |
78
kn007 2017-04-22 21:16:46 +08:00
@realpg 所有配置都监听 127.0.0.1 。。。另外我只开放 web sever 对外端口,其他都是 Drop 或者有特定规则、软防。
|
80
ferran 2017-04-22 22:11:10 +08:00
看到 lz 头像就想起了鱼雷跳法 233
|
81
dven 2017-04-23 03:47:25 +08:00
做个类似 SSH 隧道或者 VPN 的东西然后 iptables 吧...
@realpg 开外网的 Ubuntu 或者 SLES 也没卵用 |
82
dven 2017-04-23 03:48:54 +08:00
不过...财务数据库直接跑在公网机器上没有问题?要是别有用心的人故意篡改贵司记账数据
|
84
LCD 2017-04-23 07:46:15 +08:00 via Android
苦逼啊
|
85
loveminds 2017-04-23 09:24:48 +08:00
|
86
loveminds 2017-04-23 09:27:58 +08:00
http://www.tuicool.com/articles/fMRniq
类似这种东西来做隧道可以实现只监听 127.0.0.1 |
88
timothyye 2017-04-23 09:52:55 +08:00 via Android
目测是没密码并且端口暴露给公网被黑
|
89
tuutoo 2017-04-23 12:49:31 +08:00
数据库和网站至少要每天备份啊。
|
90
pynix 2017-04-23 15:55:03 +08:00
公网访问不设认证,你真牛逼。。。
|
91
lights 2017-04-23 16:56:18 +08:00
前天我们公司的同事才把生产环境代码全都删掉了……不过幸好数据库没删掉
|