oracle+sqlnet+⽩名单,数据库⿊⽩名单配置⽅法综述与总结在⽇常开发、测试中,数据库由于存储了⼤量业务数据⽽成为整个系统中极为重要的关键节点,作者在前期发表的《信息泄漏防不胜防!终于有测试⼈关注信息安全了》⼀⽂中对Oracle数据库的透明数据加密技术(Oracle TDE)进⾏了详细阐述,本⽂将从数据库的访问控制⾓度对Oracle、Mysql、Gbase三种常见关系型数据库(RDBMS)的⿊⽩名单配置⽅法进⾏说明,⽅法很简单,但却很实⽤,希望能对开发、测试及运维⼈员有所帮助。
⼀.Oracle数据库⿊⽩名单配置⽅法常见mpp数据库
1.测试环境版本说明:Suse Linux 11 SP2 + Oracle 1
2.1.0.2
2.涉及⽂件:修改$ORACLE_HOME/network/a⽂件,若没有该⽂件可新建。
3.主要参数说明:
表1.主要参数说明
⼀般来讲tcp.invited_nodes与luded_nodes配置⼀个即可,当同时配置时tcp.invited_nodes优先级更⾼。
4.配置⽅法:编辑$ORACLE_HOME/network/a⽂件,加⼊如下参数:
tcp.validnode_checking = yes
tcp.invited_nodes = 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
进⾏⽩名单添加,之后重启防⽕墙即可,具体操作会随操作系统版本的不同⽽有差异,读者可根据⾃⼰的操作系统版本⾃⾏尝试。
五.综述与总结
数据库的⿊⽩名单控制⽅式⾮常简单,即使对数据库的运⾏机制不是很了解也可以快速上⼿,但是其起到的效果和实⽤性却⾮常⾼。对于使⽤需保护的敏感数据进⾏开发、测试的过程中,为加强敏感数据的保护,防⽌恶意攻击,可考虑按照数据库的产品类型进⾏⽩名单的配置,⼀定程度上将登录数据库的范围缩短⾄可控范围,⽅便事后的可追溯性,有此需求的⼩伙伴不妨试⼀下,说不定会有惊喜。
版权声明:本⽂出⾃51Testing会员投稿,51Testing软件测试⽹及相关内容提供者拥有内容的全部版权,未经明确的书⾯许可,任何⼈或单位不得对本⽹站内容复制、转载或进⾏镜像,否则将追究法律责任。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论