MongoDB在Debian上的安全防护措施
通过MongoDB官方APT仓库安装软件包,避免第三方源的安全风险。操作步骤:导入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),更新软件包列表并安装(sudo apt update && sudo apt install -y mongodb-org)。
强制用户通过账号密码认证访问MongoDB,防止未授权访问。编辑配置文件/etc/mongod.conf,在security部分添加authorization: enabled;重启MongoDB服务使配置生效(sudo systemctl restart mongod)。创建管理员账户(如admin),分配userAdminAnyDatabase角色(用于管理所有数据库的用户权限):use admin; db.createUser({user: "admin", pwd: "StrongPassword123!", roles: [{role: "userAdminAnyDatabase", db: "admin"}]})。
/etc/mongod.conf中的net.bindIp参数,仅允许本地或受信任IP访问。例如,仅允许本机访问(bindIp: 127.0.0.1)或指定局域网IP(bindIp: 192.168.1.100)。ufw(推荐)或iptables限制MongoDB端口(默认27017)的访问。例如,ufw配置:sudo ufw allow from trusted_ip/32 to any port 27017 proto tcp; sudo ufw enable;iptables配置:sudo iptables -A INPUT -p tcp --dport 27017 -s trusted_ip -j ACCEPT; sudo iptables -A INPUT -p tcp --dport 27017 -j DROP。加密客户端与服务器之间的数据传输,防止中间人攻击。生成自签名证书(或使用CA颁发的证书):openssl req -newkey rsa:2048 -new -x509 -days 365 -nodes -out mongodb.crt -keyout mongodb.key; cat mongodb.key mongodb.crt > mongodb.pem。修改/etc/mongod.conf中的net.ssl配置:mode: requireSSL; PEMKeyFile: /path/to/mongodb.pem(可选添加CAFile指定CA证书);重启MongoDB服务。
遵循最小权限原则,为用户分配仅满足需求的角色。例如:
use mydb; db.createUser({user: "appUser", pwd: "AppPass123!", roles: [{role: "readWrite", db: "mydb"}]});roles: [{role: "read", db: "mydb"}];db.createRole()定义特定权限(如仅允许查询某个集合)。记录数据库操作(如查询、修改、用户管理),便于追踪异常行为。编辑/etc/mongod.conf,添加security.auditLog配置:destination: file; format: JSON; path: /var/log/mongodb/audit.json;重启MongoDB服务。审计日志需定期检查(如使用tail -f /var/log/mongodb/audit.json)。
net.http.enabled: false; net.restApi.enabled: false。enableLocalhostAuthBypass(默认开启,允许本地连接无需认证,生产环境建议关闭):security.enableLocalhostAuthBypass: false。保持MongoDB和Debian系统为最新版本,及时修复安全漏洞。操作:sudo apt update && sudo apt upgrade -y mongodb-org(MongoDB更新)、sudo apt full-upgrade -y(系统更新)。定期检查MongoDB安全公告(如MongoDB官网的Security Advisories页面)。