警惕 MongoDB 的未授权访问漏洞

前言

Mongodb 一直让人诟病的 未授权访问 问题, 这在了发个帖作为警醒, 大家在部署的时候要小心点.

原因

未授权访问漏洞成因:Mongodb 在启动的时候提供了很多参数,如日志记录到哪个文件夹,是否开启认证等。造成未授权访问的根本原因就在于启动Mongodb的时候未设置 --auth 也很少会有人会给数据库添加上账号密码(默认空口令,它像一张白纸,需要管理员自己去涂写账号),使用默认空口令这将导致任何人无需进行账号认证就可以登陆到数据服务器。

解决方法

  1. 使用 iptables 控制端口 27017 (默认端口) 的访问;
  2. auth 模式下运行 mongodb;

开启 MongoDB授权

1. 添加一个管理员用户,

下面代码在 Mongo Shell 运行:

> use admin
> db.createUser(  
{  
    user: "root",  
    pwd: "YOUR PASSWORD",  
    roles:  
    [  
      {  
        role: "userAdminAnyDatabase",  
        db: "admin"  
      }  
    ]  
  }  
) 

更多选项见这: MongoDB – Add Users and Authenticate .

2. 授权模式下运行 mongod

1). 先停止服务

$ sudo service mongod stop

2). 编辑 /etc/mongo.conf 文件, 找到 #auth=true , 去掉注释.

3). 重新运行服务

$ sudo service mongod start

扩展阅读:

本作品采用《CC 协议》,转载必须注明作者和本文链接
摈弃世俗浮躁,追求技术精湛
Summer
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 2
Summer

@史沟飞 谢谢啦, 已修改.

9年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!