1. 安装官方仓库的MongoDB包
避免使用系统默认仓库的旧版本,通过MongoDB官方仓库安装以确保软件包安全性和兼容性。需导入MongoDB官方GPG密钥(wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -),并创建对应Debian版本的列表文件(如Debian 11 Bullseye使用echo "deb [arch=amd64,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),再通过apt install mongodb-org安装。
2. 严格配置网络访问控制
修改/etc/mongod.conf中的net.bindIp参数,避免使用0.0.0.0(允许任意IP连接),建议限制为服务器本地IP(127.0.0.1)或特定受信任IP段(如192.168.1.100);同时确认net.port(默认27017)未被占用。此外,通过防火墙(如ufw allow 27017/tcp或iptables规则)限制仅受信任网络访问MongoDB端口,防止未授权连接。
3. 强制启用身份验证
在/etc/mongod.conf的security部分添加authorization: enabled,强制要求所有客户端连接提供认证。创建管理员账户(需在admin数据库中)并分配管理角色(如userAdminAnyDatabase),示例命令:use admin; db.createUser({user: "admin", pwd: "StrongPassword123!", roles: [{role: "userAdminAnyDatabase", db: "admin"}]})。修改配置后需重启服务(sudo systemctl restart mongod)使生效。
4. 配置SSL/TLS加密通信
为防止数据传输被窃取,需启用SSL/TLS加密。首先生成证书(如使用OpenSSL生成自签名证书: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),然后在/etc/mongod.conf中配置net.ssl.mode: requireSSL和net.ssl.PEMKeyFile: /path/to/mongodb.pem。重启服务后,客户端连接需指定--ssl和--sslCAFile参数。
5. 优化存储与性能参数
调整WiredTiger存储引擎的缓存大小(storage.wiredTiger.engineConfig.cacheSizeGB),建议设置为物理内存的50%(如8GB内存设为4GB),避免占用过多系统资源;确认数据目录(storage.dbPath,默认/var/lib/mongodb)和日志目录(systemLog.path,默认/var/log/mongodb/mongod.log)存在且具备正确权限(chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb),确保服务正常运行。
6. 实施系统级安全措施
保持Debian系统和MongoDB版本最新(sudo apt update && sudo apt upgrade -y),及时修复已知安全漏洞;禁用不必要的服务(如HTTP接口和REST API,通过net.http.enabled: false和net.restApi.enabled: false配置),减少攻击面;启用SELinux或AppArmor(若系统已启用),配置相应策略限制MongoDB的网络和文件访问权限。
7. 启用审计功能(可选但推荐)
对于需要合规性要求的场景,启用MongoDB审计功能记录所有数据库操作。在/etc/mongod.conf的security.auditLog部分配置:destination: file(日志存储路径)、format: JSON(日志格式)、path: /var/log/mongodb/audit.json。重启服务后,审计日志将记录用户登录、查询、修改等操作,便于后续追溯。