Ogg Security 介绍

作者简介:普朝晖,现就职于北京海天起点技术服务股份有限公司,担任数据库技术顾问,获有OCP11g证书,具有多年数据库管理维护经验,服务对象覆盖税务、金融、电力等大型企事业单位。擅长于ORACLE数据库环境搭建及故障诊断,并且也获有OGG11g证书,对于OGG搭建及维护也颇有见解。

Oracle Goldengate作为一套多功能实用性工具被广泛应用于各行业领域,它的用途主要体现在数据冗余、读写分离、数据整合、迁移等方面。时至今日部署一套OGG对于每个数据库维护人员来说已并不是一件难事,然而正是因为其配置之方便,应用之广泛,如果我们此时还仅仅是以让OGG正常运转为目标,那么我们所搭建的OGG很有可能成为整个系统的安全缺口及不稳定因素。下面就来介绍几种OGG自带的安全加固技术,大家可以根据自己系统的实际情况加以应用,以使得OGG更加牢固可靠。

Ogg安全加固技术大致可以分为以下5类:

  • Trail文件加密
  • 用户密码加密
  • TCP/IP传输加密
  • 操作系统用户权限管理
  • Passive进程

Trail文件加密

任何信息在经过网络传输的过程中都有可能被窃取,未加密的trail文件如果被不法分子捕获到,再通过一些工具例如Ogg Logdump 就很容易获取到里面的内容,所以在不受信任的网络中传输数据时,运用trail加密就可以提升数据安全性。

配置方法:

在各进程配置文件中加入以下参数即可:

注:写Trail的进程用ENCRYPTTRAIL,读trail的进程用DECRYPTRAIL,即如果配置了投递进程,那么加密与解密参数均需添加。

加密过的trail文件无法被未配置解密密匙的进程读取,并且logdump显示将会如下图所示:

用户密码加密

了解OGG的小伙伴都知道在配置OGG抽取与复制进程时,是需要在配置文件中列入OGG用户及密码等信息的,而这些配置文件是很容易查看到的,有的配置人员为了图方便甚至会给OGG赋予DBA权限,这样就造成了很大的安全隐患,运用用户密码加密就可以将配置文件中的明文密码转为密文,以提升安全等级。

配置方法:

在GGSCI命令行中输入:

随后屏幕中会返回一个加密后的用户密码:

在进程配置文件中添加如下参数:

加密后的效果如下图所示:

TCP/IP传输加密

该项加密技术与TRAIL文件加密类似,只不过该加密只发生在网络传输过程中,原端和目标端的TRAIL文件是未加密的。

配置方法:

在各进程配置文件中加入以下参数即可:

–生成密匙–

在前三个加密过程中我们均可以看到<keyname>这么一个配置项,它就相当于一个凭证(密匙),用一把密匙加密的内容必须要相同的密匙才能解密。

配置方法:

在OGG HOME目录中运行以下命令:

随后屏幕就会返回指定数量的密匙名和密匙值,将他们复制到原端及目标端OGG HOME目录中名为ENCKEYS的文件中即可:

注:我们也可以不使用KEYGEN来生成密匙,直接用键盘敲出一串密匙也是可以的,但是不管是KEYGEN还是自己编辑的密匙,其长度需要与加密模式长度(AES128|AES192|AES256)一致。

操作系统用户权限管理

OGG可以对不同的操作系统用户赋予不同的操作约束,这项技术的一个应用场景就发生在我一个同事身上,他手下有一群新人会经常对OGG进行一些维护,例如检查进程状态、新增同步表等,但由于新人们技术不够老练,我同事但心他们乱来而给OGG带来无法挽回的破坏,于是就新建了一个操作系统用户,仅给这个用户赋予一些例如INFO、START、STOP等一些最基本的命令权限,这样他心里就踏实多了。

配置方法:

OGG HOME目录中创建名为CMDSEC的文件,并添加如下格式内容:

例:

Passive进程

如果Ogg的目标端在一个安全的网络环境,但原端却在一个非安全的网络环境,那么在原端上配置投递进行时写入目标数据库的ip及端口信息就显得不那么安全了,并且让一个处在不安全环境服务器中的ogg来初始化连接有时候也是会违法一些安全策略的,所以我们可以利用passive进程来实现更安全的OGG搭建。其配置结构和运行机制如下图所示:

流程说明:

  1. 用户启动位于目标端中的alias extract进程。
  2. 目标端中的GGSCI传递信号给原端的OGG MGR进程,让其启动本地的passive extract进程,并且目标端IP、mgr port等信息也会随之传递到原端。
  3. 目标端中mgr启动本地的passive extract进程,并且监听一个为passive extract分配的端口。
  4. 目标端mgr将分配的端口传递给目标端GGSCI。
  5. 目标端GGSCI传递一个请求给mgr让其开启一个collector进程。
  6. 目标端mgr开启一个collector进程并且告诉它原端passive extract正监听的那个端口。
  7. 目标端collector进程创建一个与原端passive extract通讯的连接。
  8. 数据由原端passive进程传递给目标端collector进程随后写入trail文件。

配置方法:

原端创建PASSIVE进程:

注:对于extact-replicat结构,passive进程是extract,对于extract-pump-replicat结构,passive进程就是pump了,passive进程需要像标准进程那样的参数文件,只是不需要加rmthost参数。

目标端创建ALIAS进程:

注:alias进程不要用参数文件。

剩余的其它配置和标准配置保持一致。

最后,如果还有想对OGG Security有进一步了解的小伙伴可参考官方文档:

https://docs.oracle.com/cd/E35209_01/doc.1121/e29397.pdf

未经允许不得转载:Oracle一体机用户组 » Ogg Security 介绍

相关推荐