温馨提示×

Debian下MongoDB安全配置指南

小樊
35
2025-12-23 02:09:45
栏目: 云计算

Debian下MongoDB安全配置指南

一 基线加固

  • 安装与更新:优先使用官方仓库安装并定期更新,保持系统与数据库补丁为最新。
  • 监听地址:在配置文件**/etc/mongod.conf中设置net.bindIp**,仅监听127.0.0.1(本地)或受控的内网IP;避免0.0.0.0
  • 身份验证:启用security.authorization: enabled,强制所有客户端登录后操作。
  • 加密传输:启用TLS/SSL对客户端与服务端通信加密。
  • 防火墙:使用ufw/iptables仅放行受信任来源访问27017/tcp
  • 审计与日志:开启安全审计文件日志,便于合规与取证。
  • 版本基线:自MongoDB 3.6起,官方DEB/RPM包默认仅绑定localhost,历史版本需重点核查绑定与访问策略。

二 详细配置步骤

  • 配置监听与端口
    • 编辑**/etc/mongod.conf**:
      • 仅本地:net: bindIp: 127.0.0.1;远程受控:net: bindIp: 127.0.0.1,<内网IP>;严禁0.0.0.0
      • 确认端口:net: port: 27017
  • 启用身份验证
    • 在**/etc/mongod.conf**加入:security: authorization: enabled;重启服务:sudo systemctl restart mongod
    • 连接Mongo Shell创建管理员(示例):
      • use admin
      • db.createUser({ user: “admin”, pwd: “StrongPass!”, roles: [{ role: “userAdminAnyDatabase”, db: “admin” }] })
  • 配置TLS/SSL
    • 准备证书(自签或CA签发),在配置中加入:
      • net: ssl: mode: requireSSL;PEMKeyFile: /path/to/mongodb.pem;CAFile: /path/to/ca.pem
    • 重启生效并检查日志无报错。
  • 防火墙与网络隔离
    • ufw示例:sudo ufw allow 22/tcp;sudo ufw allow from 192.168.1.0/24 to any port 27017;sudo ufw enable
    • 如用云环境,配合安全组仅放通必要来源IP段。
  • 审计与日志
    • 在**/etc/mongod.conf**加入:
      • security: auditLog: destination: file;format: JSON;path: /var/log/mongodb/audit.json
    • 确保审计日志目录与文件权限正确,避免被非授权用户篡改。

三 用户与权限最小化

  • 管理员账户
    • 创建具备用户管理能力的账户(示例见上),用于后续用户与角色维护;避免使用root日常运维。
  • 业务账户
    • 按库创建最小权限账户,例如仅授予readWrite
      • use mydb
      • db.createUser({ user: “app”, pwd: “AppPass!”, roles: [{ role: “readWrite”, db: “mydb” }] })
  • 连接串示例
    • mongo “mongodb://app:AppPass!@192.168.1.10:27017/mydb” --authenticationDatabase mydb
  • 定期审计与回收
    • 定期核查system.users与角色分配,回收不再使用的账户与权限。

四 运行环境与维护

  • 系统账户与权限
    • 使用专用的mongodb系统用户运行服务,降低进程权限面。
  • 文件与目录权限
    • 确保**/var/lib/mongodb**、/var/log/mongodb归属mongodb用户组,权限最小化。
  • 备份与恢复
    • 使用mongodump/mongorestore定期备份;备份文件落盘加密并异地存放;验证恢复流程可用。
  • 持续更新与监控
    • 执行sudo apt update && sudo apt upgrade -y保持MongoDB与Debian更新;结合日志与审计进行异常监测。

五 快速核查清单

  • 配置核查
    • grep -n “bindIp” /etc/mongod.conf;grep -n “authorization” /etc/mongod.conf;grep -n “ssl.mode” /etc/mongod.conf
  • 连通性核查
    • 本地:mongo --host 127.0.0.1 -u admin -p --authenticationDatabase admin
    • 远程:mongo “mongodb://admin:StrongPass!@<内网IP>:27017/admin” --tls
  • 防火墙核查
    • ufw status;或 iptables -L -n | grep 27017
  • 日志与审计
    • tail -f /var/log/mongodb/mongod.log;tail -f /var/log/mongodb/audit.json
  • 安全提醒
    • 严禁将bindIp设为0.0.0.0并暴露公网;生产环境务必启用TLS/SSL防火墙;定期更新与演练恢复。

0