Ubuntu下MongoDB安全设置关键措施
1. 安装官方MongoDB包
从MongoDB官方APT仓库安装(而非Ubuntu默认仓库),确保获得最新安全版本和更新支持。操作命令:
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -sc)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
2. 启用身份验证(核心安全机制)
编辑MongoDB配置文件/etc/mongod.conf,在security section添加authorization: enabled,强制所有连接需提供有效用户名和密码。修改后重启服务:
sudo systemctl restart mongod
创建管理员用户(需切换至admin数据库):
mongo
use admin
db.createUser({
user: "adminUser",
pwd: "StrongPassword123!",
roles: [{ role: "root", db: "admin" }]
})
3. 限制网络访问
- 配置文件绑定IP:修改
/etc/mongod.conf中的net.bindIp,仅允许本地(127.0.0.1)或特定IP访问(如192.168.1.100):net: bindIp: 127.0.0.1,192.168.1.100 # 多IP用逗号分隔 port: 27017 - 防火墙规则:使用
ufw限制MongoDB端口(默认27017)的访问,仅允许可信IP:sudo ufw allow from 192.168.1.100 to any port 27017 sudo ufw enable
4. 配置传输加密(SSL/TLS)
为防止数据在传输中被窃取,需启用SSL/TLS加密。步骤如下:
- 获取SSL证书(可使用Let’s Encrypt免费证书或自签名证书)。
- 修改
/etc/mongod.conf,指定证书和私钥路径:net: tls: mode: requireTLS certificateKeyFile: /path/to/server.pem # 证书文件(含私钥) CAFile: /path/to/ca.pem # CA证书(验证客户端证书,可选) - 重启MongoDB服务使配置生效。
5. 细粒度权限管理
- 创建数据库用户:为每个数据库创建专用用户,分配最小必要权限(如
readWrite仅用于读写,dbAdmin用于数据库维护):use mydb db.createUser({ user: "mydbUser", pwd: "MyDbPassword456!", roles: [{ role: "readWrite", db: "mydb" }] }) - 自定义角色:若内置角色无法满足需求,可创建自定义角色(如仅允许查询特定集合):
use admin db.createRole({ role: "readOnlyOrders", privileges: [{ resource: { db: "mydb", collection: "orders" }, actions: ["find"] }], roles: [] }) db.createUser({ user: "orderViewer", pwd: "OrderViewerPass789!", roles: [{ role: "readOnlyOrders", db: "mydb" }] })
6. 启用审计日志
审计日志可记录所有用户操作(如查询、插入、删除),便于后续审查异常行为。修改/etc/mongod.conf启用审计:
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/auditLog.json
filter: '{}' # 可选,过滤特定操作(如仅记录delete操作)
重启服务后,审计日志将保存至指定路径。
7. 定期更新与补丁管理
保持MongoDB及Ubuntu系统为最新版本,及时修复已知安全漏洞:
sudo apt-get update
sudo apt-get upgrade mongodb-org ubuntu
8. 监控与告警
- 内置工具监控:使用
mongostat(查看操作统计)、mongotop(查看集合级性能)监控数据库状态。 - 系统工具监控:通过
htop(CPU/内存)、iotop(磁盘IO)监控系统资源,设置阈值告警(如CPU使用率超过80%触发邮件通知)。 - 第三方工具:集成Prometheus+Granafa实现可视化监控,或使用Zabbix、Nagios等工具设置异常告警。
9. 数据备份与恢复
定期备份MongoDB数据(如每日增量备份+每周全量备份),确保备份数据的完整性和可恢复性。使用mongodump工具备份:
# 全量备份
mongodump --out /backup/mongodb/full_$(date +%F)
# 增量备份(基于上次备份的时间戳)
mongodump --out /backup/mongodb/incr_$(date +%F) --oplog
备份文件需存储在安全位置(如异地存储或加密存储)。
以上就是关于“Ubuntu下MongoDB安全设置有哪些”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm