MongoDB安全基线

1 确保为MongoDB数据库启用了身份验证

1.1 描述

此设置可确保所有客户端,用户和/或服务器都需要进行身份验证。在被授予访问MongoDB数据库之前。无法对客户端,用户和/或服务器进行身份验证可以启用对服务器的未授权访问MongoDB数据库可以防止跟踪操作返回其源。

1.2 加固建议

编辑MongoDB配置文件,在security区块下配置authorization: enabled

2 确保正确设置了密钥文件权限

2.1 描述

密钥文件用于分片群集中的身份验证。 在密钥文件上实现适当的文件权限将防止对其进行未经授权的访问。保护密钥文件可加强分片集群中的身份验证,并防止对MongoDB数据库的未授权访问。

2.2 加固建议

keyFile所有权设置为mongodb用户,并通过执行以下命令删除其他权限:

chmod 600 <keyfile_path>/keyfile
sudo chown mongodb:mongodb <keyfile_path>/keyfile

3 确保正确设置了数据库文件权限

3.1 描述

MongoDB数据库文件需要使用文件权限进行保护。这将限制未经授权的用户访问数据库。

3.2 加固建议

将数据库文件的所有权设置为mongodb用户,并使用以下命令删除其他权限:

chmod 600 /var/lib/mongodb
sudo chown mongodb:mongodb /var/lib/mongodb

以上命令为默认数据库文件路径,请根据实际环境修改为正确数据库文件路径。

4 确保在不需要时禁用服务器端脚本

4.1 描述

MongoDB支持为某些服务器端操作执行JavaScript代码:mapReducegroup$ where。 如果不使用这些操作,则应禁用服务器端脚本。 如果不需要服务器端脚本并且未禁用,则会带来不必要的风险,即攻击者可能会利用不安全的编码。

4.2 加固建议

编辑<conf_file>/mongod.conf文件中将security下的javascriptEnabled:设置为false以禁用它。

5 确保MongoDB仅侦听授权接口上的网络连接

5.1 描述

确保MongoDB在受信任的网络环境中运行涉及限制MongoDB实例侦听传入连接的网络接口。 MongoDB应删除任何不受信任的网络连接。 此配置阻止来自不受信任网络的连接,只允许授权和受信任网络上的系统尝试连接到MongoDB。 如果未配置,则可能导致从不受信任的网络到MongoDB的未授权连接。

5.2 加固建议

1、如果服务只允许本机访问,编辑MongoDB的配置文件<conf_path>/mongod.conf,在net区块下配置bindIp,将此项的值设置为:127.0.0.1(仅允许本机访问),并重启MongoDB服务。
2、如业务需要设置为跨服务器访问,可通过安全组配置访问规则,防止服务暴露到互联网上,然后忽略此项

6 确保使用非特权的专用服务帐户运行MongoDB

6.1 描述

MongoDB服务不应使用特权帐户(如“root”)运行,因为这会不必要地将操作系统暴露在高风险之下。 使用非特权专用服务帐户限制数据库访问MongoDB不需要的操作系统的关键区域。 这还将减少通过操作系统上受损的特权帐户进行未经授权访问的可能性。

6.2 加固建议

1.创建用于执行MongoDB数据库活动的专用用户。
2.将数据库数据文件,密钥文件和SSL私钥文件设置为只能读取 由mongod/mongos用户提供。
3.将日志文件设置为只能由mongod/mongos用户写入,并且只能由root读取。
4.切换至该专用用户,并重启MongoDB

7 确保MongoDB使用非默认端口

7.1 描述

更改MongoDB使用的端口使攻击者更难找到数据库并将其作为目标。 标准端口用于自动攻击,并由攻击者用于验证服务器上正在运行的应用程序。

7.2 加固建议

将MongoDB服务器的端口更改为27017以外的数字

8 确保日志记录捕获尽可能多的信息

8.1 描述

SystemLog.quiet选项停止记录信息,例如:
连接事件
身份验证事件
复制同步活动
运行一些可能有影响的命令的证据(例如:drop,dropIndexes,验证)应尽可能记录此信息。 此检查仅适用于Enterprise版本。
使用SystemLog.quiet可以解决问题并进行调查安全事件要困难得多。

8.2 加固建议

编辑<conf_file>/mongod.conf文件中将SystemLog下的quiet设置为False以禁用它。

9 确保将新条目附加到日志文件的末尾

9.1 描述

默认情况下,新的日志条目将在重新启动mongodMongols服务后覆盖旧条目。 启用systemLog.logAppend设置会导致新条目附加到日志文件的末尾,而不是在mongosmongod实例重新启动时覆盖日志的现有内容。 允许旧条目被新条目覆盖而不是将新条目附加到日志末尾可能会破坏出于各种目的所需的旧日志数据。

9.2 加固建议

编辑配置文件<conf_path>/mongod.confsystemLog下的logAppend设置为true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸭梨山大。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值