温馨提示×

CentOS Oracle安全策略如何实施

小樊
33
2025-12-27 06:12:27
栏目: 云计算

CentOS 上 Oracle 安全策略实施清单

一 基线加固与系统层安全

  • 身份与账户
    • 创建专用账户与组:groupadd oinstall;groupadd dba;useradd -m -g oinstall -G dba oracle;设置强口令。
    • 清理或禁用不必要的系统账户,避免共享账户,实行最小权限职责分离
  • 文件与目录
    • 安装目录(如 /u01/app/oracle)与数据目录(如 /u01/app/oracle/oradata)归属 oracle:oinstall,权限建议 775;监听器配置目录(如 $ORACLE_HOME/network/admin)限制为 oracle 访问(如 775)。
    • 如启用 SELinux,为 Oracle 目录设置正确上下文(可参考 Oracle 官方文档或使用同类目录做上下文参考)。
  • 内核与资源限制
    • /etc/sysctl.conf 设置关键参数并生效(sysctl -p):
      • fs.file-max = 6815744
      • kernel.sem = 250 32000 100 128
      • net.ipv4.ip_local_port_range = 9000 65500
      • net.core.rmem_default/wmem_default = 262144;rmem_max/wmem_max = 4194304/1048576
      • fs.aio-max-nr = 1048576
      • kernel.shmall = 2097152;kernel.shmmax = 1073741824;kernel.shmmni = 4096
    • /etc/security/limits.conf 配置 Oracle 用户资源:
      • oracle soft nproc 2047;oracle hard nproc 16384
      • oracle soft nofile 1024;oracle hard nofile 65536
      • oracle soft stack 10240
  • 服务与防火墙
    • 仅开放必要端口(如 Oracle 监听 1521、OEM 1158):firewall-cmd --permanent --add-port=1521/tcp;firewall-cmd --permanent --add-port=1158/tcp;firewall-cmd --reload。
    • 关闭不必要服务(如 FTP/Telnet),减少攻击面。

二 数据库层身份鉴别与访问控制

  • 密码策略与复杂度
    • 运行 @?/rdbms/admin/utlpwdmg.sql 生成密码校验函数,在 DEFAULT profile 启用复杂度校验。
    • 设置密码策略示例:
      • ALTER PROFILE DEFAULT LIMIT
        • PASSWORD_LIFE_TIME 90
        • FAILED_LOGIN_ATTEMPTS 5
        • PASSWORD_LOCK_TIME 1/24
        • PASSWORD_GRACE_TIME 10
        • PASSWORD_VERIFY_FUNCTION verify_function;
  • 权限最小化与账户治理
    • 避免使用 SYSDBA 执行日常操作;限制 DBA 组成员数量,仅保留必要的 DBA 账户。
    • 重命名或禁用默认/过期账户,禁止共享账户。
  • 远程登录安全
    • 如业务允许,将 REMOTE_LOGIN_PASSWORDFILE 设为 NONE 并重启实例,禁止远程 SYSDBA 口令文件登录(需评估对运维与高可用的影响)。
  • 数据字典保护
    • 设置 O7_DICTIONARY_ACCESSIBILITY = FALSE,防止非授权用户通过数据字典基表直接访问敏感元数据。

三 网络安全与监听器加固

  • 可信网络访问控制
    • $ORACLE_HOME/network/admin/sqlnet.ora 启用白名单:
      • tcp.validnode_checking = YES
      • tcp.invited_nodes = (192.168.1.100, 10.0.0.5)
    • 修改后执行 lsnrctl reload 使监听器生效。
  • 传输加密
    • 在 sqlnet.ora 启用 SSL/TLS 或网络加密(需 Oracle Advanced Security 选项):
      • sqlnet.encryption = REQUIRED
      • sqlnet.crypto_checksums = REQUIRED
  • 空闲连接探测
    • 在 sqlnet.ora 设置 SQLNET.EXPIRE_TIME=15(单位:分钟),自动断开长时间空闲会话,降低会话劫持风险。
  • 监听器安全
    • 提升日志级别便于审计:lsnrctl set log_level 10;限制监听器文件权限(如 640),仅 oracle 用户可写。

四 审计监控与补丁备份

  • 审计策略
    • 启用数据库审计:ALTER SYSTEM SET audit_trail=‘DB’ SCOPE=SPFILE; 开启 audit_sys_operations=TRUE;重启实例。
    • 按需审计敏感操作:AUDIT SELECT TABLE BY ACCESS; 定期审查 DBA_AUDIT_TRAIL 等视图。
  • 登录审计与追踪
    • 可创建登录触发器记录登录时间、用户等,用于合规与取证(示例脚本见参考实践)。
  • 补丁与更新
    • 定期应用 Oracle PSU/CPUCentOS 安全更新,及时修复已知漏洞。
  • 备份与恢复
    • 建立 RMAN 全备+增量备策略,定期做恢复演练,验证备份可用性与 RPO/RTO 达标。
  • 监控与响应
    • 监控 CPU/内存/磁盘 I/O、告警日志与 alert.log,制定应急预案(入侵处置、数据恢复流程)。

五 合规落地与实施顺序

  • 合规参考
    • 面向等保 2.0(三级) 要求,建议:口令有效期不超过 90 天、复杂度校验、登录失败锁定与超时退出、仅 SSH 远程管理、关闭 Telnet、权限分离(系统/审计/安全管理员)、防火墙开启并最小化放通、日志与审计留存与保护。
  • 实施顺序与回退
    • 准备:评估业务影响、梳理白名单与账户、备份配置与数据库、搭建测试环境。
    • 加固:系统基线 → 网络与监听器 → 数据库身份与权限 → 审计与加密 → 监控与备份。
    • 验证:连通性与性能回归、白名单与加密有效性、审计记录完整性、备份恢复演练。
    • 回退:关键变更(如 REMOTE_LOGIN_PASSWORDFILE、sqlnet.ora 白名单、audit_trail)务必准备回退脚本与窗口期,变更失败可快速恢复。

0