Linux如何确保MongoDB的安全性
导读:Linux上保障MongoDB安全的可落地清单 一 身份与访问控制 启用认证:在配置文件 /etc/mongod.conf 中开启 security.authorization: enabled,重启后所有客户端必须提供凭证。MongoD...
Linux上保障MongoDB安全的可落地清单
一 身份与访问控制
- 启用认证:在配置文件 /etc/mongod.conf 中开启 security.authorization: enabled,重启后所有客户端必须提供凭证。MongoDB 默认从 3.6 起仅绑定 localhost,但一旦放开到网络,未启用认证风险极高。
- 创建管理员:先以本机无鉴权连接(仅首次),在 admin 库创建具备 userAdminAnyDatabase 的用户,用于后续用户与角色管理。
- 最小权限原则:按库/按业务创建用户,仅授予所需角色(如 read、readWrite、dbAdmin 等),避免使用 root。
- 连接串示例:mongosh --host 127.0.0.1 --port 27017 -u “admin” -p --authenticationDatabase “admin”。
- 版本提示:MongoDB 6.x 起默认不再内置 mongo 工具,请使用 mongosh。
二 网络安全与加密
- 绑定地址最小化:在 net.bindIp 中仅列出需要监听的 内网IP 或 127.0.0.1,避免 0.0.0.0 暴露到公网。
- 防火墙白名单:仅放行受信来源的 27017/TCP。示例:
- UFW:sudo ufw allow from 192.168.1.100 to any port 27017;sudo ufw enable
- iptables:先 DROP 27017,再对受信 IP ACCEPT,注意规则顺序
- 传输加密:启用 TLS/SSL,配置 net.ssl.mode: requireSSL,提供 PEMKeyFile 与 CAFile,防止明文传输与中间人攻击。
- 禁用不必要接口:关闭 HTTP 接口/REST API/JSONP,减少攻击面。
三 系统与服务加固
- 最小权限运行:创建专用系统用户(如 mongod),数据/日志目录属主设为该用户,禁止以 root 运行。
- 目录与权限:确保 /var/lib/mongodb、/var/log/mongodb 权限最小化,仅服务账户可读写。
- 服务管理:使用 systemd 托管(如 /etc/systemd/system/mongodb.service),启用开机自启并限制权限。
- 日志与审计:开启 systemLog 记录,按需启用 auditLog(JSON 格式) 记录关键操作。
- 补丁与版本:保持 MongoDB 与操作系统 的安全补丁为最新,及时修复已知漏洞。
四 复制集与分片场景
- 内部认证:副本集/分片使用 security.keyFile,各节点 keyFile 内容一致,权限 400,通过 –keyFile 或配置文件启用;该措施同时强制启用基于角色的访问控制。
- 初始化顺序:首次仅能通过 localhost 连接创建第一个具备用户管理能力的账户,随后关闭 localhost 异常,所有连接均需鉴权。
- 角色规划:为运维与业务分配不同账户,如 clusterAdmin(集群管理)、backup/restore(备份恢复)等,遵循最小权限。
五 备份监控与验收
- 备份恢复:定期使用 mongodump/mongorestore 做离线/逻辑备份,验证可恢复性与一致性。
- 监控告警:启用 operationProfiling 与系统日志收集,结合监控平台对异常连接、失败登录、慢查询等进行告警。
- 验收清单:
- 仅内网可达、端口仅对受信 IP 开放(nmap/ss 验证)
- 未鉴权连接被拒绝、鉴权用户仅获授权权限
- TLS 握手成功、禁用 HTTP 接口
- 审计日志正常写入、备份任务成功可恢复
- 系统以 mongod 非 root 运行、目录权限正确
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux如何确保MongoDB的安全性
本文地址: https://pptw.com/jishu/789190.html
