首页/安全/安全加固速查/MongoDB 未授权访问加固
服务与端口收敛50 条

MongoDB 未授权访问加固

Mongo 默认无认证即可读写:勒索删库案例中常见“暴露+无认证”组合;开启 authorization 并限制绑定。

安全加固速查安全更新于 2026-10-13

MongoDB 默认放行的是谁

MongoDB 默认不启用访问控制,任何能连上 27017 的客户端都能直接读写数据库,包括删除整个库。勒索事件中最常见的组合就是“端口暴露 + 未开启认证”,攻击者批量扫描、清库并留下索取赎金的信息。加固需要同时做两件事:在配置里启用 authorization 要求账号登录,并把绑定地址收到回环或内网。启用认证有固定的顺序要求,做反了会把自己锁在库外。

基本信息

加固项数据库认证与监听地址收敛
适用平台Linux/Windows(MongoDB 4.x 及以上)
权限要求数据库管理员与系统 root
达标判据authorization 为 enabled,bindIp 不含公网地址
配置文件/etc/mongod.conf

典型使用场景

  • 公网暴露的 MongoDB 做紧急收敛
  • 新部署实例按标准模板初始化,避免沿用默认配置
  • 等保测评中“访问控制”与“数据完整性”条款整改
  • 从单机迁移到副本集时统一认证方案
  • 审计备份与监控脚本的账号权限是否最小化

核查现状

核查现状
ss -tlnp | grep ':27017 '                                # 监听地址与进程
grep -E 'authorization|bindIp|port' /etc/mongod.conf      # 关键配置项
mongosh --quiet --eval 'db.adminCommand({getCmdLineOpts:1})' 2>/dev/null | head -20   # 运行时生效参数
mongosh --quiet --eval 'db.runCommand({connectionStatus:1})' 2>/dev/null   # 当前会话是否已认证

加固步骤(顺序不能反)

加固步骤(顺序不能反)
# 1) 先创建管理员账号(此时尚未开启认证,本地可直连)
#    mongosh --quiet --eval 'db.getSiblingDB("admin").createUser({user:"siteAdmin",pwd:passwordPrompt(),roles:[{role:"root",db:"admin"}]})'
# 2) 再改配置并重启生效:
#    security:
#      authorization: enabled
#    net:
#      bindIp: 127.0.0.1,10.0.1.10
systemctl restart mongod
ss -tlnp | grep ':27017 '                                  # 复核绑定地址已收敛

关键配置项

配置项作用注意事项
security.authorization开启访问控制启用前必须先有管理员账号,否则无法登录
net.bindIp限定监听地址写 127.0.0.1 或内网地址,不要用 0.0.0.0
net.port非默认端口只降低被扫到的概率,不能替代认证
安全组与主机防火墙边界控制与 bindIp 双层配合,一层失效仍有保护
账号与角色最小权限监控与备份各用独立的最小权限账号
开启认证的顺序不能颠倒:必须先创建管理员账号,再把 authorization 设为 enabled 并重启。反过来做会立刻失去所有数据库访问能力,只能靠本地手段恢复,生产环境容易演变成中断事故。
副本集与分片集群的认证链路更长:开启 authorization 时通常需要节点间的密钥文件或内部证书认证,且要按拓扑滚动执行、逐节点验证。集群环境变更前先确认拓扑与副本状态,按维护窗口推进,避免一次性全量重启。

易错点

  • 先开 authorization 后建管理员账号,直接被锁在库外,恢复过程会影响业务可用性
  • 只改绑定地址不开认证:内网任意主机仍可读写,横向移动时数据库是现成目标
  • 沿用默认端口与默认配置部署新实例,扫描器一轮就能命中
  • 监控与备份脚本长期共用管理员账号,脚本泄露等于交出数据库全部权限

数据来源与参考

  • MongoDB 官方:Security Checklist
  • 等保 2.0:访问控制

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌