Ubuntu MongoDB如何安全设置
导读:Ubuntu 上 MongoDB 的安全设置清单 一 基础防护 绑定地址最小化:编辑 /etc/mongod.conf,将 net.bindIp 设为仅本地或受控网段,例如仅本地 127.0.0.1,或内网地址如 192.168.1.10...
Ubuntu 上 MongoDB 的安全设置清单
一 基础防护
- 绑定地址最小化:编辑 /etc/mongod.conf,将 net.bindIp 设为仅本地或受控网段,例如仅本地 127.0.0.1,或内网地址如 192.168.1.100;如确需远程,使用逗号分隔的 白名单 列表。修改后重启服务。
- 启用访问控制:在 /etc/mongod.conf 的 security 段开启 authorization: enabled,强制所有连接进行身份验证。
- 防火墙限制:使用 ufw 或 iptables 仅放行必要来源 IP 的 27017/tcp。
- 版本与默认安全:自 MongoDB 3.6 起,官方包默认仅绑定 localhost,但依然建议显式配置 bindIp 并开启 authorization。
- 连接验证:重启后用带认证的客户端连接,确认未授权访问被拒绝。
示例配置片段:
net:
port: 27017
bindIp: 127.0.0.1
security:
authorization: enabled
重启:sudo systemctl restart mongod
验证监听:sudo netstat -tuln | grep 27017(应仅见 127.0.0.1:27017)
二 身份与授权
- 创建管理员:在 mongosh 中切换到 admin 库,创建具备管理能力的用户(如 root 或 userAdminAnyDatabase)。
- 按库最小权限:为业务库创建专属用户,仅授予所需角色(如 readWrite、dbOwner),避免使用高权限账户进行日常操作。
- 指定认证库:连接时通过 –authenticationDatabase admin 指明凭据所在库。
- 验证与回收:使用 show users 查看用户与权限,必要时 dropUser 回收过度授权。
示例:
use admin
db.createUser({ user: “admin”, pwd: “StrongPass!”, roles: [{ role: “root”, db: “admin” } ] } )
use mydb
db.createUser({ user: “app”, pwd: “AppPass!”, roles: [{ role: “readWrite”, db: “mydb” } ] } )
连接:mongosh -u app -p AppPass! --authenticationDatabase mydb
验证:use mydb; show users
三 加密与网络安全
- 传输加密:在 /etc/mongod.conf 启用 SSL/TLS,配置 net.ssl.mode: requireSSL、证书 PEMKeyFile 与 CAFile,并设置 sslAllowInvalidCertificates: false;重启生效。
- 网络最小化:除非业务必需,避免将 bindIp 设为 0.0.0.0;远程访问应结合 防火墙 与 VPC/安全组 做来源 IP 白名单。
- 监听验证:变更后用 netstat 确认仅监听预期地址与端口。
示例:
net:
ssl:
mode: requireSSL
PEMKeyFile: /path/to/ssl.pem
CAFile: /path/to/ca.pem
sslAllowInvalidCertificates: false
重启:sudo systemctl restart mongod
四 运维与审计
- 日志与审计:确保 systemLog.destination: file、logAppend: true、path: /var/log/mongodb/mongod.log;按需开启 审计日志 记录关键操作,便于追踪异常。
- 备份策略:定期使用 mongodump 做逻辑备份,妥善保存备份与凭据,定期校验可恢复性。
- 运行安全:为 mongod 配置合适的 文件描述符与进程数限制(如 limits.conf),并考虑禁用 透明大页(THP) 以降低性能抖动与潜在安全风险。
- 连接加固:避免使用过时或弱认证机制,优先采用 SCRAM-SHA-256;删除不再使用的用户与数据库,减少攻击面。
五 快速检查清单
| 检查项 | 期望状态/做法 |
|---|---|
| 监听地址 | 仅 127.0.0.1 或受控 内网 IP |
| 端口开放 | 仅对白名单来源开放 27017/tcp(ufw/iptables) |
| 认证 | security.authorization: enabled 并已创建用户 |
| 管理员 | admin 库存在高权限账户(最小够用) |
| 业务账户 | 各库仅授予 readWrite/dbOwner 等必要角色 |
| 传输加密 | 启用 SSL/TLS(生产环境强制) |
| 日志审计 | 启用文件日志;按需开启审计 |
| 备份 | 定期 mongodump,并做恢复演练 |
| 系统加固 | limits 合理、THP 关闭、及时打补丁 |
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu MongoDB如何安全设置
本文地址: https://pptw.com/jishu/767337.html
