Mongodb
Mongodb入门系列
Mongodb字典
Mongodb安装部署
Mongodb单点部署
Mongodb集群部署
Mongodb集群调研
Mongodb原理说明
Mongodb服务维护
Mongodb安全防护
Mongodb配置管理
Mongodb_SQL语句
Mongodb索引操作
Mongodb增删改查操作
Mongodb新闻
Mongodb使用案例
本文档使用 MrDoc 发布
-
+
home page
Mongodb安全防护
1.Mongodb未授权访问 描述 MongoDB 是一个基于分布式文件存储的数据库。默认情况下启动服务存在未授权访问风险,用户可以远程访问数据库,无需认证连接数据库并对数据库进行任意操作,存在严重的数据泄露风险。 加固建议 可以使用以下方法修复: 1.限制mongodb监听范围: 打开配置文件`<mongod.conf>`,设置`bind_ip=<ip>`,如果配置文件为yaml格式,则在net选项下设置`bindIp: <ip1,ip2...>`;其中`<ip>,<ip1,ip2...>`为指定的一个或多个IP地址,如mongodb只需在本地使用,则建议绑定本地ip127.0.0.1; 2.开启登录认证并增加认证用户: 若还没有用户,则登录mongodb客户端,创建新用户及密码。然后打开配置文件`<mongod.conf>`,设置auth=true,如果配置文件为yaml格式,则在security选项下设置authorization:enabled; 3. 设置完成后重启mongodb服务。 2.确保将新条目附加到日志文件的末尾 描述 默认情况下,新的日志条目将在重新启动mongod或Mongols服务后覆盖旧条目。 启用systemLog.logAppend设置会导致新条目附加到日志文件的末尾,而不是在mongos或mongod实例重新启动时覆盖日志的现有内容。 允许旧条目被新条目覆盖而不是将新条目附加到日志末尾可能会破坏出于各种目的所需的旧日志数据。 加固建议 编辑配置文件`<conf_path>/mongod.conf`将systemLog下的logAppend设置为true。 3.确保日志记录捕获尽可能多的信息 描述 SystemLog.quiet选项停止记录信息,例如: ?连接事件 ?身份验证事件 ?复制同步活动 ?运行一些可能有影响的命令的证据(例如:drop,dropIndexes, 验证) 应尽可能记录此信息。 此检查仅适用于Enterprise 版本。 使用SystemLog.quiet可以解决问题并进行调查 安全事件要困难得多。 加固建议 编辑`<conf_file>/mongod.conf`文件中将SystemLog下的quiet设置为False以禁用它。 4.确保MongoDB使用非默认端口 描述 更改MongoDB使用的端口使攻击者更难找到数据库并将其作为目标。 标准端口用于自动攻击,并由攻击者用于验证服务器上正在运行的应用程序。 加固建议 将MongoDB服务器的端口更改为27017以外的数字 5.确保MongoDB仅侦听授权接口上的网络连接 描述 确保MongoDB在受信任的网络环境中运行涉及限制MongoDB实例侦听传入连接的网络接口。 MongoDB应删除任何不受信任的网络连接。 此配置阻止来自不受信任网络的连接,只允许授权和受信任网络上的系统尝试连接到MongoDB。 如果未配置,则可能导致从不受信任的网络到MongoDB的未授权连接。 加固建议 1、如果服务只允许本机访问,编辑MongoDB的配置文件`<conf_path>/mongod.conf`,在net区块下配置bindIp,将此项的值设置为:127.0.0.1(仅允许本机访问),并重启MongoDB服务。 2、如业务需要设置为跨服务器访问,可通过安全组配置访问规则,防止服务暴露到互联网上,然后忽略此项 6.确保在不需要时禁用服务器端脚本 描述 MongoDB支持为某些服务器端操作执行JavaScript代码:mapReduce,group和$ where。 如果不使用这些操作,则应禁用服务器端脚本。 如果不需要服务器端脚本并且未禁用,则会带来不必要的风险,即攻击者可能会利用不安全的编码。 加固建议 编辑`<conf_file>/mongod.conf`文件中将security下的javascriptEnabled:设置为false以禁用它。 7.确保正确设置了数据库文件权限 描述 MongoDB数据库文件需要使用文件权限进行保护。这将限制未经授权的用户访问数据库。 加固建议 将数据库文件的所有权设置为mongodb用户,并使用以下命令删除其他权限: `chmod 600 /var/lib/mongodb` `sudo chown mongodb:mongodb /var/lib/mongodb` 以上命令为默认数据库文件路径,请根据实际环境修改为正确数据库文件路径。 8.确保正确设置了密钥文件权限 描述 密钥文件用于分片群集中的身份验证。 在密钥文件上实现适当的文件权限将防止对其进行未经授权的访问。保护密钥文件可加强分片集群中的身份验证,并防止对MongoDB数据库的未授权访问。 加固建议 将keyFile所有权设置为mongodb用户,并通过执行以下命令删除其他权限: `chmod 600 <keyfile_path>/keyfile` `sudo chown mongodb:mongodb <keyfile_path>/keyfile` 9.确保使用非特权的专用服务帐户运行MongoDB 描述 MongoDB服务不应使用特权帐户(如“root”)运行,因为这会不必要地将操作系统暴露在高风险之下。 使用非特权专用服务帐户限制数据库访问MongoDB不需要的操作系统的关键区域。 这还将减少通过操作系统上受损的特权帐户进行未经授权访问的可能性。 加固建议 1.创建用于执行MongoDB数据库活动的专用用户。 2.将数据库数据文件,密钥文件和SSL私钥文件设置为只能读取 由mongod/mongos用户提供。 3.将日志文件设置为只能由mongod/mongos用户写入,并且只能由root读取。 4.切换至该专用用户,并重启MongoDB 10.确保为MongoDB数据库启用了身份验证 描述 此设置可确保所有客户端,用户和/或服务器都需要进行身份验证 在被授予访问MongoDB数据库之前。 无法对客户端,用户和/或服务器进行身份验证可以启用对服务器的未授权访问 MongoDB数据库可以防止跟踪操作返回其源。 加固建议 编辑MongoDB配置文件,在security区块下配置 authorization: enabled
日行一善
April 27, 2021, 9:52 a.m.
Share documents
Collection documents
Last
Next
Scan wechat
Copy link
Scan your mobile phone to share
Copy link
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
QQ粉丝交流群:882382311
Markdown文件
share
link
type
password
Update password