温馨提示×

Ubuntu中MongoDB的安全性怎样保障

小樊
48
2025-10-21 01:57:02
栏目: 云计算

1. 基础安全配置

  • 安装官方包:通过Ubuntu官方仓库或MongoDB官方APT源安装MongoDB,避免第三方源的安全风险。例如,导入MongoDB公钥并添加源列表:wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -,然后创建/etc/apt/sources.list.d/mongodb-org-4.4.list文件并安装。
  • 配置文件权限:确保MongoDB配置文件(/etc/mongod.conf)和数据目录(/data/db)的权限正确,仅允许mongodb用户访问。例如:sudo chown -R mongodb:mongodb /data/dbsudo chmod 600 /etc/mongod.conf

2. 访问控制与认证

  • 启用授权:在/etc/mongod.conf中设置security.authorization: enabled,强制所有连接需通过用户名和密码认证,阻止未授权访问。
  • 创建专用用户:为每个数据库创建具有最小必要权限的用户。例如,创建管理员用户:use admin; db.createUser({user: "admin", pwd: "强密码", roles: ["root"]});创建普通数据库用户:use mydb; db.createUser({user: "mydbuser", pwd: "强密码", roles: ["readWrite"]})

3. 网络访问限制

  • 绑定本地IP:修改/etc/mongod.conf中的net.bindIp127.0.0.1,仅允许本地连接,防止外部直接访问。
  • 使用防火墙:通过UFW或iptables限制访问MongoDB端口(默认27017)。例如,UFW命令:sudo ufw allow from 信任IP to any port 27017;iptables命令:sudo iptables -A INPUT -p tcp --dport 27017 -s 信任IP -j ACCEPTsudo iptables -A INPUT -p tcp --dport 27017 -j DROP

4. 数据传输加密

  • 启用SSL/TLS:生成或获取SSL证书(含私钥和CA证书),在/etc/mongod.conf中配置:net.ssl.mode: requireSSLnet.ssl.PEMKeyFile: /路径/ssl.pemnet.ssl.CAFile: /路径/ca.pem,加密客户端与服务器之间的通信。

5. 审计与监控

  • 启用审计日志:在/etc/mongod.conf中添加systemLog.destination: filesystemLog.path: /var/log/mongodb/audit.jsonauditLog.format: JSON,记录所有用户操作(如登录、查询、修改),便于后续审查异常行为。
  • 实时监控:使用mongostat(监控操作速率)和mongotop(监控集合级读写时间)工具,结合系统监控工具(如htopnetstat)实时跟踪数据库性能和网络流量,及时发现异常。

6. 定期更新与备份

  • 安全更新:定期运行sudo apt-get update && sudo apt-get upgrade mongodb-org,及时应用MongoDB安全补丁,修复已知漏洞。
  • 数据备份:使用mongodump命令定期备份数据(如每日凌晨),并将备份文件存储在安全位置(如异地服务器或云存储)。例如:mongodump --out /备份路径/$(date +%F),确保备份数据的完整性和可恢复性。

0