51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3986|回复: 0
打印 上一主题 下一主题

[原创] 数据库黑白名单配置方法综述与总结

[复制链接]
  • TA的每日心情
    擦汗
    昨天 09:02
  • 签到天数: 1046 天

    连续签到: 4 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2021-3-15 11:13:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    在日常开发、测试中,数据库由于存储了大量业务数据而成为整个系统中极为重要的关键节点,作者在前期发表的《信息泄漏防不胜防!终于有测试人关注信息安全了》一文中对Oracle数据库的透明数据加密技术(Oracle TDE)进行了详细阐述,本文将从数据库的访问控制角度对Oracle、Mysql、Gbase三种常见关系型数据库(RDBMS)的黑白名单配置方法进行说明,方法很简单,但却很实用,希望能对开发、测试及运维人员有所帮助。
      一.Oracle数据库黑白名单配置方法
      1.测试环境版本说明:Suse Linux 11 SP2 + Oracle 12.1.0.2
      2.涉及文件:修改$ORACLE_HOME/network/admin/sqlnet.ora文件,若没有该文件可新建。
      3.主要参数说明:

    表1.主要参数说明
      一般来讲tcp.invited_nodes与tcp.excluded_nodes配置一个即可,当同时配置时tcp.invited_nodes优先级更高。
      4.配置方法:编辑$ORACLE_HOME/network/admin/sqlnet.ora文件,加入如下参数:
      tcp.validnode_checking = yes
      tcp.invited_nodes = XXX.XXX.XXX.XXX,XXX.XXX.XXX.XXX...

      重启监听服务,配置生效:
      lsntctl stop;
      lsnrctl start;
      5.测试验证:不在白名单清单中的机器远程登录Oracle数据库时报ORA-12547:TNS:lost contact错误,并且无论通过客户端还是应用程序(如jdbc,odbc)登录或连接数据库都将受限。
    图1.Oracle黑名单登录报错信息
      二.Mysql数据库黑白名单配置方法说明
      测试环境说明:Suse Linux 11 SP2 + Mysql 5.7.20
      Mysql数据库的黑白名单配置方法更为简单,在Mysql数据库中用户分为两部分:用户名@‘白名单’。
      可以在创建数据库登录用户时设置该用户可以通过哪些IP地址访问数据库,如:
      create user test@’10.0.0.1’ identified by ‘XXXXXX’;

      上面SQL创建的test用户将只能从10.0.0.1的机器上通过TCP/IP方式登录数据库;Mysql还支持*号通配符,对于某一个范围的IP地址段可使用*进行统一指定,如:
      create user test@’10.0.0.*’ identified by ‘XXXXXX’;

      上面SQL创建的test用户将可以从10.0.0的整个段登录Mysql数据库。
      需要注意的是,test@’10.0.0.1’与test@’10.0.0.*’两个用户虽然名字是一样的,但却是两个不同的用户,因为用户可以登录的机器列表是不同的。
      当在非白名单清单中的数据库或客户端上登录远程Mysql数据库时,会报主机不能连接Mysql服务的错误提示:

    图2.Mysql黑名单登录报错信息
      三.GBASE数据库黑白名单配置方法说明
      Gbase数据库作为国产MPP列存储数据库,目前主要用于业务分析及统计类系统中。由于GBASE数据库的SQL语法与MYSQL类似,其用户也分为两部分:用户名@‘白名单’,因此GBASE数据库的黑白名单设置方法与Mysql一致,在此不在重复说明。
      四.操作系统防火墙实现黑白名单登录控制
      从本质上来讲,这种方法不是数据库层面的黑白名单控制方法,而是在操作系统网络防火墙层面做的访问控制,故在此只做简单论述。
      首先需要确保防火墙已经开启,之后执行:
      iptables -I INPUT -s XXX.XXX.XXX.XXX -p tcp --dport 1521 -j ACCEPT

      进行白名单添加,之后重启防火墙即可,具体操作会随操作系统版本的不同而有差异,读者可根据自己的操作系统版本自行尝试。
      五.综述与总结
      数据库的黑白名单控制方式非常简单,即使对数据库的运行机制不是很了解也可以快速上手,但是其起到的效果和实用性却非常高。对于使用需保护的敏感数据进行开发、测试的过程中,为加强敏感数据的保护,防止恶意攻击,可考虑按照数据库的产品类型进行白名单的配置,一定程度上将登录数据库的范围缩短至可控范围,方便事后的可追溯性,有此需求的小伙伴不妨试一下,说不定会有惊喜。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 00:30 , Processed in 0.067138 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表