Ubuntu中MongoDB如何安全设置
导读:Ubuntu 上 MongoDB 的安全设置清单 一 基础防护 启用访问控制:编辑配置文件 /etc/mongod.conf,在 security 段开启授权,重启服务后所有连接必须提供凭据。 配置示例: security: aut...
Ubuntu 上 MongoDB 的安全设置清单
一 基础防护
- 启用访问控制:编辑配置文件 /etc/mongod.conf,在 security 段开启授权,重启服务后所有连接必须提供凭据。
- 配置示例:
- security:
- authorization: enabled
- security:
- 重启:sudo systemctl restart mongod
- 配置示例:
- 绑定监听地址:在 net.bindIp 仅绑定必要接口,优先使用 127.0.0.1;如需内网访问,可绑定内网 IP 列表(如 127.0.0.1,192.168.1.100),避免 0.0.0.0。
- 配置示例:
- net:
- bindIp: 127.0.0.1,192.168.1.100
- port: 27017
- net:
- 重启:sudo systemctl restart mongod
- 配置示例:
- 防火墙限制:使用 UFW 仅放行可信来源访问 27017/tcp。
- 仅本地:sudo ufw allow 27017/tcp(或默认拒绝入站,仅放开必要来源)
- 内网网段:sudo ufw allow from 192.168.1.0/24 to any port 27017
- 启用:sudo ufw enable;核对:sudo ufw status
二 身份与权限
- 创建管理员账户(在启用认证前完成一次本地连接创建,随后即无法无凭据操作):
- 连接:mongo
- 创建:
- use admin
- db.createUser({ user: “admin”, pwd: “StrongPassword123!”, roles: [“root”] } )
- 最小权限原则:为应用创建专库专用户,仅授予所需角色(避免使用 root)。
- 示例:
- use myAppDb
- db.createUser({ user: “appUser”, pwd: “AppPass!23”, roles: [{ role: “readWrite”, db: “myAppDb” } ] } )
- 示例:
- 连接串示例(注意认证库为 admin 或相应用户所在库):
- mongo -u admin -p --authenticationDatabase admin
- mongo -u appUser -p --authenticationDatabase myAppDb
- 常用角色参考:
- 只读:read;读写:readWrite;库管理:dbAdmin;用户管理:userAdmin;库所有者:dbOwner
- 实例级:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 集群管理:clusterMonitor、clusterManager、clusterAdmin
- 备份恢复:backup、restore;超级角色:root
三 加密与传输
- 启用 TLS/SSL:在 net.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
- 配置示例:
- 证书建议:使用受信任 CA 签发或企业内网 CA;妥善保护私钥,定期轮换
四 运维与审计
- 日志与审计:确保日志写入文件并持续监控;按需开启审计日志以记录关键操作(如鉴权成功/失败、授权变更、关键数据访问)。
- 基础日志示例:
- systemLog:
- destination: file
- logAppend: true
- path: /var/log/mongodb/mongod.log
- systemLog:
- 审计(示例思路):在配置中启用审计并定义审计事件过滤器,集中到安全信息与事件管理(SIEM)系统分析。
- 基础日志示例:
- 备份与恢复:制定定期备份策略(如每日全量/增量),验证备份可用性与恢复演练;常用工具 mongodump/mongorestore。
- 持续更新与加固:
- 系统与组件更新:sudo apt update & & sudo apt upgrade;MongoDB 版本可“锁定”避免意外升级引发兼容性问题(如 dpkg hold)。
- 最小暴露面:仅在需要时开放端口与来源;禁用不必要的接口与插件;定期审查用户、角色与防火墙规则
五 快速验证
- 本机未认证访问应被拒绝:
- mongo --eval “db.runCommand({ ping:1} )” 应返回错误(未提供凭据)
- 管理员可正常连接并具备权限:
- mongo -u admin -p --authenticationDatabase admin --eval “db.runCommand({ ping:1} )” 应返回 { “ok” : 1 }
- 应用用户仅能在所属库执行授权操作:
- mongo -u appUser -p --authenticationDatabase myAppDb
- 在 myAppDb 可读写;在 admin 或其他库应受限
- 远程访问仅来自白名单:
- 从非白名单主机连接应超时/被拒绝;UFW 与 bindIp 规则生效
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu中MongoDB如何安全设置
本文地址: https://pptw.com/jishu/786519.html
