国产精品香蕉在线观看网,亚洲欧美精品综合在线观看,亚洲不卡av一区二区无码不卡,亚洲日本精品国产第一区二区

移動(dòng)安全 安全管理 應(yīng)用案例 網(wǎng)絡(luò)威脅 系統(tǒng)安全應(yīng)用安全 數(shù)據(jù)安全 云安全
當(dāng)前位置: 主頁 > 信息安全 > 應(yīng)用安全 >

解決mongoDB各種安全隱患問題

時(shí)間:2014-07-09 17:09來源:TuZhiJiaMi企業(yè)信息安全專家 點(diǎn)擊:
Mongo的默認(rèn)安裝經(jīng)常會(huì)導(dǎo)致各種安全問題,例如鳳凰網(wǎng)某系統(tǒng)和mongodb未授權(quán)訪問。 今天我們來聊聊MongoDB的安全配置。 1.MongoDB安裝時(shí)不添加任何參數(shù),默認(rèn)是沒有權(quán)限驗(yàn)證的,登錄的用戶可以對數(shù)
Tags應(yīng)用安全(1006)安全隱患(96)mongoDB(1)  

  Mongo的默認(rèn)安裝經(jīng)常會(huì)導(dǎo)致各種安全問題,例如鳳凰網(wǎng)某系統(tǒng)和mongodb未授權(quán)訪問。

解決mongoDB各種安全隱患問題

  今天我們來聊聊MongoDB的安全配置。

  1.MongoDB安裝時(shí)不添加任何參數(shù),默認(rèn)是沒有權(quán)限驗(yàn)證的,登錄的用戶可以對數(shù)據(jù)庫任意操作而且可以遠(yuǎn)程訪問數(shù)據(jù)庫,需以–auth參數(shù)啟動(dòng)。

  2.在剛安裝完畢的時(shí)候MongoDB都默認(rèn)有一個(gè)admin數(shù)據(jù)庫,此時(shí)admin數(shù)據(jù)庫是空的,沒有記錄權(quán)限相關(guān)的信息。當(dāng) admin.system.users一個(gè)用戶都沒有時(shí),即使mongod啟動(dòng)時(shí)添加了–auth參數(shù),如果沒有在admin數(shù)據(jù)庫中添加用戶,此時(shí)不 進(jìn)行任何認(rèn)證還是可以做任何操作(不管是否是以–auth 參數(shù)啟動(dòng)),直到在admin.system.users中添加了一個(gè)用戶。

  3.MongoDB的訪問分為連接和權(quán)限驗(yàn)證,即使以–auth參數(shù)啟動(dòng)還是可以不使用用戶名連接數(shù)據(jù)庫,但是不會(huì)有任何的權(quán)限進(jìn)行任何操作

  4.admin數(shù)據(jù)庫中的用戶名可以管理所有數(shù)據(jù)庫,其他數(shù)據(jù)庫中的用戶只能管理其所在的數(shù)據(jù)庫。

  5.在2.4之前版本中,用戶的權(quán)限分為只讀和擁有所有權(quán)限;2.4版本的權(quán)限管理主要分為:數(shù)據(jù)庫的操作權(quán)限、數(shù)據(jù)庫用戶的管理權(quán)限、集群的管理權(quán)限,建議由超級用戶在admin數(shù)據(jù)庫中管理這些用戶。不過依然兼容2.4版本之前的用戶管理方法。

  0×01 MongoDB中用戶的角色說明

  1. read角色

  數(shù)據(jù)庫的只讀權(quán)限,包括:

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

  2. readWrite角色

  數(shù)據(jù)庫的讀寫權(quán)限,包括:

  read角色的所有權(quán)限

  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角色

  數(shù)據(jù)庫的管理權(quán)限,包括:

  clean,collMod,collStats,compact,convertToCappe

  create,db.createCollection(),dbStats,drop(),dropIndexes

  ensureIndex(),indexStats,profile,reIndex

  renameCollection (within a single database.),validate

  4. userAdmin角色

  數(shù)據(jù)庫的用戶管理權(quán)限

  5. clusterAdmin角色

  集群管理權(quán)限(副本集、分片、主從等相關(guān)管理),包括:

  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角色

  任何數(shù)據(jù)庫的只讀權(quán)限(和read相似)

  7. readWriteAnyDatabase角色

  任何數(shù)據(jù)庫的讀寫權(quán)限(和readWrite相似)

  8. userAdminAnyDatabase角色

  任何數(shù)據(jù)庫用戶的管理權(quán)限(和userAdmin相似)

  9. dbAdminAnyDatabase角色

  任何數(shù)據(jù)庫的管理權(quán)限(dbAdmin相似)

  0×02 MongoDB安裝注意事項(xiàng)

  1. 安裝的時(shí)候需要加–auth

  加了–auth之后MongoDB才需要驗(yàn)證

  2. 需要加–nohttpinterface

  不加會(huì)有一個(gè)28017的端口監(jiān)聽,可以通過網(wǎng)頁管理mongodb,不需要請去掉

  3. 可以加–bind_ip

  加之后可以限制訪問的ip

  4. 可以加–port

  加了之后可以重新制定端口,默認(rèn)為27017

  5. 安裝完之后需立即在admin數(shù)據(jù)庫中添加一個(gè)用戶

  只有在admin數(shù)據(jù)庫中添加一個(gè)用戶后才能使認(rèn)證生效

  注:安裝的過程其實(shí)就是添加1個(gè)服務(wù),指定啟動(dòng)時(shí)候的參數(shù)。

  0×03 用戶授權(quán)

  1. 2.4之前版本的用戶管理方式

  1.1、進(jìn)入admin創(chuàng)建一個(gè)管理賬號(hào)

  use admin

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

  1.2、進(jìn)入需要使用的數(shù)據(jù)庫中創(chuàng)建一個(gè)程序使用用戶

  use test

  db.addUser("test","test")默認(rèn)擁有讀寫權(quán)限

  db.addUser("test","test",True)擁有讀取權(quán)限

  2. 2.4版本的用戶管理,也可使用之前版本的方式

  2.1、進(jìn)入admin創(chuàng)建一個(gè)管理賬號(hào)

  use admin

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

  2.2、進(jìn)入admin給使用的數(shù)據(jù)庫test創(chuàng)建一個(gè)對數(shù)據(jù)庫及日志擁有讀寫權(quán)限的賬戶

  use admin

  db.addUser({

  "user": "test",

  "pwd": "test",

  "roles": [ ],

  "otherDBRoles": {

  "test": [

  "readWrite"

  ],

  "test_log": [

  "readWrite"

  ]

  }

  })

  0×04 安全配置方案

  1. 安裝的時(shí)候加–auth,并立即在admin數(shù)據(jù)庫創(chuàng)建一個(gè)用戶

  默認(rèn)情況下MongoDB是無需驗(yàn)證的,所以這是至關(guān)重要的一步

  2. 可以考慮安裝的時(shí)候修改端口和指定訪問ip

  具體根據(jù)實(shí)際情況來設(shè)定,也可以直接在服務(wù)器防火墻上做

  3. 安裝的時(shí)候建議加上–nohttpinterface取消默認(rèn)的一個(gè)網(wǎng)頁管理方式

  默認(rèn)的web管理一般不會(huì)用,且很多人不知道,最好關(guān)閉

  4. 管理用戶處理

  因需要在admin中建立一個(gè)管理賬戶用于管理,最好是設(shè)置強(qiáng)密碼,但是不要給其他程序使用

  5. MongoDB服務(wù)運(yùn)行賬戶

  windows下可以使用network service 或者新建一個(gè)用戶,使用默認(rèn)的USERS組,然后添加給予數(shù)據(jù)庫文件及日志存儲(chǔ)目錄的寫權(quán)限,并建議取消對cmd等程序的執(zhí)行權(quán)限。

  linux下新建一個(gè)賬戶,給予程序的執(zhí)行權(quán)限和數(shù)據(jù)庫文件及日志目錄的讀寫權(quán)限,并建議取消對sh等程序的執(zhí)行權(quán)限。

  6. 控制好網(wǎng)站或者其他程序使用的連接用戶權(quán)限

  網(wǎng)站或者其他程序使用的用戶只給予對應(yīng)庫的權(quán)限,不要使用admin數(shù)據(jù)庫中的管理賬戶。

  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. 顯示所有數(shù)據(jù)庫

  show dbs

  4. 使用某個(gè)數(shù)據(jù)庫

  use test

  5. 連接數(shù)據(jù)庫

  mongo test -uroot -p123456

  6. 添加用戶認(rèn)證

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

  7. 查看用戶

  db.system.users.find()

  就寫幾個(gè)基本的,其他的網(wǎng)上很多,或者用工具連上去之后操作。

  0×06 管理工具

  1. MongoVUE

  客戶端形式的管理工具

  2. rockmongo

  基于php的web管理

  不足之處求大牛指正!

------分隔線----------------------------
  • 上一篇:沒有了
  • 下一篇:沒有了

推薦內(nèi)容