在Debian系统上设置MongoDB的安全策略主要包括以下几个方面:
在MongoDB配置文件 /etc/mongod.conf
中启用身份验证,并创建管理员账户。
security:
authorization: enabled
然后,启动MongoDB shell并创建管理员账户:
sudo mongo
use admin
db.createUser({
user: "admin",
pwd: "yourStrongPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
退出MongoDB shell。
配置MongoDB只监听本地连接,或者只允许特定的IP地址访问。可以通过修改MongoDB配置文件中的 net.bindIp
选项来限制访问来源。
net:
bindIp: 127.0.0.1 # 仅允许本地连接
或者,允许特定的IP地址:
net:
bindIp: 192.168.1.100 # 替换为允许的IP地址
为了加密客户端和服务器之间的通信,可以使用TLS/SSL。这需要在MongoDB配置文件中配置TLS/SSL相关的证书和密钥文件。
net:
ssl:
mode: requireSSL
PEMKeyFile: /path/to/mongodb.pem
CAFile: /path/to/ca.pem
使用 ufw
或 iptables
限制对MongoDB端口的访问。
sudo ufw allow 27017/tcp # 允许通过27017端口的TCP流量
sudo ufw enable # 启用ufw
或者使用 iptables
:
sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
sudo service iptables save
保持MongoDB和Debian系统的更新,以便及时修复已知的安全漏洞。
sudo apt update
sudo apt upgrade mongodb-org
启用安全审计功能以记录数据库操作。在MongoDB配置文件中添加以下配置项来启用审计功能:
security:
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/audit.log
配置完成后,需要重启MongoDB实例以使配置生效。
在MongoDB 3.6及以上版本中,已经移除了不再使用的HTTP接口和REST API。确保你的MongoDB版本支持此配置,并在配置文件中禁用它。
net:
http:
enabled: false
jsonp:
enabled: false
rest:
enabled: false
通过官方仓库安装MongoDB可以确保软件包的安全性和可靠性。
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt install -y mongodb-org