美文网首页
mongodb被黑后的防护

mongodb被黑后的防护

作者: hawkzz | 来源:发表于2017-08-04 12:41 被阅读0次

简介

悲催的一天,自己服务器的mongoDB数据库被黑了,里面的数据被一洗而空,幸好里面都是些测试用的数据,和一些博客文章;

言归正传,吃一线长一智,所以昨天在网上查找了很多资料。原来之前已经有很多人被黑过,也找到了被黑的原因。

自己对于mongoDB只限于知道怎么用,对于其机制几乎不是怎么懂,因此,没给mongoDB设置用户和访问权限,也将mongoDB放在了公网,所以给别人专了空子,被黑是自己活该吧。

MongoDB

环境

阿里云ESC
CentOS6.8系统

安装

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.创建数据库文件和日志文件

    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

设置用户和密码,以及权限

1.mongodb的开启,进入mongodb的shell模式

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

2.创建用户和权限

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

3.设置开启权限

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

添加以下一行,在末尾

auth=true

4.重启mongodb服务

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

5.给其他数据库创建用户和权限

当输入show.db时,你会发现你已经无权操作了

mongo1.png

据库admin进行连接,否则其他db连接时,会失败;

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

这时在使用show.db就会成功(自己去试吧,不展示了)

创建新的数据库myDB,并且给其添加用和权限

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("数据库连接失败!");
    } else{
        console.log("数据库连接成功!");
    }
});

php连接

<?php

/*mongodb连接*/  
$m = new Mongo("192.168.138.35:27017");  
/*选择comment*/  
$db = $m->melon;  
/*连接数据库*/  
$db->authenticate("melon", "melon");  

?>

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

相关文章

网友评论

      本文标题:mongodb被黑后的防护

      本文链接:https://www.haomeiwen.com/subject/tuamcxtx.html