MongoDB被攻擊 - 開啓Mongo權限

What happen?

    就在剛剛。。。😂

    打開我的網站的時候,發現對數據庫的請求都失敗了;我的天都報500了,又是什麼bug🙃

    排查到數據庫的時候,打開Robo 3T,發現數據庫沒有了,驚呆😱!!!

    繼續查看Mongo日誌

很明顯被刪掉了;


why?

(納悶🙄,別人怎麼知道我密碼,怎麼刪掉的?)在網上查了之後,知道是因爲數據庫沒有添加權限

自己試一試:(居然真的直接登上來了)


Solution:

既然直接就可以登錄,那就給數據庫添加權限了;

先將之前的數據庫的備份通過mongorestore恢復一下;

再次查看dbs的時候,我笑了🤣,在我恢復之際,對方給我新建了一個db

勒索我。。。

創建用戶:

  • use  video
  • db.createUser({user:"user",pwd:"123456",roles:[{role:"readWrite",db:"video"}]}  // 可以配置多個db的權限
  • show users

role可以選擇以下:

Built-In Roles(內置角色):
    1. 數據庫用戶角色:read、readWrite;
    2. 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
    3. 集羣管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    4. 備份恢復角色:backup、restore;
    5. 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    6. 超級用戶角色:root  
    // 這裏還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
    7. 內部角色:__system

具體角色的功能: 

Read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫裏創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和複製集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限

進入 /etc/mongod.conf ,修改mongod的配置,開啓權限驗證

...
security:
  authorization: enabled
...

重啓mongod

systemctl start mongod


Authorization:

輸入命令mongo,任何命令都無法成功

切換到對應的數據庫下,輸入用戶的用戶名和密碼,驗證權限

到這裏都OK啦😁

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章