阅读量:308
如果你使用的是MongoDB 3.6或更高版本,可以禁用HTTP接口和REST API:
net:
http:
enabled: false
restApi:
enabled: false
3. 创建管理员用户
启动MongoDB shell:
mongo
切换到 admin 数据库并创建管理员用户:
use admin
db.createUser({
user: "myAdminUser",
pwd: "myStrongPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
4. 重启MongoDB服务
保存配置文件并重启MongoDB服务以应用更改:
sudo systemctl restart mongod
5. 使用TLS/SSL加密通信
生成SSL证书和密钥:
openssl req -newkey rsa:2048 -new -x509 -days 365 -nodes -out mongodb-cert.crt -keyout mongodb-cert.key
cat mongodb-cert.key mongodb-cert.crt > mongodb.pem
启动MongoDB服务器时使用SSL证书:
sudo mongod --ssl --sslmode requireSSL --sslpemfile mongodb.pem
6. 配置防火墙
使用 iptables 配置防火墙规则,只允许特定IP地址访问MongoDB端口:
sudo iptables -A INPUT -p tcp --dport 27017 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -j DROP
7. 使用VPN进行内部网络访问
对于公司内部网络,可以使用VPN来加强访问控制。
8. 验证配置
使用管理员账户连接到MongoDB shell以验证配置:
mongo -u myAdminUser -p myStrongPassword --ssl --sslmode requireSSL --sslpemfile mongodb.pem
通过以上步骤,你可以在Debian系统上安全地配置MongoDB,确保只有受信任的主机才能访问数据库,并且所有通信都是加密的。