阅读量:47
在Linux环境下对MongoDB进行安全设置,可以遵循以下步骤:
1. 启用身份验证
-
编辑配置文件:在
/etc/mongod.conf文件中,找到或添加以下内容:security: authorization: enabled -
重启MongoDB服务:使用以下命令重启MongoDB服务以应用更改:
sudo systemctl restart mongod
2. 创建管理员用户
-
连接到MongoDB Shell:
mongo -
切换到admin数据库:
use admin -
创建管理员用户:
db.createUser({ user: "admin", pwd: "your_strong_password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
3. 配置网络访问控制
-
限制远程访问:在
/etc/mongod.conf文件中配置bindIp参数,仅允许特定IP地址或主机名连接。例如,只允许本地访问:net: bindIp: 127.0.0.1 -
禁用HTTP接口:在生产环境中,建议禁用HTTP接口以减少安全风险。在
/etc/mongod.conf文件中添加:net: http: enabled: false
4. 使用TLS/SSL加密
-
生成SSL证书:使用OpenSSL生成自签名证书。例如:
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout mongodb-key.pem -out mongodb-cert.pem -
修改配置文件:在
/etc/mongod.conf配置文件中添加SSL配置:net: ssl: mode: requireSSL PEMKeyFile: /path/to/mongodb-key.pem CAFile: /path/to/mongodb-cert.pem -
重启MongoDB服务:以使配置生效。
sudo systemctl restart mongod
5. 启用审计日志
-
配置审计日志:在
/etc/mongod.conf文件中添加以下参数以启用审计日志记录所有用户的操作:security: auditLog: destination: file format: JSON path: /var/log/mongodb/mongod.log
6. 配置防火墙
-
使用iptables:例如,只允许本地访问:
sudo iptables -A INPUT -p tcp --dport 27017 -s 127.0.0.1 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 27017 -j DROP -
使用ufw:如果使用ufw(Uncomplicated Firewall),可以这样配置:
sudo ufw allow from 127.0.0.1 to any port 27017
7. 定期备份
- 定期备份MongoDB数据:使用
mongodump和mongorestore命令进行备份。
8. 监控和日志
- 配置监控和日志记录:以便于监控和审计。在
/etc/mongod.conf文件中设置日志记录参数。
请注意,以上步骤需要根据你的具体Linux发行版和MongoDB版本进行调整。在执行任何配置更改后,建议进行充分的测试以确保系统的稳定性和安全性。