Linux MongoDB的安全策略如何实施
小樊
40
2026-01-03 03:19:46
Linux 上实施 MongoDB 安全策略
一 基线加固
- 启用身份验证:在配置文件 /etc/mongod.conf 的 security 段开启 authorization: enabled,重启后在 admin 库创建管理员与业务用户,遵循最小权限原则。
- 网络最小化暴露:在 net.bindIp 仅绑定需要的地址(如 127.0.0.1 或内网地址),避免 0.0.0.0;如版本低于 3.6,务必显式设置。
- 传输加密:启用 TLS/SSL,配置 net.ssl.mode: requireSSL,提供 PEMKeyFile 与 CAFile,确保节点间与客户端通信加密。
- 禁用不必要接口:关闭 HTTP 接口 与 REST API,减少攻击面。
- 以非特权用户运行:创建专用系统用户(如 mongod),数据/日志目录属主设为该用户,服务以该用户启动。
- 日志与审计:开启 systemLog(如 logpath、logappend),按需启用 auditLog(如输出为 JSON 到文件)。
- 及时更新:保持 MongoDB 与操作系统 的安全补丁为最新。
二 网络与访问控制
- 防火墙限制:仅放行受信任来源的 27017/tcp。示例:
- Ubuntu/Debian(UFW):sudo ufw allow from 192.168.1.10 to any port 27017;sudo ufw enable
- CentOS/RHEL(firewalld):sudo firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.10” port port=“27017” protocol=“tcp” accept’ && sudo firewall-cmd --reload
- 通用(iptables):先 DROP 再 ACCEPT 指定来源,注意规则顺序
- 主机级限制:可用 /etc/hosts.allow 与 /etc/hosts.deny 对 mongod 进程做来源 IP 白名单。
- 绑定策略:生产环境优先绑定内网 IP 或 127.0.0.1,避免公网直连;确需公网访问时,叠加 TLS 与 防火墙白名单。
三 身份与授权
- 管理员账户:在 admin 库创建高权限账户(如 root 或具备用户管理能力的角色),用于日常运维与用户管理。
- 业务最小权限:按库/集合分配 read、readWrite、dbAdmin 等角色,避免在生产库授予 root。
- 专用只读账号:为报表/监控创建 只读用户,定期轮换凭据并回收不必要权限。
四 加密与审计
- TLS/SSL 配置示例:
- 生成证书:openssl req -newkey rsa:2048 -nodes -x509 -days 3650 -keyout mongodb-key.pem -out mongodb-cert.pem
- 配置:
net:
ssl:
mode: requireSSL
PEMKeyFile: /path/to/mongodb-key.pem
CAFile: /path/to/mongodb-cert.pem
- 审计日志示例:
security:
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/audit.json
- 注意:开启 TLS/SSL 与 审计 会带来一定性能开销,建议在测试环境评估阈值并合理设置日志保留策略。
五 运维与验证
- 备份恢复:定期使用 mongodump/mongorestore 做全量/增量备份,验证可恢复性并异地存放。
- 监控告警:启用 operationProfiling 与系统日志收集,关注失败登录、异常查询与连接数激增。
- 变更与重启:修改 mongod.conf 后执行 sudo systemctl restart mongod;变更前备份配置与数据。
- 连通性验证:
- 本地:mongo --host 127.0.0.1 --port 27017 -u admin -p
- 远程:mongo --host <内网IP> --port 27017 -u appuser -p --ssl --sslCAFile /path/to/ca.pem
- 基线核查清单:
- 认证已开启(authorization: enabled)
- bindIp 仅含必要地址
- 防火墙仅放行受信来源 27017/tcp
- TLS/SSL 强制启用且证书有效
- 无默认测试库/用户残留
- 审计或集中日志已接入
- 备份任务与恢复演练定期执行