mongodb被黑后的防護

簡介

悲催的一天,自己服務(wù)器的mongoDB數(shù)據(jù)庫被黑了,里面的數(shù)據(jù)被一洗而空,幸好里面都是些測試用的數(shù)據(jù),和一些博客文章;

言歸正傳,吃一線長一智,所以昨天在網(wǎng)上查找了很多資料。原來之前已經(jīng)有很多人被黑過,也找到了被黑的原因。

自己對于mongoDB只限于知道怎么用,對于其機制幾乎不是怎么懂,因此,沒給mongoDB設(shè)置用戶和訪問權(quán)限,也將mongoDB放在了公網(wǎng),所以給別人專了空子,被黑是自己活該吧。

MongoDB

環(huán)境

阿里云ESC
CentOS6.8系統(tǒng)

安裝

1.下載并解壓

cd /usr/local/src/
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.2.tgz 

tar -zxvf mongodb-linxu-x86_64-3.4.2.tgz
mkdir /usr/local/mongodb
cp -R mongodb-linuc-x86_64-3.4.2/ /usr/local/mongodb

2.配置

exprot PATH=/usr/local/mongodb/bin:$PATH

3.創(chuàng)建數(shù)據(jù)庫文件和日志文件

    cd /user/local/mongodb
    mkdir db
    mkdir logs
    cd  bin
    vi mongodb.conf
    
dbpath=/usr/local/mongodb/db
logpath=/usr/local/mongodb/logs/mongodb.log
port=27017
fork=true
nohttpinterface=true

4.重新綁定mongodb的配置文件地址和訪問IP

/usr/local/mongodb/bin/mongod --bind_ip localhost -f /usr/local/mongodb/bin/mongodb.conf

5.開機自動啟動mongoDB

vi /etc/rc.d/rc.local
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf

設(shè)置用戶和密碼,以及權(quán)限

1.mongodb的開啟,進入mongodb的shell模式

cd  /usr/local/mongodb/bin
./mongo

2.創(chuàng)建用戶和權(quán)限

use admin
db.createUser(
    {
        user:"admin",
        pwd:"admin",
        roles:[
            {role:"userAdminAnyDatabase",db:"admin"},
            {role:"readWrite",db:"admin"}
        ]
    }
);

3.設(shè)置開啟權(quán)限

cd /usr/local/mongodb/bin
vi mongodb.conf

添加以下一行,在末尾

auth=true

4.重啟mongodb服務(wù)

./mongod --config /usr/local/mongodb/bin/mongodb.conf

5.給其他數(shù)據(jù)庫創(chuàng)建用戶和權(quán)限

當(dāng)輸入show.db時,你會發(fā)現(xiàn)你已經(jīng)無權(quán)操作了

mongo1.png

據(jù)庫admin進行連接,否則其他db連接時,會失敗;

use admin
db.auth("admin","admin")

這時在使用show.db就會成功(自己去試吧,不展示了)

創(chuàng)建新的數(shù)據(jù)庫myDB,并且給其添加用和權(quán)限

use myDB
db.createUser(
    {
        user:"myDB",
        pwd:"myDB",
        roles:[
            {role:"readWrite",db:"myDB"},
            {role:"dbOwner",db:"myDB"}
        ]
    }
)

切記,開啟myDB之前,要開啟admin的驗證;

其他操作請參考:http://blog.csdn.net/kk185800961/article/details/45619863

nodejs用mongoose連接

const mongoose = require('mongoose');
mongoose.connect('mongodb://myDB:myDB@localhost:27017/myDB',(err) => {
    if(err){
        console.log("數(shù)據(jù)庫連接失敗!");
    } else{
        console.log("數(shù)據(jù)庫連接成功!");
    }
});

php連接

<?php

/*mongodb連接*/  
$m = new Mongo("192.168.138.35:27017");  
/*選擇comment*/  
$db = $m->melon;  
/*連接數(shù)據(jù)庫*/  
$db->authenticate("melon", "melon");  

?>

原文: http://blog.hawkzz.com/2017/08/04/mongodb被黑后的防護/  
作者: hawk_zz

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容