在Debian系统中配置MongoDB以增强安全性是一个重要的步骤,以下是一个详细的指南:
首先,确保你的Debian系统是最新的:
sudo apt update && sudo apt upgrade -y
然后,导入MongoDB公钥并添加MongoDB存储库:
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [ archamd64,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
sudo apt update
sudo apt install -y mongodb-org
编辑MongoDB配置文件 /etc/mongod.conf
:
sudo nano /etc/mongod.conf
在配置文件中添加或修改以下内容以启用认证:
security:
authorization: enabled
将MongoDB绑定到本地接口,只允许本机访问:
net:
bindIp: 127.0.0.1
默认情况下,MongoDB监听27017端口。你可以根据需要更改端口,但请确保端口未被其他服务占用。
net:
port: 27017
为了加密客户端和服务器之间的通信,启用SSL:
net:
ssl:
mode: requireSSL
启动MongoDB服务并设置其开机自启:
sudo systemctl start mongod
sudo systemctl enable mongod
使用MongoDB shell创建管理员用户:
mongo
use admin
db.createUser({
user: "myAdmin",
pwd: "myStrongPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
退出MongoDB shell并尝试使用新创建的管理员用户重新连接:
mongo -u myAdmin -p myStrongPassword --authenticationDatabase admin
启用安全审计功能以记录数据库操作:
security:
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/audit.json
使用 iptables
或其他防火墙软件限制对MongoDB端口的访问:
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
sudo service iptables save