为你的mongodb砌堵墙吧,防止被攻击和勒索



  • 起因

    2017年1月,当大家都在为16的逝去写总结,并为17年的到来做计划的时候,一波黑客发动了一轮攻击,攻击的对象瞄准了mongodb数据库。他们删除了所有数据库数据,并留下一个勒索数据库。不幸的是,我也成为这“幸运”的一员。 当收到用户反馈说,无法登陆网站时,我还在奇怪。当我连上线上服务器时,看到了这个: API参考):

    >mongodump -h dbhost -d dbname -o dbdirectory
    -h:
    MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
    -d:
    需要备份的数据库实例,例如:test
    -o:
    备份的数据存放位置,例如:c:\data\dump,该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。

    MongoDB数据恢复方式(API参考):

    mongodb使用 mongorestore 命令来恢复备份的数据。
    语法
    mongorestore命令脚本语法如下:
    >mongorestore -h dbhost -d dbname --directoryperdb dbdirectory
    -h:
    MongoDB所在服务器地址
    -d:
    需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
    --directoryperdb:
    备份数据所在位置,例如:c:\data\dump\test,这里为什么要多加一个test,而不是备份时候的dump。
    --drop:
    恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!

    备份策略

    • 全量备份:可以最快的时间快速恢复所有数据,缺点是备份成本大,时间长;

    • 全量备份+增量备份:可以较快的恢复所有数据,缺点是恢复时间长,如果增量数据有问题,无法恢复所有数据;

    • 搭建从库,直接切换到从库,前提是从库的数据安全可靠。

    后记

    通过这次的教训,更加深刻认识到数据库安全的重要性,在以后的工作中一定要更加注重服务器和数据库的安全,做好安全措施。

    谨记,安全,安全,安全。


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待