Psychz - Sharad.
投票:0发表于:2017年3月20日13:13:06
在CentOS中保护MongoDB 7
关于
MongoDB建立在开源技术的基础上,迅速发展,成为一种流行的数据库,主要用于web应用程序,非常适合Node.JS应用程序。为了匹配今天web应用程序中不断发展的数据结构,MongoDB的无模式特性提供了正确的结果。它使用带有模式的文档,而不是SQL中的表。MongoDB具有自动着色、富查询、复制等优势,广泛应用于大数据、内容管理和交付等领域。在下面的教程中,我们将学习如何确保该数据库的安全性,并开发一个更强大的环境。
安全性和授权
安全是处理数据的主要问题,并从未知来源保护MongoDB服务器是服务器管理员的重要任务之一。默认安全配置允许任何匿名用户对数据库有前所未有的访问,这可能导致从服务器窃取关键信息。这使得从任何未经授权的访问权限都非常重要。向MongoDB服务器引入访问控制也很重要,因此只有密码的授权用户可以访问服务器。
先决条件
操作系统:CentOS 7
MongoDB服务器
第1部分:保护网络上的访问
在服务器上安装MongoDB后,需要执行以下步骤。MongoDB有多种版本可供选择。我们在这里安装的版本是2.6.12。
注意:MongoDB在/etc/mongodb.conf下存储其配置文件。使用VI编辑器,您可以打开文件并查看默认端口为27017。
第1步:限制网络曝光
通过限制网络访问并过滤与外部网络的连接,MongoDB访问可以包含在有限的用户中。
如果web和MongoDB服务器配置在同一个系统上,MongoDB配置文件中的“bind IP”应该设置为“127.0.0.1”,即主机IP。但是,如果不将其设置为“127.0.0.1”,则必须更改它,使其断开与外部世界的连接。在本例中,它已经设置为所需的IP。
它能做什么?
特此暂停MongoDB在互联网上的通信。bind_ip指令确保MongoDB运行在一个受信任的网络环境中,并限制MongoDB实例监听传入连接的接口。
重要提示:保存并关闭mongodb.conf文件。重新启动MongoDB服务器
sudo systemctl重启mongod
第2步:使用该步骤:验证打开的MongoDB端口netstat命令
netstat -tulpn.
第2.A部分:访问控制设置
由于MongoDB是开源的,所以在安装MongoDB之后,任何匿名用户都可以访问它,这是不安全的。因此,我们需要设置访问控制来保护存储在其中的数据。这可以通过一些简单的步骤来实现:
第1步:输入MongoDB服务器
键入以下命令以连接到数据库
蒙戈
步骤2:切换到admin数据库,在admin数据库中创建用户
注意:要在数据库下创建用户,您需要使用以下命令切换到管理数据库
使用管理员
接下来,我们将创建一个用户并使用UserAdminanyDatabase角色为其分配密码:
使用下面的命令使用适当的语法创建具有指定角色的用户
DB.CreateUser({User:“Sharad”,PWD:“Hello123”,角色:[{角色:“UserAdminanyDatabase”,DB:“Admin”}]})
这将创建一个名为“sharad”的用户,密码为“hello123”。
输出:
重要提示:断开Mongo Shell
出口
第3步:输入mongodb.conf配置文件
现在我们需要再次输入此文件并将授权更改为“true”以使其生效。在这种情况下,它已经是真的,所以我们不需要做任何改变。但是,如果它是'false'那么你需要将它附加到'true'
保存并关闭该文件
步骤4:重启MongoDB实例
sudo systemctl重启mongod
第2.B部分:数据库安全
又一级别的身份验证是通过添加具有有效密码的用户来保护各个数据库。这样做是为了保护数据库,因为每个用户未被授权访问所有数据库。以下步骤演示如何保护数据库:
步骤1:访问MongoDB并创建数据库
键入以下命令以连接到数据库
蒙戈
现在,我们使用“使用”命令创建数据库“Mercury”:
使用汞
第2步:创建用户
创建一个名为'的用户Sharad'密码为'地球的for Mercury DB以下命令:
db.createuser(
{
用户:“sharad”,
pwd:“地球”,
角色:[{role: "readWrite", db: "mercury"},
{角色:“阅读”,DB:“Reporting”}]
}
)
第三步:连接“mercury”db
我们需要允许授权到可以执行命令或用户的管理员用户“这位“可以在Mercury DB上进行读/写操作。
Mongo - Port 27017 -U“Sharad”-P“地球”--AuthenticationDatabase“Mercury”
您可以通过以下列方式插入记录来验证如下
step3.1.
以下命令将打开“使用”后指定的数据库(在这种情况下,我们正在切换到我们在上面的步骤中创建的“Mercury”数据库)
使用汞
Step3.2.
在接下来的步骤中,我们创建一个对象“names”,并插入字段“”标题”;”去年”和“第一的“
db.names.insert({“title”:“先生”,“最后”:“Acharya”,“第一”:“Sharad”})
Step3.3.
下面的命令显示名为"名称“
db.names.find ()
总结
在本教程中,我们使用了3个预防措施来保护数据库从上面给出的步骤保护数据库从不需要的未经授权访问。在安装数据库之后和在使用之前,它很重要。