簡介
悲催的一天怠噪,自己服務(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)限
當輸入show.db時蹂空,你會發(fā)現(xiàn)你已經(jīng)無權(quán)操作了
據(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