警惕 MongoDB 的未授权访问漏洞
3

前言

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

扩展阅读:


Practice makes perfect.

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4
Summer

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

3年前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!