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