在Debian上安全设置MongoDB涉及多个步骤,包括安装、配置、启用身份验证、设置用户权限和网络访问控制。以下是详细的步骤:
首先,确保你的系统是最新的:
sudo apt update && sudo apt upgrade -y
然后,导入MongoDB的GPG密钥并添加官方存储库:
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/debian bullseye/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
接下来,安装MongoDB:
sudo apt update
sudo apt install -y mongodb-org
编辑MongoDB配置文件 /etc/mongod.conf
:
sudo nano /etc/mongod.conf
启用身份验证并配置其他安全设置:
security:
authorization: enabled
enableLocalhostAuthBypass: false
修改默认端口(例如27017):
net:
port: 27017
启动MongoDB shell:
mongo
在 admin
数据库中创建管理员用户:
use admin
db.createUser({
user: "myUserAdmin",
pwd: "myStrongPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
启用身份验证:
security:
authorization: enabled
重启MongoDB服务以使更改生效:
sudo systemctl restart mongod
连接到MongoDB shell并使用管理员账户:
mongo -u myUserAdmin -p myStrongPassword --authenticationDatabase admin
为需要权限的数据库创建其他用户:
use myDatabase
db.createUser({
user: "readOnlyUser",
pwd: "readPassword",
roles: [ { role: "read", db: "myDatabase" } ]
})
修改MongoDB配置文件以限制访问:
net:
bindIp: 127.0.0.1
只允许本机访问MongoDB:
net:
bindIp: 127.0.0.1
配置MongoDB使用TLS/SSL以加密通信。请参考MongoDB官方文档进行详细配置。
启用系统审计以跟踪数据库配置和数据的访问和更改。MongoDB企业版包括一个系统审计工具,可以记录MongoDB实例上的系统事件。
定期更新MongoDB和操作系统以修补已知漏洞:
sudo apt update && sudo apt upgrade -y