centos

centos中mongodb安全设置有哪些

小樊
46
2025-11-01 12:56:21
栏目: 云计算

1. 启用身份验证(Authorization)
这是MongoDB安全的基础,强制要求所有客户端连接提供用户名和密码验证。配置方法:编辑/etc/mongod.conf文件,在security部分添加authorization: enabled,保存后重启MongoDB服务(sudo systemctl restart mongod)。

2. 创建专用管理员账户
admin数据库中创建具有管理权限的管理员账户(如root角色),避免使用默认的无密码账户。示例命令:

mongo
use admin
db.createUser({
  user: "admin",
  pwd: "YourStrongPassword123!",
  roles: [{ role: "root", db: "admin" }]
})

创建后,所有管理操作(如创建用户、修改权限)需通过该账户认证。

3. 配置基于角色的访问控制(RBAC)
采用MongoDB内置的RBAC模型,为普通用户分配最小必要权限。常见内置角色:

use testdb
db.createUser({
  user: "app_user",
  pwd: "AppUserPassword456!",
  roles: [{ role: "readWrite", db: "testdb" }]
})

如需自定义角色(如限制某用户只能操作products集合的inventory子集合),可通过db.createRole()定义权限。

4. 限制网络访问(Bind IP)
修改/etc/mongod.conf中的net.bindIp参数,仅允许必要的IP地址访问MongoDB服务。常见设置:

5. 配置防火墙规则
使用CentOS的firewalld工具开放MongoDB默认端口(27017),并限制访问来源。示例命令:

sudo firewall-cmd --permanent --zone=public --add-port=27017/tcp
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="27017" accept'
sudo firewall-cmd --reload

上述命令允许本地网络(192.168.1.0/24)访问27017端口,拒绝其他来源。

6. 启用SSL/TLS加密通信
通过SSL/TLS加密MongoDB客户端与服务端之间的数据传输,防止数据泄露。步骤如下:

7. 启用审计日志
记录所有数据库操作(如用户登录、数据修改、权限变更),便于后续安全审计和异常排查。配置方法:在/etc/mongod.confsystemLog部分添加:

systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true
  verbosity: 1  # 1为基本审计,更高数值记录更详细信息

重启服务后,审计日志将保存到指定路径。

8. 定期更新与备份

0
看了该问题的人还看了