刘贵学博客

Mongodb 安全加密认证

1. 安装

  1. Ubuntu:

    apt-get install mongodb
    
  2. Mac OS

    brew install mongodb
    

2. 服务器认证配置

2.1 添加用户

use admin
db.createUser({user: 'root', pwd: 'password', roles: ['root']})

db.system.users.remove({user:"haha"})

2.2 加密配置

  • ubuntu 下的配置: /etc/mongodb.conf,修改后的内容如下:

    bind_ip = 0.0.0.0
    port = 27098
    auth=true
    
  • Mac 下的配置, /usr/local/etc/mongod.conf

    net:
        bindIp: 0.0.0.0
        port: 27098
    security:
        authorization: enabled
    

注:

  • 建议更换一个其他的端口,来保证安全;

重启服务

  1. Ubuntu下:

    /etc/init.d/mongodb restart
    // 或:
    service  mongodb restart
    
  2. Mac OS下 重启服务

    ps -A|grep mongo
    sudo kill XXXX
    sudo mongod --config /usr/local/etc/mongod.conf --fork
    

3. 客户端认证连接

  1. 使用客户端 mongo 认证连接:

    mongo --port=27098
    >use admin
    >db.auth("root", "password")
    1
    >use your-other-db
    
  2. 使用客户端 robomongo 认证连接:

  1. nodejs 中 mongoose 的重新连接字段:

    mongodb : "mongodb://root:password@YOUR-IP:27098/FireDB?authSource=admin"
    

4. 参考文档

https://scarletsky.github.io/2014/10/25/mongodb-security-and-auth/