- 首页 >
- 问答 >
-
云计算 >
- MongoDB Ubuntu安全设置有哪些
MongoDB Ubuntu安全设置有哪些
小樊
37
2025-12-08 19:36:58
MongoDB Ubuntu 安全设置清单
一 身份与访问控制
- 启用访问控制:在配置文件 /etc/mongod.conf 中开启认证,保存后重启服务。
- security:
- 重启:sudo systemctl restart mongod
- 创建管理员账户:先连接 shell(mongosh/mongo),在 admin 库创建高权限用户,用于后续运维。
- use admin
- db.createUser({
user: “admin”,
pwd: “StrongPass!23”,
roles: [{ role: “root”, db: “admin” }]
})
- 最小权限原则:为业务库创建仅具所需权限的用户,避免滥用高权限账户。
- use mydb
- db.createUser({
user: “mydb_rw”,
pwd: “AnotherPass!45”,
roles: [{ role: “readWrite”, db: “mydb” }]
})
- 连接测试:使用凭据连接并指定认证库。
- mongosh -u admin -p ‘StrongPass!23’ --authenticationDatabase admin
- mongosh -u mydb_rw -p ‘AnotherPass!45’ --authenticationDatabase mydb
二 网络与端口防护
- 绑定地址最小化:默认从 MongoDB 3.6 起仅绑定 localhost,如需远程仅放行必要来源。
- 仅本地:net.bindIp: 127.0.0.1
- 指定内网:net.bindIp: 127.0.0.1,192.168.1.10
- 防火墙限制:仅允许受控来源访问 27017/TCP。
- UFW:sudo ufw allow from 192.168.1.0/24 to any port 27017 proto tcp;sudo ufw enable
- iptables:sudo iptables -A INPUT -p tcp --dport 27017 -s 192.168.1.0/24 -j ACCEPT;sudo iptables -A INPUT -p tcp --dport 27017 -j DROP
- 变更生效:修改 bindIp 后重启服务。
- sudo systemctl restart mongod
三 加密与传输安全
- 启用 TLS/SSL:生产环境建议强制加密客户端与服务端通信,配置证书与 CA。
- net:
- ssl:
- mode: requireSSL
- PEMKeyFile: /path/to/server.pem
- CAFile: /path/to/ca.pem
- sslAllowInvalidCertificates: false
- 重启:sudo systemctl restart mongod
- 证书管理:使用受信任 CA 签发证书,妥善保护私钥,定期轮换;禁用自签名证书用于生产。
四 系统与服务加固
- 最小权限运行:创建专用系统用户(如 mongodb),避免使用 root 直接运行。
- sudo adduser --system --group --no-create-home --shell /usr/sbin/nologin mongodb
- 在 systemd 服务单元或配置中设置 User=mongodb、Group=mongodb(以实际环境为准)
- 文件权限与所有权:限制数据、日志、配置目录仅对 mongodb 可读写。
- sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb /etc/mongod.conf
- sudo chmod 600 /etc/mongod.conf
- 资源与稳定性:设置文件描述符与进程数限制,禁用透明大页(THP),提升稳定性与安全性。
- limits.conf 示例:
- mongodb soft nproc 64000
- mongodb hard nproc 64000
- mongodb soft nofile 64000
- mongodb hard nofile 64000
- 禁用 THP(示例 systemd 服务):
- ExecStart=/bin/sh -c “echo ‘never’ > /sys/kernel/mm/transparent_hugepage/enabled && echo ‘never’ > /sys/kernel/mm/transparent_hugepage/defrag”
五 运维与审计
- 日志与审计:开启文件日志,必要时启用审计日志以追踪敏感操作(企业版功能更完善)。
- systemLog:
- destination: file
- logAppend: true
- path: /var/log/mongodb/mongod.log
- 备份与恢复:定期离线/逻辑备份,验证可恢复性,保留多份与异地副本。
- mongodump --out /backup/mongo-$(date +%F)
- 监控与告警:使用 mongostat、mongotop 及监控平台观察连接数、慢查询、复制延迟等指标,异常及时处置。