MongoDB 防止勒索病毒攻击的核心是启用身份认证、绑定内网 IP 并配置防火墙,同时验证备份可恢复性。默认无认证且监听公网的配置极易被扫描脚本直接删除数据,必须在安装后立即修改默认配置。
先说结论:MongoDB 防勒索的关键在于阻断未授权访问入口并确保有可用备份,单靠存储加密无法防止逻辑删除。
- 先判断:检查配置文件是否启用 security.authorization 及 bind_ip 是否限制为内网。
- 优先做:开启认证、创建最小权限用户、配置防火墙只放行应用服务器 IP。
- 再验证:尝试无密码连接应被拒绝,并定期测试备份恢复流程。
命令速用版
若发现数据库疑似被入侵,立即执行网络隔离,阻止攻击者继续操作。
sudo iptables -A INPUT -p tcp `--dport` 27017 -j DROP
检查当前 MongoDB 配置是否开启认证:
grep -E "authorization|bind_ip" /etc/mongod.conf
查看是否存在异常数据库(如 READ_ME_TO_RECOVER):
mongo `--eval` "show dbs"
为什么会这样
MongoDB 默认启动时不启用认证且监听所有网络接口,导致公网扫描脚本可直接连接并执行删除操作。安装完毕后 admin 数据库为空,即使添加`--auth` 参数,若未创建第一个用户,认证机制也不会生效,攻击者无需密码即可执行 db.dropDatabase() 或导出全部数据。
分步处理
按照以下顺序加固 MongoDB,确保每一步都有验证。
1. 网络层隔离
修改 bind_ip 仅监听内网 IP 或本机,不要使用 0.0.0.0。在云服务器安全组中,只放行应用服务器的源 IP 到 27017 端口,拒绝 0.0.0.0/0。
2. 启用身份认证
在 mongod.conf 中设置 security.authorization: enabled。重启服务前,务必先在 admin 数据库创建管理员用户,否则重启后将无法登录。
use admin
db.createUser({user:"admin", pwd:"强密码", roles:["userAdminAnyDatabase","clusterAdmin"]})3. 创建业务专用用户
不要使用 root 或 admin 账号给业务连接。为每个业务库创建独立用户,仅授予 readWrite 权限。
use orders
db.createUser({user:"order_app", pwd:"独立强密码", roles:[{role:"readWrite", db:"orders"}]})4. 备份与恢复验证
配置定期快照备份,并将备份存储在与数据库隔离的位置。定期执行恢复演练,确保备份文件未被损坏且可用。
怎么验证是否生效
完成加固后,通过以下方法确认安全策略已生效。
1. 认证测试
尝试不使用密码连接数据库,连接应被拒绝或无法执行写操作。
mongo `--host` <IP> `--eval` "db.runCommand({ping:1})"2. 网络测试
从非白名单 IP 尝试 telnet 27017 端口,连接应超时或被重置。
3. 日志审计
开启审计日志,监控 remove、dropCollection 等高危行为,确认日志能记录连接来源 IP。
常见坑
以下误区可能导致加固措施失效,操作时需特别注意。
1. 加密不等于防勒索
WiredTiger 存储引擎加密仅防止物理磁盘被盗后读取,无法阻止获得权限后的逻辑删除操作。开启加密后仍需配合访问控制。
2. 本地回环 bypass
部分旧版本或特定配置下,localhost 可能绕过认证。确保设置 enableLocalhostAuthBypass: false 或显式绑定非回环 IP。
3. 改端口无效
将 27017 改为其他端口只能防小白,专业扫描器会将常见偏移端口列入字典,不能替代防火墙策略。
常见问题
开启 WiredTiger 加密能防止文件被删除吗?
不能。加密仅保护磁盘文件防物理窃取,一旦攻击者获得数据库写权限,仍可执行 remove 或 drop 命令清空数据。
数据库被勒索后数据能恢复吗?
取决于是否有未被覆盖的备份或延迟副本集。发现勒索后应立即停止 mongod 进程,避免新写入覆盖底层数据块。
只绑定内网 IP 就安全了吗?
不安全。如果宿主机其他服务被攻破(如 SSRF、Docker API 暴露),攻击者仍能从内网打穿 MongoDB,需配合防火墙双重防护。
参考来源
- 如何防御针对 MongoDB 的勒索病毒攻击
- MongoDB GridFS 如何应对勒索病毒攻击_开启数据库加密存储引擎
- 从一次数据被黑经历说起:MongoDB 安全防护的 5 个关键步骤
- Ubuntu 20.04 下 MongoDB 安全加固四层实战指南
- MongoDB 安全加固方案,防止数据泄露被勒索
- 避免 MongoDB 被勒索详解,腾讯云上更安全 - 腾讯云开发者社区 - 腾讯云
- MongoDB 数据安全防护指南:六大核心策略保障数据不泄露、不丢失