您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
 
   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
 
     
   
 订阅
  捐助
MongoDB数据安全和保护--配置和策略(一)
 
火龙果软件    发布于 2014-10-16
1462 次浏览     评价:      
 

开始之前

本文假定您安装了 InfoSphere Guardium 收集器并在网络上进行了配置。针对 MongoDB 的 InfoSphere Guardium 活动监视要求使用 V9 GPU 50 或更高版本。如果您是 InfoSphere Guardium 客户并有资格升级到 V9.0,那么您可以先从 Passport Advantage 下载 Guardium,然后再安装 GPU(您可以从 Fix Central 获取它)。

支持的 MongoDB 版本为 2.0、2.2 和 2.4。从数据安全的角度讲,建议您升级到 MongoDB 2.4 或更高版本,因为这些版本可提供简介中所述的安全增强功能。(Kerberos 要求使用企业版。)

记录以下信息,您需要使用这些信息来完成该解决方案的安装和配置:

1.InfoSphere Guardium 收集器的 IP 地址和用于连接它的 端口 (16016)

2.分片服务器上 mongod 所使用的端口(默认值为 27018)和 IP 地址

3.路由服务器 (mongo) 使用的端口(默认值为 27017)和 IP 地址

在 MongoDB 节点上安装 S-TAP 代理

如图 1 所示,我们建议在 mongod 分片服务器和路由服务器上安装 S-TAP,以便监视在 mongod 分片服务器上可能发生的任何管理员活动。

图 1. S-TAP 被配置为侦听 MongoDB 端口

S-TAP 是特定于操作系统的,因此您需要为每个相应的节点安装 Linux? S-TAP。可以采用两种不同的方法来完成此操作:

1.使用 Guardium Installation Manager (GIM)。借助 GIM,您实际上是在安装 GIM 代理和 S-TAP。通过使用 GIM,可以从 Web 控制器控制所有 S-TAP 升级和未来安装,无需再次访问服务器。由于管理和更新非常简单,所以大多数企业都会使用 GIM。有关 GIM 的详细信息,请参阅 InfoSphere Guardium 信息中心。有关的链接,请参阅 参考资料。

2.使用您从 Fix Central 下载的 S-TAP shell 安装程序。可以采用非交互式完成该操作,这样您就可以使用同一个命令在很多节点上安装。

该过程的详细信息不在本文的讨论范围之内,但是您可以参阅 InfoSphere Guardium 信息中心,获得有关的详细信息。

如果您的 S-TAP 被正确配置为连接到 InfoSphere Guardium 收集器,那么管理控制台中的系统视图将显示为绿色,如图 2 所示。

图 2. 显示 S-TAP 与收集器正在通信的系统视图

配置检查引擎

接下来,您需要为每个 S-TAP 配置检查引擎。检查引擎提供了您定义 S-TAP 使用哪个协议进行监视 (MongoDB) 以及要监视哪些端口的方式。默认情况下,如 图 1 所示,用于 mongo 的端口为 27017,而用于 mongod(分片)的端口为 27018。您的端口可能有所不同。

要配置检查引擎,请以管理员身份登录 InfoSphere Guardium,并导航到 Administration Console。从左侧的菜单窗格中,选择 Local Tap s> S-TAP Control。找到 Mongos 服务器的 S-TAP,单击 Modify,然后选择 Add Inspection engine 下列菜单。

输入所需的端口信息。您的 mongos 检查引擎配置应如图 3 所示。

图 3. Mongos(查询路由器服务器)检查引擎配置

在分片服务器上,配置看起来会稍有不同。因为您可能知道,大多数 “正常” 活动都是通过 mongos 进行路由,然后路由到分片服务器上的 mongods。如果您监视了分片服务器上的所有流量,那么 Guardium 收集器会从 mongos 以及该命令路由到的所有分片服务器收到同一个消息。为了避免这种 “双重计算”,同时仍然能够监视通过 mongos 的所有流量,可将分片服务器上的 STAP 配置为排除所有 mongos 流量。

图 4. Mongod(分片)检查引擎配置

使用 API 配置检查引擎

如果您有很多节点,那么您可能会希望使用 Guardium API 向指定的 S-TAP 中添加检查引擎。只能从该 S-TAP 的活动 Guardium 主机修改 S-TAP 配置,并且只能在 S-TAP 处于联机状态(在系统概述中显示绿色)时修改 S-TAP 配置。

对于 mongos:

grdapi create_stap_inspection_engine client=0.0.0.0/0.0.0.0 protocol=MongoDB 
ktapDbPort=27017 portMax=27017 portMin=27017
stapHost=<ip of Mongos server where associated STAP is installed>

对于 mongod:

grdapi create_stap_inspection_engine protocol=MongoDB 
ktapDbPort=27018 portMax=27018 portMin=27018
stapHost=<ip of mongod server where STAP is installed>
client=0.0.0.0/0.0.0.0 excludeClient=<ip of Mongos>

验证是否正在捕获流量

有几种方法判断是否正在向 Guardium 收集器发送流量。有经验的 Guardium 用户可以确保安装了将捕获所有流量并查看报告的策略。

1.如果以用户身份登录,那么在 View 选项卡上,您会看到一个名为 Number of db per type 的条形图。您可以双击该报告下钻获取数据,以便查看是否有活动。

图 5. 报告下钻

2.如果您正在进行 Guardium 9.0.0.50 的全新安装,或者升级并安装了新的默认策略(名为 Default-Ignore Data Activity for Unknown Connections),那么您不会看到详细的活动。但是,您需要进入 Connection Profile List 报告,该报告将只显示任何未知连接的高级会话信息,其中包括来自 MongoDB 的那些连接的会话信息,此时这些连接应该全都是未知连接。作为一个用户,您可以在 DB Activities 下的 View 选项卡上找到该报告,如图 6 所示。

图 6. Connection Profile List

作为一名管理员,您会在 Daily Monitor 选项卡上找到该报告。

该报告如图 7 所示。它包含数据库用户名、客户端 IP 以及整个连接信息 “元组”,它标识了连接信息,比如客户端 IP、源应用程序、数据库用户名、服务器 IP 以及服务名称。

图 7. Connection Profile List

如果您确定自己的策略配置正确,但仍然没看到流量,那么请确保您拥有报告的正确日期和时间范围。如果这也没有问题,那么可能是因为在您的 S-TAP

创建要在策略和报告中使用的组

我们进行的一项重要的规划练习是创建组,创建组可以大大提高效率。例如,您可以创建管理员(特权用户)用户组、敏感数据对象组、特定命令(比如分配用户和全新的命令)组和其他任何事项。对于本文,我们将介绍一些监视用例,以及如何创建策略规则以处理那些用例。几乎所有这些规则都要求使用组。表 1 是我们将要创建的规则的摘要以及每个规则中要使用的组。

表 1. 用于创建我们的样例策略规则的规则和组

在此文章系列的第 3 部分中,我们将会介绍另一个高级功能,您可以使用策略规则及时阻止访问。该功能需要一个许可证才能进行高级活动监视。

要创建一个组,请访问 Group Builder。如果您以管理员的身份进行登录,请单击 Tools 选项卡,并从左侧菜单窗格中选择 Config & Control > Group Builder。在 我们的策略规则示例之一 中将会描述 Group Builder 界面的详细信息。

配置安全策略

基于规则的安全策略是 InfoSphere Guardium 工作原理的核心。正是通过这些规则,您可以指定 InfoSphere Guardium 要记录哪些流量、在哪些条件下会发出警告以及要阻止哪些连接。

9.0.0.50 的全新 InfoSphere Guardium 安装将会包含一个忽略所有流量的默认策略。该默认策略可帮助保护您的网络,防止在激活 S-TAP 和开始监视数据库时出现过载。

我们无法在本文中介绍所有各式各样的策略规则类型及其行为。我们选择了一些常用的监视用例,并介绍了如何为这些用例配置策略规则。我们将在本文的下一小节中介绍这些用例。

现在,让我们创建一个新的策略,您可以使用该策略开始添加规则。

单击 Tools 选项卡,并从左侧的菜单窗格中选择 Config & Control > Policy Builder。

从 Policy Finder 中单击 New。

图 8. 创建新策略

提供相关说明,然后单击 Apply。

图 9. 为该策略提供一个说明

可选:单击 Roles 以提示哪些角色可以使用这个新策略。例如,如果您选择管理员,那么具有管理员角色的任何人都可以在系统中使用该策略。

单击 Back。

现在,您可以通过添加所需的规则来编辑该策略。我们将在下一小节中介绍一些典型的规则。仅当您准备好验证某个新规则或一组规则的行为时,才应安装这个新策略。

监视用例

在这一小节中,我们将会介绍涉及其他用例的一些额外的策略规则,这些用例可能适用于您的组织机构,也可能不适用,但这些用例会让您了解一些启动方法。

如果以前从未使用过 InfoSphere Guardium,那么您需要了解的一个重要概念就是策略可以包含任意数量的规则。每个规则都有说明、条件(根据这些条件评估受监视的活动)以及在触发规则时将要启动的操作。

有三种类型的规则:

1.Access:用于数据库客户端和服务器之间的交互。

2.Exception:用于数据库服务器向客户端返回的任何异常。请注意,如果您对 MongoDB 连接使用 write concern =0 或 -1(不安全),那么您将无法记录和报告任何插入、更新或移除(删除)返回的错误条件。

3.Extrusion:应用于返回的数据集。这是一个高级功能,在本文中我们不打算讨论这个问题。

在身份验证失败次数过多时发出实时警告

防范可能通过算法生成密码的黑客的常见要求是:在某个会话中尝试失败的数量超过您定义的某个阈值时发出警告,比如在 3 分钟内尝试次数超过 5 次。

对于本规则,将会定义一个异常规则。

从 Policy Finder 中选择您的新策略并单击 Edit Rules。

图 10. 编辑新策略的规则

在 Policy Rules 页面的底部,单击 Add Exception Rule。

填写策略条件,以便从 Excpt. Type 字段的下拉菜单中指定 LOGIN_FAILED。包含最小计数(在本例中为 5)并重置间隔(在本例中为 3 分钟)。

图 11. 指定引发登录失败规则的条件

在页面底部,单击 Add Action,然后从下拉菜单中选择 ALERT ONCE PER SESSION。该操作将在某人在 3 分钟内身份验证失败超过 5 次而无法成功实现身份验证时为每个会话生成一个警告。

图 12. 选择一个会话一次警告

选择通知类型。在我们的示例中,我们选择了 SYSLOG 和默认的消息模板。单击 Add,然后单击 Apply。

图 13. 选择通知类型

警告示例:图 14 显示当您以管理员身份登录时 Incident Management 选项卡上的警告示例。

图 14. 关于登录失败次数的警告(部分输出)

忽略功能用户或连接的活动

一些组织机构拥有定期授权作业,执行一些类似于批量更新或加载的工作,这些工作需要在夜间或指定的批处理窗口中进行。这些应用程序通常是经过精挑细选的,并且在功能用户 ID 下运行。为了避免 InfoSphere Guardium 收集器中满都是与审计无关的活动,一些组织机构将使用一个名为 “Ignore S-TAP session” 的访问规则操作。

请注意,系统仍然会记录会话开始和结束信息(即,时间戳、客户端 IP、服务器 IP、用户名等等)。该规则只表示会忽略详细的命令活动。

   
 订阅
  捐助
相关文章 相关文档 相关课程



我们该如何设计数据库
数据库设计经验谈
数据库设计过程
数据库编程总结
数据库性能调优技巧
数据库性能调整
数据库性能优化讲座
数据库系统性能调优系列
高性能数据库设计与优化
高级数据库架构师
数据仓库和数据挖掘技术
Hadoop原理、部署与性能调优
 

MySQL索引背后的数据结构
MySQL性能调优与架构设计
SQL Server数据库备份与恢复
让数据库飞起来 10大DB2优化
oracle的临时表空间写满磁盘
数据库的跨平台设计
更多...   


并发、大容量、高性能数据库
高级数据库架构设计师
Hadoop原理与实践
Oracle 数据仓库
数据仓库和数据挖掘
Oracle数据库开发与管理


领先IT公司 android开发平台最佳实践
北京 Android开发技术进阶
某新能源领域企业 Android开发技术
某航天公司 Android、IOS应用软件开发
阿尔卡特 Linux内核驱动
艾默生 嵌入式软件架构设计
西门子 嵌入式架构设计
更多...   
 
 
 
 
 
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号