黑客24小时在线接单网站

电脑高手24在线咨询,黑客24小时在线接单网站,黑客接单平台,黑客网站找人,黑客在线qq接单

解决mongoDB各种安全隐患问题

Mongo默认安装往往会导致凤凰网系统等各种安全问题mongodb未经授权的访问。

解决mongoDB各种安全隐患问题

让我们今天谈谈MongoDB安全配置。

1.MongoDB安装时不添加任何参数,默认无权验证。登录用户可以操作数据库并远程访问数据库–auth参数启动。

2.刚安装完毕的时候MongoDB默认有一个admin此时数据库admin数据库是空的,没有与权限相关的信息记录。admin.system.users即使没有用户,mongod启动时添加–auth如果没有参数admin将用户添加到数据库中,此时可以进行任何操作而不进行任何认证(无论是否–auth 参数启动)直到admin.system.users中添加了一个用户。

3.MongoDB访问分为连接和权限验证,即使是–auth参数启动仍然可以不使用用户名连接数据库,但没有任何操作的权限

4.admin数据库中的用户名可以管理所有数据库,其他数据库中的用户只能管理数据库。

5.在2.4在之前的版本中,用户的权限分为只读和所有权;2.4版本的权限管理主要分为:数据库的操作权数据库用户管理权和集群管理权。建议超级用户admin在数据库中管理这些用户。但仍然兼容2.4版本前的用户管理方法。

0×01 MongoDB用户的角色描述

1. read角色

只读数据库的权限包括:

aggregate,checkShardingIndex,cloneCollectionAsCapped,collStats,count,dataSize,dbHash,dbStats,distinct,filemd5,mapReduce (inline output only.),text (beta feature.)geoNear,geoSearch,geoWalk,group

2. readWrite角色

数据库的读写权限包括:

read角色的所有权限

cloneCollection (as the target database.),convertToCapped,create (and to create collections implicitly.),renameCollection (within the same database.)findAndModify,mapReduce (output to a collection.) drop(),dropIndexes,emptycapped,ensureIndex()

3. dbAdmin角色

数据库的管理权限包括:

clean,collMod,collStats,compact,convertToCappe create,db.createCollection(),dbStats,drop(),dropIndexes ensureIndex(),indexStats,profile,reIndex renameCollection (within a single database.),validate

4. userAdmin角色

数据库的用户管理权限

5. clusterAdmin角色

包括:

addShard,closeAllDatabases,connPoolStats,connPoolSync,_cpuProfilerStart_cpuProfilerStop,cursorInfo,diagLogging,dropDatabase shardingState,shutdown,splitChunk,splitVector,split,top,touchresync serverStatus,setParameter,setShardVersion,shardCollection replSetMaintenance,replSetReconfig,replSetStepDown,replSetSyncFrom repairDatabase,replSetFreeze,replSetGetStatus,replSetInitiate logRotate,moveChunk,movePrimary,netstat,removeShard,unsetSharding hostInfo,db.currentOp(),db.killOp(),listDatabases,listShardsgetCmdLineOpts,getLog,getParameter,getShardMap,getShardVersion enableSharding,flushRouterConfig,fsync,db.fsyncUnlock()

6. readAnyDatabase角色

任何数据库的只读权限(和read相似)

7. readWriteAnyDatabase角色

任何数据库的读写权限(和readWrite相似)

8. userAdminAnyDatabase角色

任何数据库用户的管理权限(和userAdmin相似)

9. dbAdminAnyDatabase角色

任何数据库的管理权限(dbAdmin相似)

0×02 MongoDB安装注意事项

1. 安装时需要添加–auth

加了–auth之后MongoDB才需要验证

2. 需要加–nohttpinterface

没有28017年的端口监控,可以通过网页管理mongodb,请不要去掉

3. 可以加–bind_ip

此外,访问可以限制ip

4. 可以加–port

添加后,端口可以重新制定,默认为27017

5. 安装后需要立即安装admin在数据库中添加用户

只有在admin在数据库中添加用户后,认证才能生效

注:安装过程实际上是在指定启动参数时添加一个服务。

0×03 用户授权

1. 2.4以前版本的用户管理模式

1.1、进入admin创建管理账户

use admin db.addUser("test","test")

1.2、在需要使用的数据库中创建程序

use test db.addUser("test","test")默认有读写权限 db.addUser("test","test",True)有读取权限

2. 2.4版本的用户管理也可以使用以前版本的方式

2.1、进入admin创建一个管理账号

use admin db.addUser("test","test")

2.2、进入admin数据库test创建有读写权限的数据库和日志账户

use admin db.addUser({"user": "test","pwd": "test","roles": [ ],"otherDBRoles": {"test": ["readWrite"],"test_log": ["readWrite"]}})

0×04 安全配置方案

1. 安装时添加–auth,并立即在admin创建用户的数据库

默认情况下MongoDB不需要验证,所以这是至关重要的一步

2. 安装时可考虑修改端口和指定访问ip

可根据实际情况直接在服务器防火墙上设置

3. 安装时建议添加 –nohttpinterface取消默认的网页管理模式

默认的web一般不使用管理,很多人不知道,***关闭

4. 管理用户处理

因需要在admin在管理中建立管理账户,***是设置强密码,但是不要给其他程序使用

5. MongoDB服务运营账户

windows下可以使用network service 或新用户,默认使用USERS组,然后添加写数据库文件和日志存储目录的权限,建议取消cmd程序执行权限等。

linux下面新建一个账户,给予程序执行权、数据库文件和日志目录的读写权,建议取消sh程序执行权限等。

6.控制网站或其他程序使用的连接用户权限

使用网站或其他程序的用户只给予相应的库权限,不使用admin管理账户在数据库中。

0×05 常用命令

1. 安装

mongod --dbpath d:\mongodb\data --logpath d:\mongodb\log\mongodb.log ----nohttpinterface --auth --install

2. 添加用户

use admin db.addUser("test","test")

3. 显示所有数据库

show dbs

4. 使用数据库

use test

5. 连接数据库

mongo test -uroot -p123456

6. 添加用户认证

db.auth("username","password")

7. 查看用户

db.system.users.find()

写几个基本的,其他网上很多,或者用工具连接后操作。

0×06 管理工具

1. MongoVUE

以客户端形式管理工具

2. rockmongo

基于php的web管理

求大牛指正缺点!

   
  • 评论列表:
  •  断渊故侍
     发布于 2022-05-28 12:59:17  回复该评论
  • "test_log": ["readWrite"]}}) 0×04 安全配置方案1. 安装时添加–auth,并立即在admin创建用户的数据库默认情况下MongoDB不需要验证,所以这是至关重要的一步2. 安装时可考虑修改端口和指定访问ip可根据实

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.