MongoDB如何在Linux上进行安全加固
导读:MongoDB 在 Linux 上的安全加固清单 一 身份与访问控制 启用认证:编辑配置文件 /etc/mongod.conf,在 security 段落开启授权,保存后重启服务。示例:security: authorization:...
MongoDB 在 Linux 上的安全加固清单
一 身份与访问控制
- 启用认证:编辑配置文件 /etc/mongod.conf,在 security 段落开启授权,保存后重启服务。示例:
重启:security: authorization: enabledsudo systemctl restart mongod。随后在 admin 库创建管理员(示例赋予 root 角色,生产环境可按最小权限原则细化):use admin db.createUser({ user: "admin", pwd: "StrongPass!23", roles: ["root"] } ) - 最小权限分权:为业务库创建仅具所需权限的用户,避免滥用高权限账户。示例:
use mydb db.createUser({ user: "app_rw", pwd: "AppPass!45", roles: [{ role: "readWrite", db: "mydb" } ] } ) - 连接认证:客户端连接时显式指定认证库,例如:
mongo -u app_rw -p AppPass!45 --authenticationDatabase mydb - 安全提示:优先采用 SCRAM-SHA-256 认证机制;为关键账户开启多因素认证(如企业版支持);定期审计用户与角色分配。
二 网络与防火墙
- 绑定地址最小化:在 net.bindIp 仅列出需要监听的内网或管理网 IP,默认端口 27017。示例:
net: port: 27017 bindIp: 127.0.0.1,192.168.10.20 - 防火墙精细化放行:仅允许受信任网段访问 27017/TCP。示例:
- firewalld(CentOS/RHEL):
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="27017" protocol="tcp" accept' sudo firewall-cmd --reload - ufw(Ubuntu/Debian):
sudo ufw allow from 192.168.10.0/24 to any port 27017 proto tcp sudo ufw enable & & sudo ufw status verbose
- firewalld(CentOS/RHEL):
- 变更生效:修改 bindIp 后需重启服务:
sudo systemctl restart mongod。
三 加密与传输安全
- 启用 TLS/SSL:生成或获取证书,配置强制加密通信。示例:
重启生效:net: ssl: mode: requireSSL PEMKeyFile: /etc/mongodb/mongodb-key.pem CAFile: /etc/mongodb/mongodb-cert.pemsudo systemctl restart mongod。客户端连接时携带证书或使用受信任 CA 验证。 - 证书建议:使用受信任 CA 签发的证书;为服务器与客户端分别配置证书;妥善保护私钥(权限 600);定期轮换证书。
四 系统与服务加固
- 以非特权用户运行:创建专用系统用户(如 mongod),调整数据与日志目录属主,使用 systemd 以该用户启动服务,避免使用 root。
- 目录与权限:确保 /var/lib/mongodb、/var/log/mongodb 仅对 mongod 可读写;配置文件权限 600 并限制属主。
- 关闭不必要接口:禁用 HTTP 接口 与 REST/JSONP 管理接口,减少攻击面。示例:
net: http: enabled: false RESTInterfaceEnabled: false JSONPEnabled: false - SELinux/AppArmor:在 CentOS/RHEL 启用并适配 SELinux 策略;在 Ubuntu/Debian 可使用 AppArmor 对 mongod 进行系统调用约束。
五 审计、备份与运维
- 审计日志:记录关键操作以满足合规与取证需求。示例:
注意审计会带来一定性能开销,建议按业务重要性选择事件类别与输出目标。security: auditLog: destination: file format: JSON path: /var/log/mongodb/audit.json - 日志与监控:确保 systemLog.destination: file、logAppend: true,集中收集与告警分析日志;结合监控平台观察连接数、慢查询、复制延迟等。
- 备份与恢复:制定定期备份策略(如每日全量 mongodump),并定期演练恢复流程,验证可用性与完整性。
- 补丁与版本:保持 MongoDB 与操作系统 安全补丁 及时更新;建立变更评审与回滚预案。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MongoDB如何在Linux上进行安全加固
本文地址: https://pptw.com/jishu/753440.html
