在CentOS系统下,MongoDB的安全设置主要包括以下几个方面:
启用身份验证:
在/etc/mongod.conf
配置文件中,找到security
部分并启用authorization
选项。这将要求所有客户端连接时提供有效的用户名和密码。
security:
authorization: enabled
保存更改后,重启MongoDB服务以使更改生效:
sudo systemctl restart mongod
创建管理员用户:
使用mongo
shell连接到MongoDB实例:
mongo
切换到admin
数据库,并创建一个具有用户管理权限的管理员用户:
use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
})
现在,您可以使用管理员用户登录:
mongo -u admin -p your_password --authenticationDatabase admin
为其他数据库创建用户:
切换到要创建用户的数据库,然后创建一个新用户并为其分配适当的角色。例如,在mydb
数据库中创建一个具有读取和写入权限的用户:
use mydb
db.createUser({
user: "myuser",
pwd: "your_password",
roles: [{ role: "readWrite", db: "mydb" }]
})
现在,您可以使用新创建的用户登录:
mongo -u myuser -p your_password --authenticationDatabase mydb
启用SSL/TLS加密通信:
在/etc/mongod.conf
配置文件中,找到net
部分并启用ssl
选项。同时,指定SSL证书和密钥文件的路径:
net:
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/mongodb.pem
保存更改后,重启MongoDB服务以使更改生效:
sudo systemctl restart mongod
在客户端连接时,也需要使用--ssl
选项启用SSL/TLS加密通信。
配置防火墙: 如果您的系统启用了防火墙,需要允许MongoDB的默认端口27017上的传入连接。使用以下命令添加防火墙规则:
sudo firewall-cmd --permanent --zone=public --add-port=27017/tcp
sudo firewall-cmd --reload
通过以上步骤,您可以提高CentOS系统下MongoDB的安全性。请确保使用强密码,并定期更新以保持安全性。