温馨提示×

CentOS环境下MongoDB的安全配置有哪些

小樊
35
2025-12-13 12:38:30
栏目: 云计算

CentOS 环境下 MongoDB 的安全配置清单

一 身份与访问控制

  • 启用认证:编辑配置文件 /etc/mongod.conf,在 security 段开启授权,保存后重启服务。YAML 示例:security: authorization: enabled;如使用旧版 INI 可用 auth=true。重启命令:sudo systemctl restart mongod。
  • 创建管理员账户:mongo 进入 shell,use admin,创建高权限账户(仅在 admin 库创建 root)。示例:db.createUser({user:“admin”, pwd:“StrongPass!23”, roles:[{role:“root”, db:“admin”}]})。
  • 最小权限原则:为业务库创建专属用户并授予最小必要权限,例如仅读写:use appdb; db.createUser({user:“app”, pwd:“AppPass!23”, roles:[{role:“readWrite”, db:“appdb”}]})。
  • 角色体系要点:优先使用内置角色(如 read、readWrite、dbAdmin、userAdmin、clusterAdmin、root 等),必要时在 admin 库创建自定义角色以实现更细粒度控制(集合级权限)。

二 网络与防火墙

  • 绑定地址最小化:在 net.bindIp 中仅绑定需要监听的地址,优先仅本地 127.0.0.1;如为集群/内网访问,可绑定内网 IP 或内网网段(如 192.168.1.0/24 的网关/跳板地址),避免 0.0.0.0。示例:net: bindIp: 127.0.0.1,192.168.1.10。
  • 防火墙限制端口:使用 firewalld 仅放行必要来源与端口(默认 27017/tcp)。示例:firewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port port=“27017” protocol=“tcp” accept’; firewall-cmd --reload。
  • 变更生效:修改 bindIp 或 TLS 等网络参数后需重启:sudo systemctl restart mongod。

三 传输加密与存储安全

  • 启用 TLS/SSL:准备服务器证书与 CA,在配置中开启 SSL 并指定证书路径。YAML 示例:net: ssl: mode: requireSSL PEMKeyFile: /etc/ssl/mongo.pem CAFile: /etc/ssl/ca.pem;重启服务生效。
  • 证书与权限:证书与私钥文件权限最小化(如 600),属主为 mongod 运行用户,防止泄露。
  • 审计与日志:开启并落盘审计/运行日志,便于追踪敏感操作与异常访问。示例:systemLog: destination: file path: /var/log/mongodb/mongod.log logAppend: true。

四 容器与自动化部署安全

  • 内置账户初始化:使用 Docker 时通过环境变量 MONGO_INITDB_ROOT_USERNAME / MONGO_INITDB_ROOT_PASSWORD 创建 root 用户;或在初始化脚本 mongo-init.js 中创建用户与角色。
  • 启用认证:在 docker-compose 或服务启动参数中加入 –auth,或在 mongod.conf 中设置 security.authorization: enabled
  • 仅暴露必要端口与网络:Compose 中仅映射 27017,并使用内网网络或主机网络隔离;避免将数据库直接暴露公网。

五 运维与加固要点

  • 及时更新与补丁:定期升级 MongoDB 至包含最新安全修复的版本,降低漏洞利用风险。
  • 备份与恢复演练:定期执行 mongodump 全量/增量备份,并验证可恢复性,确保灾难恢复能力。
  • 主机与 SELinux:保持 CentOS 系统与内核更新;如启用 SELinux,按需配置策略或布尔值以允许 MongoDB 正常运行。
  • 安全基线核查:禁止创建不必要的超级用户、删除无用账户,使用强口令并定期更换;仅开放必要端口与来源 IP,最小化攻击面。

0