首页主机资讯Linux系统中MongoDB的安全设置

Linux系统中MongoDB的安全设置

时间2026-01-18 08:04:04发布访客分类主机资讯浏览1116
导读:Linux系统中MongoDB的安全设置 一 核心安全基线 启用身份验证:在配置文件 /etc/mongod.conf 的 security 段开启 authorization: enabled,或在启动参数中使用 –auth。未启用认证...

Linux系统中MongoDB的安全设置

一 核心安全基线

  • 启用身份验证:在配置文件 /etc/mongod.confsecurity 段开启 authorization: enabled,或在启动参数中使用 –auth。未启用认证前不要对外网开放。
  • 创建管理员账户:连接 mongosh(或 mongo)后切到 admin 库,创建高权限账户(如 rootuserAdminAnyDatabase),并设置强口令。
  • 限制网络访问:在 net.bindIp 仅绑定受信任地址(如 127.0.0.1 或内网网段),避免使用 0.0.0.0;配合 iptables/firewalld/ufw 仅放行必要来源与端口。
  • 禁用不必要接口:关闭 HTTP 接口REST 接口,避免暴露管理端点;相关参数包括 net.http.enabled: falsenet.http.RESTInterfaceEnabled: falsenet.http.JSONPEnabled: false
  • 使用非特权用户运行:创建系统用户 mongodb(无登录权限),将数据与日志目录属主设为 mongodb:mongodb,并以该用户启动服务。
  • 启用日志追加:在 systemLog 段设置 logAppend: true,防止重启后日志被覆盖。
  • 文件与目录权限:数据目录(如 /var/lib/mongodb)与日志目录(如 /var/log/mongodb)建议权限 750,文件 600/660,属主 mongodb:mongodb
  • 及时更新与补丁:保持 MongoDBLinux 内核/包管理器的最新安全修复。

二 配置文件与关键参数示例

  • 建议将关键安全项写入 /etc/mongod.conf(YAML 格式),示例:
systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true
  logRotate: reopen

storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true

net:
  port: 27017
  bindIp: 127.0.0.1,192.168.1.0/24   # 仅内网或受控来源
  http:
    enabled: false
    RESTInterfaceEnabled: false
    JSONPEnabled: false
  ssl:
    mode: requireSSL
    PEMKeyFile: /etc/ssl/mongodb-key.pem
    CAFile: /etc/ssl/mongodb-ca.pem

security:
  authorization: enabled
  # 如无需服务端脚本,可关闭
  # javascriptEnabled: false

# 可选:Enterprise 审计
# auditLog:
#   destination: file
#   format: JSON
#   path: /var/log/mongodb/audit.json
#   filter: '{
}
'
  • 修改后重启生效:sudo systemctl restart mongod
  • 说明:禁用 HTTP/REST/JSONP 可显著降低攻击面;启用 TLS/SSL 强制加密传输;如业务不使用 mapReduce/group/where 等服务器端脚本,可关闭 javascriptEnabled 减少风险。

三 用户与权限管理

  • 创建管理员(示例):
use admin
db.createUser({

  user: "admin",
  pwd: "YourStrongPassword123!",
  roles: [{
 role: "root", db: "admin" }
]
}
)
  • 创建业务只读用户(示例):
use mydb
db.createUser({

  user: "report",
  pwd: "StrongReadPwd!",
  roles: [{
 role: "read", db: "mydb" }
]
}
    )
  • 连接示例(启用 TLS/SSL 时):
    mongosh --ssl --sslCAFile /etc/ssl/mongodb-ca.pem --sslPEMKeyFile /etc/ssl/mongodb-key.pem -u admin -p --authenticationDatabase admin
  • 原则:遵循 最小权限,按库/集合细化角色,定期审计与轮换口令。

四 网络安全与加密

  • 防火墙策略:
    • ufw(Ubuntu/Debian):仅允许受控来源访问 27017/tcp
      sudo ufw allow from 192.168.1.100 to any port 27017/tcp
    • firewalld(CentOS/RHEL):
      sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="27017" accept'
      sudo firewall-cmd --reload
  • 传输加密:在 net.ssl 启用 mode: requireSSL,使用 CA 签发或自签名证书,客户端连接时提供 –ssl 与证书参数。
  • 监听地址:优先绑定 127.0.0.1 或内网 CIDR,避免 0.0.0.0

五 审计 运行与维护

  • 审计(Enterprise):在 security.auditLog 指定 destination/file/path,必要时用 filter 聚焦关键操作(如鉴权失败、删除、更新)。
  • 运行身份与目录权限:以 mongodb 用户运行,确保 /var/lib/mongodb/var/log/mongodb 属主为 mongodb:mongodb,权限 750/600/660
  • 日志与监控:保持 logAppend: true;使用 mongostat/mongotopPrometheus+Grafana 监控连接数、慢查询、失败登录等异常。
  • 备份与恢复:定期 mongodump 备份,验证可恢复性;变更配置先在测试环境验证再上线。
  • 安全维护:定期更新 MongoDB 与操作系统,及时修补漏洞。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux系统中MongoDB的安全设置
本文地址: https://pptw.com/jishu/783994.html
Linux环境下MongoDB的内存管理 MongoDB在Linux上的版本选择

游客 回复需填写必要信息