在Ubuntu上为MongoDB进行安全配置可以遵循以下步骤:
首先,确保你的Ubuntu系统是最新的,然后安装MongoDB:
sudo apt-get update
sudo apt-get install -y mongodb-org
创建一个用于存储MongoDB数据的目录,并设置适当的权限:
sudo mkdir -p /data/db
sudo chown -R mongodb:mongodb /data/db
使用文本编辑器(如nano)打开MongoDB配置文件,通常位于 /etc/mongod.conf
:
sudo nano /etc/mongod.conf
在配置文件中,进行以下修改:
bindIp
设置为 127.0.0.1
,以限制MongoDB只监听本地连接。如果需要远程访问,可以设置为 0.0.0.0
,但请注意这会带来安全风险。security
部分设置 authorization
为 enabled
。示例配置:
net:
port: 27017
bindIp: 127.0.0.1
security:
authorization: enabled
保存并退出编辑器。
保存配置文件的更改,并重启MongoDB服务以应用这些更改:
sudo systemctl restart mongod
使用 mongo
命令行工具创建一个具有管理员权限的用户:
mongo
use admin
db.createUser({
user: "adminUser",
pwd: "securePassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
exit()
生成SSL证书和密钥:
openssl req -newkey rsa:2048 -new -x509 -days 365 -nodes -out mongodb-cert.crt -keyout mongodb-cert.key
启动MongoDB服务器时指定SSL证书和密钥:
mongod --sslPEMKeyFile mongodb-cert.key --sslMode requireSSL
使用SSL连接到MongoDB:
mongo --ssl --sslPEMKeyFile mongodb-cert.key
使用 ufw
(Uncomplicated Firewall)限制访问MongoDB的IP地址,只允许受信任的IP地址连接到MongoDB服务器:
sudo ufw allow from 192.168.1.100 to any port 27017
sudo ufw reload
启用审计功能,记录用户对数据库的所有相关操作,以便在需要时分析。
保持MongoDB和Ubuntu系统的更新,以便及时修复已知的安全漏洞。
通过上述步骤,可以显著提高MongoDB在Ubuntu上的安全性。请记住,安全是一个持续的过程,需要定期审查和更新配置。