温馨提示×

centos oracle数据库安全管理实践

小樊
40
2026-01-10 02:28:02
栏目: 云计算

CentOS 上 Oracle 数据库安全管理实践

一 系统加固与网络边界

  • 最小化暴露面与端口收敛:仅开放数据库端口(默认 1521/TCP),禁用不必要的服务与端口;将数据库置于独立的 VLAN/安全域,与办公网、管理网隔离。
  • 主机防火墙策略:使用 firewalld/iptables 仅允许应用服务器与堡垒机网段访问 1521,并限制管理口(如 22/3389)来源;变更前后留存规则快照与回滚方案。
  • 监听与连接加固:
    • $ORACLE_HOME/network/admin/sqlnet.ora 启用白名单与空闲探测:
      • tcp.validnode_checking=yes
      • tcp.invited_nodes=(应用网段/堡垒机IP)
      • SQLNET.EXPIRE_TIME=15(单位:分钟,检测半开连接)
        修改后执行:lsnrctl reload。
    • 如需进一步限制 OS 层访问,可配合 /etc/hosts.allow|deny 控制 SSH 来源(注意:该机制不影响 Oracle Net 直连)。
  • 监听口令与本地 OS 认证:在 listener.ora 中将 LOCAL_OS_AUTHENTICATION_LISTENER=OFF,并使用 lsnrctl 设置监听密码,防止未授权停止监听。
  • 远程特权登录策略:仅在确需远程 DBA 应急时启用 remote_login_passwordfile,并优先采用 EXCLUSIVE 配合强口令与专用管理网;日常以本地 OS 认证或堡垒机跳板为主。

二 身份与权限治理

  • 原则先行:坚持 最小权限原则职责分离,仅授予完成工作所需的最小系统/对象权限;减少可直连 SYS 的人员数量。
  • 角色化授权:按业务职责自定义角色,避免直接授予 CONNECT/RESOURCE 等宽泛角色;Oracle 已将 CONNECT 收缩为仅 CREATE SESSION,避免误用。
  • 清理 PUBLIC:定期审计并撤销 PUBLIC 的不必要权限/角色(如 Java 对象默认授权),降低“横向提权”面。
  • 安全应用角色:通过 CREATE ROLE … IDENTIFIED USING <包名> 实现“条件化启用角色”,在包内以 AUTHID CURRENT_USER 编写策略(如校验源 IP、时间窗、应用上下文),避免在代码中硬编码口令。
  • 典型授权范式:
    • 创建角色与授权:CREATE ROLE app_ro; GRANT SELECT ON hr.emp TO app_ro;
    • 授予用户:GRANT app_ro TO alice;
    • 回收过度授权:REVOKE CREATE ANY TABLE FROM PUBLIC; REVOKE UNLIMITED TABLESPACE FROM app_user;

三 口令与登录安全

  • 密码复杂度与生命周期:执行 @?/rdbms/admin/utlpwdmg.sql 生成 VERIFY_FUNCTION_11G,并在 DEFAULT Profile 中设置:
    • FAILED_LOGIN_ATTEMPTS=6、PASSWORD_LIFE_TIME=90、PASSWORD_REUSE_MAX=5、PASSWORD_LOCK_TIME=1、PASSWORD_GRACE_TIME=7
    • 可按需创建专属 Profile 并绑定到高风险账号。
  • 登录审计与告警基线:建立登录审计表与触发器,留存 SESSION_USER、CREATE_TIME,用于异常登录排查与取证(生产环境建议结合统一审计/审计仓库)。
  • 空闲超时与半开连接治理:启用 SQLNET.EXPIRE_TIME=15 检测死连接;对外网/不可信网络建议缩短应用侧连接超时。
  • 远程 SYSDBA 管控:优先本地 OS 认证或堡垒机跳板;若必须远程,启用 remote_login_passwordfile=EXCLUSIVE 并严格限制来源与账号。

四 审计与合规

  • 标准审计起步:
    • audit_trail 设为 DB,EXTENDED(静态参数需重启),开启 audit_sys_operations=TRUE 记录 SYS/SYSDBA 关键操作;审计文件默认位于 audit_file_dest 指定目录。
    • 授予审计管理账号只读访问审计表的权限(如 AUDIT SYSTEM),用于集中采集与脱敏归档。
  • 统一审计(12c 及以上):
    • 检查:SELECT VALUE FROM V$OPTION WHERE PARAMETER=‘Unified Auditing’;
    • 启用(需重启):STARTUP UPGRADE → ALTER SYSTEM SET AUDIT_TRAIL=DB,EXTENDED SCOPE=SPFILE; → STARTUP
    • 创建策略并验证:CREATE AUDIT POLICY hr_emp_select ACTIONS SELECT ON hr.employees; AUDIT POLICY hr_emp_select; 查询 DBA_AUDIT_TRAIL
  • 审计仓库与告警:对多库/多环境,部署 Oracle Audit Vault & Database Firewall,集中管理 SQL 语句/对象/权限/细粒度审计 策略,配置 告警保留策略,实现合规与持续监控。

五 备份恢复与变更管控

  • 备份策略:建立覆盖 全库/归档日志/控制文件/参数文件 的定期备份(如 RMAN 每周全备 + 每日归档备份),保留周期与恢复点目标(RPO)对齐;定期异机/异地演练恢复。
  • 安全基线:
    • 加固 $ORACLE_HOME/binlistener.ora/sqlnet.ora 文件权限(仅 oracle:oinstall 可写);
    • 限制 TNS_ADMINORACLE_HOME 环境变量泄漏;
    • 启用 OS 审计 记录关键文件变更与 root/oracle 登录;
    • 定期核查 DBA_USERS/DBA_SYS_PRIVS/DBA_ROLE_PRIVS/DBA_TAB_PRIVS,清理过期账号与异常授权。
  • 变更与应急:所有账号、权限、监听、防火墙、审计策略变更走 变更单+双人复核+回滚预案;保留 SQL 脚本与工单 关联证据,便于内外部审计。

0