警惕 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
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 2
Summer

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

9年前 评论

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