文档首页 > > 用户指南> 数据库安全防护使用指导> 数据库安全> 配置数据库防火墙策略

配置数据库防火墙策略

分享
更新时间:2020/07/31 GMT+08:00

HexaTier允许用户自定义创建基于查询模式组或者存储过程的数据库防火墙安全策略,对违反已创建策略的访问请求,支持用户进一步定制“允许”或者“阻止”,从而实现数据库的精细化安全保护。

用户可以创建以下三种类型的数据库防火墙:

  • 查询模式组:将数据库安全规则应用于创建的查询模式组或由学习模式创建的查询模式组。
  • 基于表:将数据库安全规则应用于特定数据库中的特定表或所有表。
  • 基于存储过程:将数据库安全规则应用于特定的过程或任何过程。

操作步骤

  1. 在HexaTier主菜单上,单击“防火墙”
  2. 根据需要执行以下操作:

    • 创建新的安全规则

      在命令栏,单击“新建”

    • 编辑已有的安全规则

      找到要编辑的规则,单击该行末尾的(编辑)。

  3. “规则类型”中选择“数据库防火墙”
  4. 选择应用该防火墙规则的“数据库”
  5. 根据要创建的防火墙规则,选择以下三种类型之一:

    • 查询模式组
    • 基于表
    • 基于存储过程

  6. 选择应用该防火墙规则的“代理”
  7. 根据选择的“防火墙类型”,配置应用该防火墙规则的对象:

    • 查询模式组:应用该防火墙规则的查询模式组。详情请参见配置查询模式组
    • 表:应用该防火墙规则的表,用户可以提前配置表对象,详情请参见配置策略对象
    • 存储过程:应用该防火墙规则的存储过程,用户可以提前配置存储过程对象,详情请参见配置策略对象

    用户也可以单击“新建”创建新的对象,或单击“更多”添加多个对象。

  8. 根据需求配置以下参数:

    表1 基于数据库防火墙参数

    参数名称

    说明

    名称

    该安全策略的名称。

    源IP地址

    应用该规则的源IP地址,用户可以单击“新建”来创建新的源IP地址。

    数据库用户名

    应用该规则的数据库用户,用户可以单击“新建”来创建新的数据库用户对象。

    活动目录用户

    应用该规则的活动目录用户,可以是特定活动目录用户,也可以是用户组。

    说明:

    只有配置了活动目录之后,该参数才会显示,配置活动目录的详细信息,请参见配置活动目录

    应用名称

    应用该规则的应用名称。

    计划

    应用该规则的时间计划,用户可以单击“新建”来创建新的计划。

    动作

    • 允许:允许与防火墙规则匹配的查询。
    • 阻止:阻止与防火墙规则匹配的查询。

    阻止动作

    如果在“动作”下拉框中选择了“阻止”,则需要在“阻止动作”下拉框中选择下列选项:

    • 返回空结果集
    • 断开SQL连接
    • 生成SQL错误

    日志记录

    选择是否将查询写入流量日志。

    同时生成(SMTP)告警

    如果在日志记录中选择了“流量事件”,用户可以勾选“同时生成(SMTP)告警”来启用告警功能。根据告警中定义的参数,当该规则被激活时都会发送告警。

    Syslog

    如果在日志记录中选择“流量事件”,用户可以勾选“Syslog”来启用Syslog。每次激活规则时,会向Syslog服务器发送一条消息。要配置Syslog,请参见配置Syslog

    规则优先级

    本功能用于设置新增防火墙策略的优先级:

    • 高:优先应用该新增规则。
    • 低:最后应用该新增规则。

    说明

    该安全规则的备注信息。

    禁用规则

    勾选复选框可以禁用该规则。

  9. 单击“创建”“更新”

配置查询模式组

  1. 在HexaTier主菜单上,单击“资源”
  2. 在导航树上,选择查询模式 > 查询模式组
  3. 根据需要执行以下操作:

    • 创建新的模式组

      在命令栏上,单击“新建”

    • 编辑已有的模式组

      找到所要编辑的模式组,然后单击该行末尾的(编辑)。

  4. 根据需要设置以下参数,然后单击“创建”“更新”

    表2 模式组参数

    参数名称

    说明

    名称

    查询模式组名称。

    数据库类型

    选择不同的数据库类型,“可用成员”列表中将只展示该数据库类型的模式组。

    代理

    选择不同的代理,“可用成员”列表中将只展示该代理的模式组。

    数据库

    选择不同的数据库,“可用成员”列表中将只展示该数据库的模式组。

    可用成员

    可用成员包含已有的学习模式或注入模式,同时也包含模式组。

    用户可以通过双击可用成员名称,或单击选中可用成员,再单击“添加”“当前成员”中添加成员。

    当前成员

    包含在该模式组中的成员名称。

    用户可以通过双击当前成员名称,或单击选中当前成员,再单击“移除”“当前成员”中移除成员。

配置正则模式库

正则表达式模式可以添加进查询模式组中,来创建基于查询模式组的数据库防火墙规则。

用户可以自定义正则表达式,也可以通过学习到的模式和注入模式来创建正则表达式模式。

正则表达式(Regex)以简洁灵活的方式来“匹配”(指定和识别)文本字符串,例如特定字符、单词或字符模式。

  • Regex标识

    使用以下正则表达式标识:

    • PCRE_DOTALL:模式中的点元字符匹配所有字符,包括换行符。
    • PCRE_CASELESS:模式中的字母匹配大写和小写字母。
    • PCRE_NEWLINE_ANY:指定识别unicode换行序列。
    • PCRE_UTF8:此修饰符打开PCRE的附加功能,此功能与Perl不兼容。模式和主题字符串被视为UTF-8。
  • Regex锚点

    正则表达式在整个SQL字符串上进行测试。如果“^”和“$”锚点丢失,HexaTier会自动将“^”添加到表达式字符串的开头,将“$”锚点添加到字符串的末尾。

  • SQL注释

    SQL语句与正则表达式模板相匹配时,忽略SQL注释。SQL注释的语法差异,取决于用户正在使用的数据库类型。

  • 存储过程

    正则表达式与存储过程内容匹配。

    例如:EXEC SP_DEMO与任何以EXEC SP_DEMO开头的字符串相匹配。

  1. 在HexaTier主菜单上,单击“资源”
  2. 在导航树上,选择查询模式 > 正则模式库
  3. 根据需要执行以下操作:

    • 创建新的正则表达式模式

      在命令栏上,单击“新建”

    • 编辑已有的正则表达式模式

      找到要编辑的正则表达式模式,然后单击该行末尾的(编辑)。

  4. “模式名称”文本框中,输入模式名称。
  5. “数据库类型”下拉框中选择数据库类型:

    • MySQL
    • MS-SQL
    • PostgresQL
    • LibrA/DWS

    查询模式可属于相同数据库类型组。该组也可以是数据库安全规则的一部分。如果一个组包含在数据库安全规则中,它只能属于数据库安全规则中定义的相同数据库类型。

  6. “正则表达式定义”框中,键入正则表达式。

    “宏”“图例”提供了提示,用户可以使用这些提示创建和编辑正则表达式:
    • 使用“宏”链接(任何、常量、数字、引用的字符串)向“正则表达式定义”文本框中添加规则字符串。
    • 单击“图例”查看相关字符串及其说明。

    在状态栏中(文本框右下方),系统会自动显示用户输入的正则表达式是有效还是无效。如果表达式无效,则无法保存或测试正则表达式。

  7. “测试样例”字段中,键入SQL查询或语句,然后单击“测试匹配”来确定测试内容是否匹配定义的正则表达式。
  8. 单击“创建”“更新”

自动创建正则表达式模式

用户可以将学习模式学习到的查询模式和检测到的注入模式转换为正则表达式。

  • 将学习模式转换为正则表达式模式:
    1. 在HexaTier主菜单上,单击“资源”
    2. 在导航树上,选择查询模式 > 学习模式库
    3. 找到要转换的学习模式,然后单击该行末尾的(编辑)。
    4. 单击“转换为正则表达式模式”

      跳转到正则表达式创建页面。

    5. 设置“模式名称”“数据库类型”
    6. (可选)输入测试样例,并单击“测试匹配”验证正则表达式。
    7. 单击“创建”
  • 将注入模式转换为正则表达式模式:
    1. 在HexaTier主菜单上,单击“资源”
    2. 在导航树上,选择查询模式 > 注入模式库
    3. 单击要转换的注入模式。
    4. 单击“转换为正则表达式模式”

      跳转到正则表达式创建页面。

    5. 设置“模式名称”“数据库类型”
    6. (可选)输入测试样例,并单击“测试匹配”验证正则表达式。
    7. 单击“创建”
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问