温馨提示×

MongoDB在Linux上的安全设置怎么做

小樊
44
2025-12-24 08:48:52
栏目: 云计算

MongoDB 在 Linux 上的安全设置清单

一 身份与访问控制

  • 启用认证:编辑配置文件 /etc/mongod.conf,在 security 段开启授权,重启服务生效。
    • security:
      • authorization: enabled
  • 创建管理员:连接本地实例后,在 admin 库创建高权限账户(示例赋予 root 角色,生产环境可按最小权限原则细化)。
    • use admin
      • db.createUser({ user: “admin”, pwd: “StrongPass!23”, roles: [“root”] })
  • 按库分权:为业务库创建最小权限用户(示例为某库的读写权限)。
    • use mydb
      • db.createUser({ user: “app_rw”, pwd: “AppPass!45”, roles: [“readWrite”] })
  • 连接串示例:mongodb://app_rw:AppPass!45@dbhost:27017/mydb?authSource=admin。

二 网络与防火墙

  • 绑定地址最小化:在 net.bindIp 仅绑定需要的内网地址,避免对公网开放;如需本机调试可临时绑定 127.0.0.1
    • net:
      • bindIp: 127.0.0.1,192.168.1.10
  • 防火墙限制来源 IP(示例仅放行业务网段或跳板机):
    • firewalld(CentOS/RHEL 7+)
      • sudo firewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port protocol=“tcp” port=“27017” accept’
      • sudo firewall-cmd --reload
    • ufw(Ubuntu/Debian)
      • sudo ufw allow from 192.168.1.0/24 to any port 27017
      • sudo ufw enable && sudo ufw status
  • 端口与监听校验:确认仅监听预期地址与端口。
    • ss -lntp | grep 27017
    • 远程连通性测试(应被拒绝或仅特定来源可达):nc -vz 27017

三 加密与传输安全

  • 启用 TLS/SSL:生成证书(或接入企业 CA),在配置中要求加密通信并指定证书路径,重启生效。
    • 生成自签名证书(示例)
      • openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout mongodb-key.pem -out mongodb-cert.pem
    • 配置
      • net:
        • ssl:
          • mode: requireSSL
          • PEMKeyFile: /etc/ssl/mongodb-key.pem
          • CAFile: /etc/ssl/mongodb-cert.pem
  • 客户端连接启用 TLS:mongo --host --port 27017 --ssl --sslCAFile /path/ca.pem

四 系统与服务加固

  • 最小权限运行:使用专用系统用户(如 mongod)运行进程,目录权限最小化。
    • sudo useradd -r -s /bin/false mongod
    • sudo chown -R mongod:mongod /var/lib/mongodb /var/log/mongodb
    • ExecStart=/usr/bin/mongod --config /etc/mongod.conf(以 systemd 服务为例)
  • 关闭不必要的接口与功能:禁用 HTTP/REST/JSONP 管理接口,减少攻击面。
    • net:
      • http:
        • enabled: false
      • RESTInterfaceEnabled: false
      • JSONPEnabled: false
  • 审计日志(企业版功能为主):记录关键操作,便于合规与溯源。
    • security:
      • auditLog:
        • destination: file
        • format: JSON
        • path: /var/log/mongodb/audit.json
  • 日志与监控:确保日志落盘、滚动与关键指标监控(连接数、慢查询、复制延迟等)。

五 备份与持续维护

  • 定期备份与校验:使用 mongodump/mongorestore 做定时备份,定期恢复演练验证可用性。
    • mongodump --out /backup/mongo-$(date +%F)
    • mongorestore /backup/mongo-2025-08-01
  • 安全更新与补丁:订阅 MongoDB 安全公告,及时升级小版本修复漏洞;对公网开放前务必完成加固与渗透测试。

0