暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Mongo数据库不设置用户权限,被黑客勒索

落叶说Mysql数据库运维 2020-11-19
961

简介

   用户rpm包安装的mongo数据库,是没有用户权限认证的,这样非常的不安全,攻击者使用特定的脚本就能连上你的mongo数据库,并将数据进行加密,并给你留勒索信息

   如果你的数据非常重要,你将会付出惨重的代价,要么花很长的时间去恢复数据,前提是你有备份,并且还不能保证完全恢复,要么给攻击者付酬金。所以重要的数据库一定要设置用户认证,保证数据安全。说到mongo的用户认证,就不得不提其内部设置的用户角色,其角色分为以下几种

MongoDB角色介绍

1.Database User Roles(普通用户角色):read(非系统数据库只读),readWrite(非系统数据库读写)

2.Database Administration Roles(数据库管理员角色):dbAdmin,dbOwner,userAdmin

3.Cluster Administration Roles(集群管理管角色):clusterAdmin,clusterManager,clusterMonitor,hostManager

4.Backup and Restoration Roles(备份恢复角色):backup,restore

5.All-Database Roles(系统和非系统管理员角色):readAnyDatabase,readWriteAnyDatabase,userAdminAnyDatabase,dbAdminAnyDatabase

6.Superuser Roles(超级管理员角色):root

那每个角色有什么权限,这里给大家详细介绍一下,为安全起见,赋权的时候,一定要最小范围赋权,不要给普通应用访问用户赋管理员角色或者超级管理员角色,这样做就会非常的不安全。

MongoDB角色创建命令

1.创建超级管理员用户

db.createUser({user:'root',pwd:'123456',roles:['root']}) Successfully added user: { "user" : "root", "roles" : [ "root" ] }

2.查看创建的用户

db.system.users.find();

3.创建普通用户,有testdb数据库readWrite的权限

db.createUser({user:'jim',pwd:'jim123456',roles:[{role:'readWrite',db:'testdb'}]})

   默认mongo是没有用户认证的,如果要想让用户认证生效,需要重启mongo数据库实例 先关闭实例 mongod --shutdown -f etc/mongod.conf 再加--auth启动实例 mongod --auth --fork -f etc/mongod.conf

测试一下效果

[root@~]# mongoMongoDB shell version v4.2.2connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodbImplicit session: session { "id" : UUID("709083d5-fe98-4b21-919d-7ffce4ced0e5") }MongoDB server version: 4.2.2> show dbs;> show collections;Warning: unable to run listCollections, attempting to approximate collection names by parsing connectionStatus

不用输入用户名和密码,对mongo数据库已经做不了任何操作了。用刚才创建的新用户登录测试一下,看看效果

[root@~]# mongo -u jim -p jim123456MongoDB shell version v4.2.2connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodbImplicit session: session { "id" : UUID("a1e8fbdb-8870-46a1-ae80-b97448c37db2") }MongoDB server version: 4.2.2> show dbs;testdb  0.000GB> use testdb;switched to db testdb> show collections;t_1testtestdb

关注

1.如果您喜欢这篇文章,请点赞+转发

2.如果您特别喜欢,请加关注


文章转载自落叶说Mysql数据库运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论