MongoDB在Ubuntu上的安全认证怎么设置
导读:在 Ubuntu 上配置 MongoDB 安全认证 一 准备与版本确认 确认 MongoDB 服务名称与配置文件路径:常见为服务名 mongod、配置文件 /etc/mongod.conf。如使用系统仓库的旧包,服务名可能是 mongod...
在 Ubuntu 上配置 MongoDB 安全认证
一 准备与版本确认
- 确认 MongoDB 服务名称与配置文件路径:常见为服务名 mongod、配置文件 /etc/mongod.conf。如使用系统仓库的旧包,服务名可能是 mongodb,配置文件可能为 /etc/mongodb.conf。启动与开机自启建议使用 systemd:
- 启动/启用:sudo systemctl enable --now mongod
- 查看状态:sudo systemctl status mongod
- 注意:部分旧教程仍使用 mongo 命令,新版为 mongosh;两者用法相近,但建议优先使用 mongosh。以上差异与路径示例以 Ubuntu 常见安装为准。
二 启用认证与创建管理员
- 编辑配置文件 /etc/mongod.conf,开启授权(如文件中有 auth=true 的旧写法也可使用,但推荐 YAML 方式):
- security:
- authorization: enabled
- security:
- 重启服务使配置生效:sudo systemctl restart mongod
- 连接 Mongo Shell:mongosh(或 mongo)
- 在 admin 数据库创建管理员(示例赋予超级权限,生产可选最小权限):
- use admin
- db.createUser({ user: “admin”, pwd: “StrongPassw0rd!”, roles: [{ role: “root”, db: “admin” } ] } )
- 验证登录:mongosh -u admin -p StrongPassw0rd! --authenticationDatabase admin
- 如需为业务库创建最小权限用户(示例对 mydb 只读写):
- use mydb
- db.createUser({ user: “mydbuser”, pwd: “Another$ecret”, roles: [{ role: “readWrite”, db: “mydb” } ] } )
- 说明:创建用户前先开启 authorization 再重启,否则创建的用户可能不生效。
三 网络与防火墙加固
- 绑定地址:默认仅本地监听更安全。编辑 /etc/mongod.conf:
- net:
- bindIp: 127.0.0.1
- net:
- 如确需远程访问,仅放通必要来源(示例为内网网段),并始终保留强认证:
- net:
- bindIp: 127.0.0.1,192.168.1.0/24
- net:
- 防火墙(UFW)示例:
- 仅本地:sudo ufw deny 27017/tcp
- 放通内网:sudo ufw allow from 192.168.1.0/24 to any port 27017 proto tcp
- 提醒:开放到公网前务必完成认证、加密与访问控制。
四 加密通信与审计
- 启用 TLS/SSL(示例为单向校验,生产建议使用由受信任 CA 签发的证书):
- net:
- ssl:
- mode: requireSSL
- PEMKeyFile: /path/to/your/ssl.pem
- CAFile: /path/to/your/ca.pem
- sslAllowInvalidCertificates: false
- ssl:
- net:
- 重启服务:sudo systemctl restart mongod
- 审计日志(记录用户操作,便于合规与追溯):
- systemLog:
- destination: file
- logAppend: true
- path: /var/log/mongodb/mongod.log
- auditLog:
- destination: file
- format: JSON
- path: /var/log/mongodb/audit.log
- systemLog:
- 注意:开启审计会带来一定性能开销,请结合容量规划与保留策略配置。
五 验证与常见问题
- 验证认证是否生效:
- 未认证应被拒绝:mongosh -u any -p any --authenticationDatabase admin(预期失败)
- 认证后检查状态:mongosh -u admin -p StrongPassw0rd! --authenticationDatabase admin --eval ‘db.runCommand({ connectionStatus: 1} )’
- 常见问题与处理:
- 配置未生效:确认修改的是实际被加载的配置文件(/etc/mongod.conf 或 /etc/mongodb.conf),并重启服务;检查服务名是否为 mongod 或 mongodb。
- 远程连不上:核对云安全组/本机防火墙、bindIp 是否包含客户端网段、端口 27017 是否放通。
- 旧版命令差异:部分教程使用 mongo 与 auth=true 写法,若你的环境为 YAML 配置,请优先使用 security.authorization: enabled。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MongoDB在Ubuntu上的安全认证怎么设置
本文地址: https://pptw.com/jishu/778010.html
