GoldenGate教程FG062-OGG安全加固与数据加密传输实战
本文档风哥主要介绍Oracle GoldenGate安全加固与数据加密传输实战方法,包括安全架构概念、安全威胁分析、凭证存储配置、数据传输加密、安全审计等内容,风哥教程参考GoldenGate官方文档安全管理、加密配置等内容,适合需要进行OGG安全加固的运维人员参考。
Part01-基础概念与理论知识
1.1 OGG安全架构概念
OGG安全架构是指在数据同步过程中,保护数据的机密性、完整性和可用性的安全措施体系。在当前网络安全形势下,数据安全已成为企业的重要关注点。更多视频教程www.fgedu.net.cn
- 身份认证:验证用户和进程身份
- 访问控制:控制对资源的访问权限
- 数据加密:保护数据传输和存储安全
- 审计日志:记录安全相关操作
- 安全配置:加固系统安全设置
# 第一层:网络安全
– 网络隔离
– 防火墙配置
– VPN加密通道
– 访问控制列表
# 第二层:主机安全
– 操作系统加固
– 用户权限管理
– 文件权限控制
– 安全补丁更新
# 第三层:OGG安全
– 凭证存储加密
– 数据传输加密
– 进程权限控制
– 审计日志记录
# 第四层:数据库安全
– 数据库用户权限
– 数据加密存储
– 数据库审计
– 数据脱敏
# OGG安全组件
| 组件 | 功能 | 安全级别 |
|——————|————————|———–|
| Credential Store | 存储加密凭证 | 高 |
| Wallet | 存储密钥和证书 | 高 |
| ENCRYPTKEY | 数据加密密钥 | 高 |
| Trail加密 | Trail文件加密 | 中 |
| 网络加密 | 传输数据加密 | 高 |
| 审计日志 | 操作审计记录 | 中 |
# 安全威胁模型
CIA三元组:
– Confidentiality(机密性):数据不被未授权访问
– Integrity(完整性):数据不被未授权修改
– Availability(可用性):数据和服务可用
# 常见安全威胁
| 威胁类型 | 描述 | 影响 |
|—————–|————————|——————|
| 数据泄露 | 敏感数据被未授权访问 | 机密性受损 |
| 数据篡改 | 数据被未授权修改 | 完整性受损 |
| 拒绝服务 | 服务不可用 | 可用性受损 |
| 权限提升 | 获取未授权权限 | 全面安全风险 |
| 中间人攻击 | 数据传输被截获 | 机密性完整性受损 |
1.2 安全威胁与风险分析
了解安全威胁是制定安全策略的基础:
# 威胁1:凭证泄露
风险点:
– 参数文件中的明文密码
– 数据库连接字符串
– 操作系统用户密码
影响:
– 数据库被未授权访问
– 数据泄露或篡改
– 系统被入侵
防护措施:
– 使用Credential Store
– 使用Wallet存储密钥
– 定期更换密码
# 威胁2:数据传输截获
风险点:
– 网络传输中的Trail文件
– 数据库连接数据
– 管理端口通信
影响:
– 敏感数据泄露
– 数据被篡改
– 合规风险
防护措施:
– 启用传输加密
– 使用SSL/TLS
– 配置网络隔离
# 威胁3:Trail文件泄露
风险点:
– Trail文件存储
– Trail文件备份
– Trail文件传输
影响:
– 数据泄露
– 数据被篡改
防护措施:
– Trail文件加密
– 文件权限控制
– 安全存储介质
# 威胁4:未授权访问
风险点:
– OGG管理端口
– GGSCI命令行
– 数据库连接
影响:
– 配置被篡改
– 数据被泄露
– 服务被中断
防护措施:
– 访问控制列表
– 用户权限管理
– 审计日志记录
# 风险评估矩阵
| 风险项 | 可能性 | 影响程度 | 风险等级 | 优先级 |
|—————-|———|———–|———–|———|
| 凭证泄露 | 中 | 高 | 高 | P1 |
| 数据传输截获 | 低 | 高 | 中 | P2 |
| Trail文件泄露 | 低 | 中 | 中 | P2 |
| 未授权访问 | 中 | 中 | 中 | P2 |
| 服务拒绝 | 低 | 中 | 低 | P3 |
1.3 OGG安全组件介绍
OGG提供多种安全组件来保护数据安全:
功能:
– 安全存储数据库凭证
– 加密存储用户名密码
– 支持别名引用
配置方式:
# 创建Credential Store
GGSCI> ADD CREDENTIALS
# 添加凭证
GGSCI> ALTER CREDENTIALS ADD USER fgedu, PASSWORD password, ALIAS fgedu_alias
# 使用凭证
GGSCI> DBLOGIN USERIDALIAS fgedu_alias
优点:
– 凭证加密存储
– 参数文件无需明文密码
– 支持权限控制
# 组件2:Oracle Wallet
功能:
– 存储PKI证书
– 存储加密密钥
– 支持SSL/TLS
配置方式:
# 创建Wallet
$ mkstore -wrl /GoldenGate/app/wallet -create
# 添加凭证
$ mkstore -wrl /GoldenGate/app/wallet -createEntry oracle.fgedu.credentials fgedu/password
# 配置OGG使用Wallet
GGSCI> SET ENCRYPTION ON, KEYNAME mykey, ALGORITHM AES256
优点:
– 符合Oracle安全标准
– 支持多种加密算法
– 密钥管理方便
# 组件3:数据加密
功能:
– Trail文件加密
– 网络传输加密
– 数据库连接加密
配置方式:
# 生成加密密钥
GGSCI> ENCRYPT PASSWORD password ALGORITHM AES256 ENCRYPTKEY mykey
# 配置Trail加密
EXTRACT E_FGEDU01
ENCRYPTTRAIL AES256 KEYNAME mykey
EXTTRAIL /GoldenGate/app/dirdat/ea
优点:
– 数据全程加密
– 多种加密算法
– 符合合规要求
# 组件4:访问控制
功能:
– 控制GGSCI访问
– 控制Manager端口访问
– 控制进程操作权限
配置方式:
# Manager访问控制
GGSCI> EDIT PARAMS MGR
ACCESSRULE, PROG *, USER ogg, ALLOW
ACCESSRULE, PROG *, IPADDR 192.168.1.*, ALLOW
ACCESSRULE, PROG *, DENY
优点:
– 细粒度访问控制
– 支持IP和用户限制
– 增强安全性
# 加密算法对比
| 算法 | 密钥长度 | 安全级别 | 性能 | 推荐场景 |
|———-|———–|———–|——–|—————|
| AES128 | 128位 | 高 | 快 | 一般数据加密 |
| AES192 | 192位 | 很高 | 中 | 敏感数据加密 |
| AES256 | 256位 | 最高 | 慢 | 高敏感数据 |
| 3DES | 168位 | 中 | 慢 | 兼容旧系统 |
Part02-生产环境规划与建议
2.1 安全加固规划
制定详细的安全加固规划是保障OGG安全的基础:
- 识别敏感数据和关键资产
- 评估安全风险和威胁
- 制定安全策略和标准
- 实施安全控制措施
- 建立安全监控和响应机制
# 1. 网络安全
| 加固项 | 措施 | 优先级 |
|—————-|————————|———|
| 网络隔离 | 部署防火墙,划分安全域 | P1 |
| 端口控制 | 限制OGG端口访问 | P1 |
| 传输加密 | 启用SSL/TLS加密 | P1 |
| 访问控制 | 配置IP白名单 | P2 |
# 2. 主机安全
| 加固项 | 措施 | 优先级 |
|—————-|————————|———|
| 用户管理 | 使用专用OGG用户 | P1 |
| 权限控制 | 最小权限原则 | P1 |
| 文件权限 | 限制OGG目录访问 | P1 |
| 安全补丁 | 及时更新安全补丁 | P2 |
# 3. OGG安全
| 加固项 | 措施 | 优先级 |
|—————-|————————|———|
| 凭证管理 | 使用Credential Store | P1 |
| 数据加密 | 启用Trail加密 | P1 |
| 传输加密 | 启用网络加密 | P1 |
| 审计日志 | 启用操作审计 | P2 |
# 4. 数据库安全
| 加固项 | 措施 | 优先级 |
|—————-|————————|———|
| 用户权限 | 最小权限原则 | P1 |
| 连接加密 | 启用数据库加密连接 | P2 |
| 数据脱敏 | 敏感数据脱敏 | P2 |
# 安全加固实施计划
阶段1:紧急加固(1周)
– 配置Credential Store
– 启用传输加密
– 配置访问控制
阶段2:重要加固(2周)
– 启用Trail加密
– 配置审计日志
– 完善权限控制
阶段3:全面加固(1个月)
– 完善监控告警
– 安全培训
– 安全演练
2.2 加密策略规划
制定合理的加密策略可以平衡安全性和性能:
# 1. 凭证加密
策略:
– 使用Credential Store存储所有凭证
– 使用AES256加密算法
– 定期更换密钥
实施:
# 创建Credential Store
GGSCI> ADD CREDENTIALS
# 添加数据库凭证
GGSCI> ALTER CREDENTIALS ADD USER fgedu, PASSWORD password, ALIAS fgedu_alias
# 修改参数文件使用别名
USERIDALIAS fgedu_alias
# 2. Trail文件加密
策略:
– 所有Trail文件加密存储
– 使用AES256加密算法
– 密钥安全存储
实施:
# 生成加密密钥
GGSCI> OPEN WALLET
GGSCI> CREATE ENCRYPTKEY mykey
# 配置Extract加密
EXTRACT E_FGEDU01
ENCRYPTTRAIL AES256 KEYNAME mykey
EXTTRAIL /GoldenGate/app/dirdat/ea
# 配置Replicat解密
REPLICAT R_FGEDU01
DECRYPTTRAIL AES256 KEYNAME mykey
EXTTRAIL /GoldenGate/app/dirdat/ea
# 3. 网络传输加密
策略:
– 所有网络传输加密
– 使用SSL/TLS协议
– 证书认证
实施:
# 配置Manager SSL
GGSCI> EDIT PARAMS MGR
PORT 7809
SSL_CERTIFICATE /GoldenGate/app/certs/server.crt
SSL_PRIVATEKEY /GoldenGate/app/certs/server.key
# 配置Data Pump加密
EXTRACT P_FGEDU01
RMTHOST target-host, MGRPORT 7809, ENCRYPT AES256 KEYNAME mykey
RMTTRAIL /GoldenGate/app/dirdat/ra
# 4. 数据库连接加密
策略:
– 数据库连接使用加密通道
– 配置Oracle Net加密
实施:
# 配置sqlnet.ora
SQLNET.ENCRYPTION_SERVER = REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER = (AES256)
SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = (SHA256)
# 加密性能影响评估
| 加密类型 | CPU开销 | 网络开销 | 存储开销 |
|—————-|———-|———–|———–|
| 凭证加密 | 极低 | 无 | 极低 |
| Trail加密 | 5-10% | 无 | 5-10% |
| 网络加密 | 3-5% | 2-5% | 无 |
| 数据库连接加密 | 2-3% | 1-2% | 无 |
2.3 审计合规规划
建立完善的审计机制是满足合规要求的关键:
# 合规要求
| 标准 | 审计要求 |
|————–|——————————————|
| 等保2.0 | 访问控制、安全审计、入侵防范 |
| GDPR | 数据访问记录、安全事件报告 |
| PCI DSS | 访问日志、安全事件监控 |
| SOX | 访问控制、变更审计 |
# 审计内容规划
# 1. 访问审计
– GGSCI命令执行记录
– 进程启动/停止记录
– 配置变更记录
– 数据访问记录
# 2. 操作审计
– 用户登录/登出
– 权限变更
– 配置修改
– 数据操作
# 3. 安全事件审计
– 认证失败
– 权限违规
– 异常访问
– 安全告警
# 审计日志配置
# Manager审计配置
GGSCI> EDIT PARAMS MGR
PORT 7809
PURGEOLDEXTRACTS /GoldenGate/app/dirdat/*, USECHECKPOINTS
— 启用命令审计
COMMANDAUDIT ON
— 启用访问日志
ACCESSLOG /GoldenGate/app/logs/access.log
# 审计日志保留策略
| 日志类型 | 保留时间 | 存储位置 |
|—————-|———–|—————|
| 访问日志 | 90天 | 集中日志平台 |
| 操作日志 | 90天 | 集中日志平台 |
| 安全事件日志 | 1年 | 安全审计系统 |
| Trail日志 | 30天 | 本地存储 |
# 审计报告要求
– 每日:安全事件汇总报告
– 每周:访问统计报告
– 每月:合规审计报告
– 每季度:安全评估报告
Part03-生产环境项目实施方案
3.1 凭证存储安全配置实战
3.1.1 Credential Store配置
GGSCI (fgedu.net.cn)> ADD CREDENTIALS
Credential store created in /GoldenGate/app/dircrd/.
# 步骤2:验证Credential Store
GGSCI (fgedu.net.cn)> INFO CREDENTIALS
Credential store domain: OracleGoldenGate
Credential store location: /GoldenGate/app/dircrd/
Credential store size: 4096 bytes
# 步骤3:添加数据库凭证
GGSCI (fgedu.net.cn)> ALTER CREDENTIALS ADD USER fgedu, PASSWORD fgedu123, ALIAS fgedu_alias
Credentials added for alias ‘fgedu_alias’.
# 步骤4:验证凭证
GGSCI (fgedu.net.cn)> INFO CREDENTIALS
Alias: fgedu_alias
Userid: fgedu
Domain: OracleGoldenGate
# 步骤5:使用凭证登录
GGSCI (fgedu.net.cn)> DBLOGIN USERIDALIAS fgedu_alias
Successfully logged into database.
# 步骤6:修改参数文件使用别名
# 修改前
EXTRACT E_FGEDU01
USERID fgedu, PASSWORD fgedu123
EXTTRAIL /GoldenGate/app/dirdat/ea
TABLE fgedu01.*;
# 修改后
EXTRACT E_FGEDU01
USERIDALIAS fgedu_alias
EXTTRAIL /GoldenGate/app/dirdat/ea
TABLE fgedu01.*;
# 步骤7:更新凭证
GGSCI (fgedu.net.cn)> ALTER CREDENTIALS REPLACE USER fgedu, PASSWORD newpassword, ALIAS fgedu_alias
Credentials replaced for alias ‘fgedu_alias’.
# 步骤8:删除凭证
GGSCI (fgedu.net.cn)> ALTER CREDENTIALS DELETE ALIAS fgedu_alias
Credentials deleted for alias ‘fgedu_alias’.
# 步骤9:设置Credential Store权限
$ chmod 700 /GoldenGate/app/dircrd
$ chown ogg:ogg /GoldenGate/app/dircrd
$ ls -la /GoldenGate/app/dircrd/
total 8
drwx—— 2 ogg ogg 4096 Apr 10 10:00 .
drwxr-x— 8 ogg ogg 4096 Apr 10 10:00 ..
-rw——- 1 ogg ogg 4096 Apr 10 10:00 cwallet.sso
3.1.2 Wallet配置
$ mkdir -p /GoldenGate/app/wallet
$ chmod 700 /GoldenGate/app/wallet
# 步骤2:创建Wallet
$ orapki wallet create -wallet /GoldenGate/app/wallet -pwd WalletPass123 -auto_login
Oracle PKI Tool : Version 19.0.0.0.0
Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
Enter wallet password:
Wallet created.
# 步骤3:添加凭证到Wallet
$ mkstore -wrl /GoldenGate/app/wallet -createEntry oracle.fgedu.credentials fgedu/fgedu123
Oracle Secret Store Tool : Version 19.0.0.0.0
Copyright (c) 2004, 2019, Oracle and/or its affiliates. All rights reserved.
Enter wallet password:
Create credential oracle.fgedu.credentials.
# 步骤4:配置OGG使用Wallet
# 在GLOBALS文件中配置
GGSCI (fgedu.net.cn)> EDIT PARAMS ./GLOBALS
WALLETLOCATION /GoldenGate/app/wallet
# 步骤5:生成加密密钥
GGSCI (fgedu.net.cn)> OPEN WALLET
Wallet opened.
GGSCI (fgedu.net.cn)> CREATE ENCRYPTKEY mykey
Encryption key ‘mykey’ created.
# 步骤6:列出密钥
GGSCI (fgedu.net.cn)> INFO ENCRYPTKEY
Encryption key name: mykey
Algorithm: AES256
Created: 2026-04-10 10:00:00
# 步骤7:使用密钥加密密码
GGSCI (fgedu.net.cn)> ENCRYPT PASSWORD mypassword ALGORITHM AES256 ENCRYPTKEY mykey
Encrypted password: AACAAAAAAAAAAAJAUEPOMEW…
# 步骤8:配置参数文件使用加密密码
EXTRACT E_FGEDU01
USERID fgedu, PASSWORD AACAAAAAAAAAAAJAUEPOMEW…, ENCRYPTKEY mykey
EXTTRAIL /GoldenGate/app/dirdat/ea
TABLE fgedu01.*;
3.2 数据传输加密配置实战
3.2.1 Trail文件加密
GGSCI (fgedu.net.cn)> OPEN WALLET
GGSCI (fgedu.net.cn)> CREATE ENCRYPTKEY trail_key
Encryption key ‘trail_key’ created.
# 步骤2:配置Extract加密Trail
GGSCI (fgedu.net.cn)> EDIT PARAMS E_FGEDU01
EXTRACT E_FGEDU01
USERIDALIAS fgedu_alias
— 启用Trail加密
ENCRYPTTRAIL AES256 KEYNAME trail_key
EXTTRAIL /GoldenGate/app/dirdat/ea
TABLE fgedu01.*;
# 步骤3:配置Data Pump加密传输
GGSCI (fgedu.net.cn)> EDIT PARAMS P_FGEDU01
EXTRACT P_FGEDU01
USERIDALIAS fgedu_alias
— 加密网络传输
RMTHOST target-host, MGRPORT 7809, ENCRYPT AES256 KEYNAME trail_key
RMTTRAIL /GoldenGate/app/dirdat/ra
TABLE fgedu01.*;
# 步骤4:配置Replicat解密Trail
GGSCI (target-host)> EDIT PARAMS R_FGEDU01
REPLICAT R_FGEDU01
USERIDALIAS fgedu_alias
— 解密Trail文件
DECRYPTTRAIL AES256 KEYNAME trail_key
ASSUMETARGETDEFS
MAP fgedu01.*, TARGET fgedu01.*;
# 步骤5:重启进程应用加密配置
GGSCI (fgedu.net.cn)> STOP EXTRACT E_FGEDU01
GGSCI (fgedu.net.cn)> START EXTRACT E_FGEDU01
# 步骤6:验证加密效果
# 查看Trail文件内容(加密后为乱码)
$ strings /GoldenGate/app/dirdat/ea000000 | head
�~�_�]�;�”�$�,�0�4�8�<�@�D�H�L�P�T�X�\�`�d�h�l�p�t�x�|����� # 步骤7:检查加密状态 GGSCI (fgedu.net.cn)> INFO EXTRACT E_FGEDU01
EXTRACT E_FGEDU01 Last Started 2026-04-10 10:00:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:05 ago)
Trail Encryption AES256 (KEYNAME trail_key)
3.2.2 SSL/TLS加密配置
# 创建证书目录
$ mkdir -p /GoldenGate/app/certs
$ cd /GoldenGate/app/certs
# 生成私钥
$ openssl genrsa -out server.key 2048
Generating RSA private key, 2048 bit long modulus
……………………….+++
………..+++
e is 65537 (0x10001)
# 生成证书签名请求
$ openssl req -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:FGEDU
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server’s hostname) []:fgedu.net.cn
Email Address []:admin@fgedu.net.cn
# 生成自签名证书
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
subject=/C=CN/ST=Beijing/L=Beijing/O=FGEDU/OU=IT/CN=fgedu.net.cn/emailAddress=admin@fgedu.net.cn
Getting Private key
# 步骤2:配置Manager SSL
GGSCI (fgedu.net.cn)> EDIT PARAMS MGR
PORT 7809
PURGEOLDEXTRACTS /GoldenGate/app/dirdat/*, USECHECKPOINTS
— SSL配置
SSL_CERTIFICATE /GoldenGate/app/certs/server.crt
SSL_PRIVATEKEY /GoldenGate/app/certs/server.key
# 步骤3:重启Manager
GGSCI (fgedu.net.cn)> STOP MANAGER
GGSCI (fgedu.net.cn)> START MANAGER
# 步骤4:配置客户端SSL连接
# 在目标端配置
GGSCI (target-host)> EDIT PARAMS P_FGEDU01
EXTRACT P_FGEDU01
USERIDALIAS fgedu_alias
— SSL连接
RMTHOST source-host, MGRPORT 7809, SSL
RMTTRAIL /GoldenGate/app/dirdat/ra
TABLE fgedu01.*;
# 步骤5:验证SSL连接
$ openssl s_client -connect fgedu.net.cn:7809 -showcerts
CONNECTED(00000003)
depth=0 C = CN, ST = Beijing, L = Beijing, O = FGEDU, OU = IT, CN = fgedu.net.cn
verify error:num=18:self signed certificate
verify return:1
depth=0 C = CN, ST = Beijing, L = Beijing, O = FGEDU, OU = IT, CN = fgedu.net.cn
verify return:1
—
Certificate chain
0 s:/C=CN/ST=Beijing/L=Beijing/O=FGEDU/OU=IT/CN=fgedu.net.cn
i:/C=CN/ST=Beijing/L=Beijing/O=FGEDU/OU=IT/CN=fgedu.net.cn
—
from GoldenGate视频:www.itpux.com
3.3 安全审计配置实战
GGSCI (fgedu.net.cn)> EDIT PARAMS MGR
PORT 7809
PURGEOLDEXTRACTS /GoldenGate/app/dirdat/*, USECHECKPOINTS
— 启用命令审计
COMMANDAUDIT ON
— 审计日志位置
ACCESSLOG /GoldenGate/app/logs/access.log
# 步骤2:配置访问控制
GGSCI (fgedu.net.cn)> EDIT PARAMS MGR
PORT 7809
— 访问控制规则
ACCESSRULE, PROG *, USER ogg, ALLOW
ACCESSRULE, PROG *, IPADDR 192.168.1.*, ALLOW
ACCESSRULE, PROG *, IPADDR 10.*, ALLOW
ACCESSRULE, PROG *, DENY
# 步骤3:创建审计日志收集脚本
#!/bin/bash
# audit_log_collect.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
OGG_HOME=/GoldenGate/app
AUDIT_LOG=/GoldenGate/app/logs/audit.log
ACCESS_LOG=/GoldenGate/app/logs/access.log
CENTRAL_LOG=/var/log/ogg-audit/
mkdir -p $CENTRAL_LOG
# 收集审计日志
collect_audit_logs() {
echo “=== 审计日志收集 $(date) ===” >> $CENTRAL_LOG/daily_audit.log
# 收集访问日志
if [ -f $ACCESS_LOG ]; then
echo “— 访问日志 —” >> $CENTRAL_LOG/daily_audit.log
tail -100 $ACCESS_LOG >> $CENTRAL_LOG/daily_audit.log
fi
# 收集进程报告
echo “— 进程报告 —” >> $CENTRAL_LOG/daily_audit.log
for report in $OGG_HOME/dirrpt/*.rpt; do
echo “文件: $report” >> $CENTRAL_LOG/daily_audit.log
tail -50 $report >> $CENTRAL_LOG/daily_audit.log
done
# 收集错误日志
echo “— 错误日志 —” >> $CENTRAL_LOG/daily_audit.log
for err in $OGG_HOME/dirrpt/*.err; do
if [ -f $err ]; then
echo “文件: $err” >> $CENTRAL_LOG/daily_audit.log
cat $err >> $CENTRAL_LOG/daily_audit.log
fi
done
}
# 分析安全事件
analyze_security_events() {
echo “=== 安全事件分析 $(date) ===” >> $CENTRAL_LOG/security_events.log
# 检查认证失败
grep -i “authentication failed\|login failed\|access denied” $ACCESS_LOG >> $CENTRAL_LOG/security_events.log
# 检查异常访问
grep -i “unauthorized\|invalid\|error” $ACCESS_LOG >> $CENTRAL_LOG/security_events.log
}
collect_audit_logs
analyze_security_events
# 步骤4:设置定时任务
$ crontab -e
# 每小时收集审计日志
0 * * * * /GoldenGate/app/scripts/audit_log_collect.sh
# 步骤5:验证审计配置
GGSCI (fgedu.net.cn)> SEND MANAGER GETCONFIG
Manager Parameters:
PORT 7809
PURGEOLDEXTRACTS /GoldenGate/app/dirdat/*, USECHECKPOINTS
COMMANDAUDIT ON
ACCESSLOG /GoldenGate/app/logs/access.log
# 步骤6:查看审计日志
$ cat /GoldenGate/app/logs/access.log
2026-04-10 10:00:00 INFO OGG-00983 Manager started.
2026-04-10 10:00:05 INFO OGG-00989 Command: INFO ALL, User: ogg, IP: 192.168.1.100
2026-04-10 10:00:10 INFO OGG-00989 Command: START EXTRACT E_FGEDU01, User: ogg, IP: 192.168.1.100
Part04-生产案例与实战讲解
4.1 金融行业安全加固案例
某银行OGG安全加固实施案例:
– 环境:银行核心系统数据同步
– 要求:等保三级、PCI DSS合规
– 数据:敏感金融数据
# 安全加固措施
# 1. 凭证安全
– 所有凭证使用Credential Store存储
– 密码复杂度要求:16位,包含大小写字母、数字、特殊字符
– 密码定期更换:90天
# 2. 数据加密
– Trail文件加密:AES256
– 网络传输加密:SSL/TLS
– 数据库连接加密:Oracle Net加密
# 3. 访问控制
– IP白名单限制
– 用户权限最小化
– 操作审计记录
# 4. 安全监控
– 实时监控异常访问
– 安全事件告警
– 定期安全审计
# 实施效果
| 安全项 | 实施前 | 实施后 |
|—————-|————-|————-|
| 凭证存储 | 明文存储 | 加密存储 |
| 数据传输 | 明文传输 | SSL加密 |
| 访问控制 | 无限制 | IP白名单 |
| 审计日志 | 无 | 完整审计 |
| 合规状态 | 不合规 | 合规 |
# 关键配置
# Credential Store配置
GGSCI> ADD CREDENTIALS
GGSCI> ALTER CREDENTIALS ADD USER fgedu, PASSWORD “Fg@2026#Secure!”, ALIAS fgedu_alias
# Trail加密配置
EXTRACT E_FGCORE
USERIDALIAS fgedu_alias
ENCRYPTTRAIL AES256 KEYNAME core_key
EXTTRAIL /GoldenGate/app/dirdat/core
TABLE FGCORE.*;
# 访问控制配置
ACCESSRULE, PROG *, USER ogg_admin, ALLOW
ACCESSRULE, PROG *, IPADDR 10.0.0.0/8, ALLOW
ACCESSRULE, PROG *, DENY
4.2 安全配置常见问题
# 错误信息
ERROR OGG-02541 Credential store is corrupted or inaccessible.
# 原因分析
– 文件权限不正确
– Wallet文件损坏
– 密码错误
# 解决方案
# 1. 检查文件权限
$ ls -la /GoldenGate/app/dircrd/
drwx—— 2 ogg ogg 4096 Apr 10 10:00 .
# 2. 修复权限
$ chmod 700 /GoldenGate/app/dircrd
$ chown -R ogg:ogg /GoldenGate/app/dircrd
# 3. 重建Credential Store
GGSCI> DELETE CREDENTIALS
GGSCI> ADD CREDENTIALS
# 问题2:SSL证书验证失败
# 错误信息
ERROR OGG-01201 SSL handshake failed.
# 原因分析
– 证书过期
– 证书不匹配
– 证书链不完整
# 解决方案
# 1. 检查证书有效期
$ openssl x509 -in server.crt -noout -dates
notBefore=Apr 10 00:00:00 2026 GMT
notAfter=Apr 10 23:59:59 2027 GMT
# 2. 验证证书
$ openssl verify server.crt
# 3. 重新生成证书
$ openssl req -new -x509 -days 365 -key server.key -out server.crt
# 问题3:加密密钥丢失
# 错误信息
ERROR OGG-00722 Encryption key not found.
# 原因分析
– Wallet文件丢失
– 密钥被删除
– Wallet路径错误
# 解决方案
# 1. 恢复Wallet备份
$ cp /backup/wallet/* /GoldenGate/app/wallet/
# 2. 重新创建密钥
GGSCI> OPEN WALLET
GGSCI> CREATE ENCRYPTKEY new_key
# 3. 更新配置使用新密钥
4.3 安全加固解决方案
#!/bin/bash
# security_check.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
OGG_HOME=/GoldenGate/app
REPORT_FILE=/GoldenGate/app/logs/security_report.txt
echo “=== OGG安全检查报告 ===” > $REPORT_FILE
echo “检查时间: $(date)” >> $REPORT_FILE
echo “” >> $REPORT_FILE
# 1. 检查Credential Store
echo “1. Credential Store检查:” >> $REPORT_FILE
if [ -d “$OGG_HOME/dircrd” ]; then
perms=$(stat -c %a $OGG_HOME/dircrd)
if [ “$perms” = “700” ]; then
echo ” [OK] Credential Store权限正确” >> $REPORT_FILE
else
echo ” [警告] Credential Store权限不正确: $perms” >> $REPORT_FILE
fi
else
echo ” [错误] Credential Store不存在” >> $REPORT_FILE
fi
# 2. 检查参数文件中的明文密码
echo “” >> $REPORT_FILE
echo “2. 参数文件检查:” >> $REPORT_FILE
for prm in $OGG_HOME/dirprm/*.prm; do
if grep -q “PASSWORD” $prm | grep -v “ENCRYPTKEY” | grep -v “USERIDALIAS”; then
echo ” [警告] 发现明文密码: $prm” >> $REPORT_FILE
fi
done
# 3. 检查Trail加密
echo “” >> $REPORT_FILE
echo “3. Trail加密检查:” >> $REPORT_FILE
for prm in $OGG_HOME/dirprm/*.prm; do
if grep -q “EXTRACT” $prm && ! grep -q “ENCRYPTTRAIL” $prm; then
echo ” [警告] Extract未启用Trail加密: $prm” >> $REPORT_FILE
fi
done
# 4. 检查访问控制
echo “” >> $REPORT_FILE
echo “4. 访问控制检查:” >> $REPORT_FILE
if grep -q “ACCESSRULE” $OGG_HOME/dirprm/mgr.prm; then
echo ” [OK] 已配置访问控制规则” >> $REPORT_FILE
else
echo ” [警告] 未配置访问控制规则” >> $REPORT_FILE
fi
# 5. 检查审计日志
echo “” >> $REPORT_FILE
echo “5. 审计日志检查:” >> $REPORT_FILE
if grep -q “COMMANDAUDIT” $OGG_HOME/dirprm/mgr.prm; then
echo ” [OK] 已启用命令审计” >> $REPORT_FILE
else
echo ” [警告] 未启用命令审计” >> $REPORT_FILE
fi
# 6. 检查文件权限
echo “” >> $REPORT_FILE
echo “6. 文件权限检查:” >> $REPORT_FILE
dir_perms=$(stat -c %a $OGG_HOME)
if [ “$dir_perms” = “750” ] || [ “$dir_perms” = “700” ]; then
echo ” [OK] OGG目录权限正确: $dir_perms” >> $REPORT_FILE
else
echo ” [警告] OGG目录权限不正确: $dir_perms” >> $REPORT_FILE
fi
echo “” >> $REPORT_FILE
echo “=== 检查完成 ===” >> $REPORT_FILE
cat $REPORT_FILE
# 解决方案2:安全加固自动化脚本
#!/bin/bash
# security_hardening.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
OGG_HOME=/GoldenGate/app
# 1. 设置文件权限
echo “设置文件权限…”
chmod 750 $OGG_HOME
chmod 700 $OGG_HOME/dircrd
chmod 700 $OGG_HOME/wallet
chmod 600 $OGG_HOME/dirprm/*.prm
# 2. 配置访问控制
echo “配置访问控制…”
if ! grep -q “ACCESSRULE” $OGG_HOME/dirprm/mgr.prm; then
echo “” >> $OGG_HOME/dirprm/mgr.prm
echo “– 访问控制规则” >> $OGG_HOME/dirprm/mgr.prm
echo “ACCESSRULE, PROG *, USER ogg, ALLOW” >> $OGG_HOME/dirprm/mgr.prm
echo “ACCESSRULE, PROG *, IPADDR 192.168.1.*, ALLOW” >> $OGG_HOME/dirprm/mgr.prm
echo “ACCESSRULE, PROG *, DENY” >> $OGG_HOME/dirprm/mgr.prm
fi
# 3. 启用命令审计
echo “启用命令审计…”
if ! grep -q “COMMANDAUDIT” $OGG_HOME/dirprm/mgr.prm; then
echo “COMMANDAUDIT ON” >> $OGG_HOME/dirprm/mgr.prm
fi
echo “安全加固完成”
Part05-风哥经验总结与分享
5.1 安全加固最佳实践
根据多年安全加固经验,总结以下最佳实践:
- 安全是持续过程,不是一次性任务
- 纵深防御,多层保护
- 最小权限原则
- 定期安全审计
- 及时更新补丁
– 使用Credential Store存储所有凭证
– 定期更换密码
– 密码复杂度要求
– 凭证备份加密
# 最佳实践2:数据加密
– Trail文件加密存储
– 网络传输加密
– 数据库连接加密
– 密钥安全管理
# 最佳实践3:访问控制
– IP白名单限制
– 用户权限最小化
– 操作审计记录
– 定期权限审查
# 最佳实践4:监控审计
– 实时安全监控
– 完整审计日志
– 安全事件告警
– 定期安全报告
5.2 安全检查清单
[ ] 所有凭证使用Credential Store
[ ] 参数文件无明文密码
[ ] 密码复杂度符合要求
[ ] 密码定期更换
# 数据加密检查
[ ] Trail文件已加密
[ ] 网络传输已加密
[ ] 数据库连接已加密
[ ] 密钥安全存储
# 访问控制检查
[ ] 已配置访问控制规则
[ ] IP白名单已配置
[ ] 用户权限最小化
[ ] 无多余权限
# 审计日志检查
[ ] 命令审计已启用
[ ] 访问日志已启用
[ ] 日志完整保留
[ ] 日志定期分析
# 系统安全检查
[ ] 操作系统已加固
[ ] 安全补丁已更新
[ ] 文件权限正确
[ ] 服务最小化
5.3 风哥实战经验总结
在多年安全加固项目实施过程中,总结以下实战经验:
- 安全加固要系统化
- 定期检查比一次性加固更重要
- 人员安全意识培训不可少
- 安全事件响应机制要完善
- 合规要求要持续满足
– 从业务需求出发
– 平衡安全与性能
– 分阶段实施
# 经验2:安全实施
– 充分测试验证
– 保留回退方案
– 详细记录配置
# 经验3:安全运维
– 定期安全检查
– 及时处理告警
– 持续改进优化
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
