起因

最近在面试,我把项目部署在了我的服务器上,数据库用的MongoDb
为了本地方便访问,我就开启了远程进入数据库的权限
偶尔去看看有没有挂掉
今天早起一看
数据没了!!!!
被黑了.png
还好里面都是测试数据
如果在生产环境里就要出大事辣!
下面一起来学下如何加强数据库安全维护叭

ps:作者在边修边码字。。

1.修改默认端口

我没改端口,使用的默认端口,黑客肯定直接去扫数据库的端口的
比如mysql的3306端口,mongoDb的27017端口,宝塔的8888端口,他们都是黑客攻击的必扫端口。
修改了默认端口以后,被扫的几率就会小很多,
如果你的服务器被盯上了,黑客扫描的时间也会被大大拉长。

命令行方式修改自行google叭
如果是宝塔安装的,在控制面板内就可以改
Snipaste_2022-04-25_11-14-21.png
理论上不是27017,安全性都会大大增强。

2.绑定ip

方法同上,但是在中国的民用网,除了服务器以外大多数都是非固定ip,绑了自己也用不了,不推荐使用

3.用户鉴权

开了用户鉴权以后,只有有权限的用户才可访问数据库。
Snipaste_2022-04-25_11-23-44.png
我之前是没有开启用户鉴权的,
我以为只有用户名和密码正确,才能进入数据库
但是不开鉴权的话只要知道ip和端口号就能访问数据库了。。
被黑了怪自己偷懒
将其修改为如下就可以了:

security:
  authorization: enabled

没开启鉴权之前:
Snipaste_2022-04-25_11-29-28.png
开启鉴权之后:
Snipaste_2022-04-25_11-29-12.png
我们可以看到开启鉴权之后
如果不使用用户名和密码登录
是无法操作数据库的

开启鉴权之前,你需要手动创建管理员用户,因为mongoDb没有内置任何用户。
创建用户可以参考:传送门