温馨提示×

centos oracle安全加固策略

小樊
50
2026-01-02 03:01:28
栏目: 云计算

CentOS 上的 Oracle 安全加固策略

一 操作系统与网络基线

  • 补丁与最小化安装:保持 CentOSOracle 补丁为最新;仅启用必需服务,移除或禁用无用软件包与端口,降低攻击面。
  • 防火墙精细化:使用 firewalld 仅放行必要流量(如 SSH 22/TCP、数据库 1521/TCP),并按需限制来源网段。
  • SSH 安全:优先使用 密钥登录,禁用 root 远程登录,限制并发会话与空闲超时,启用更强的加密与 MAC 算法。
  • 系统口令策略:安装并配置 libpwquality,设置最小长度、字符类别与重试次数,强制系统账户使用强口令。
  • 示例(firewalld 放行 1521/TCP):
    sudo firewall-cmd --permanent --add-port=1521/tcp && sudo firewall-cmd --reload
    上述措施有助于在操作系统层面减少暴露面并提升认证安全。

二 Oracle 账号与权限最小化

  • 强口令与默认账户治理:修改 SYS/SYSTEM 等管理员口令;锁定或删除 默认/测试/过期 账户;避免共享账号。
  • 最小权限原则:应用账户仅授予所需权限,避免授予 DBA 角色;按需通过 ROLE 管理对象权限,定期审计 dba_sys_privs / dba_tab_privs / dba_role_privs
  • 撤销 PUBLIC 危险包执行权限:如 UTL_FILE、UTL_HTTP、UTL_TCP、UTL_SMTP、DBMS_RANDOM 等,降低从数据库发起网络或文件操作的风险。
  • 数据字典保护:设置 O7_DICTIONARY_ACCESSIBILITY = FALSE,仅允许 SYSDBA 访问数据字典基表,防止普通用户遍历系统表。
  • 示例(撤销 PUBLIC 对 UTL_FILE 的执行权限):
    REVOKE EXECUTE ON sys.utl_file FROM PUBLIC;
    以上措施可显著降低权限滥用与提权风险。

三 口令策略与登录安全

  • 启用复杂度校验:执行 $ORACLE_HOME/rdbms/admin/utlpwdmg.sql,使用 VERIFY_FUNCTION_11G 或等价函数强制口令长度、字符类别与历史限制。
  • 统一 Profile 策略:建议对关键参数设定阈值(示例值可按需收紧):
    • FAILED_LOGIN_ATTEMPTS:6 次失败后锁定
    • PASSWORD_LIFE_TIME:90
    • PASSWORD_REUSE_MAX:5 次变更后方可复用
    • PASSWORD_LOCK_TIME:1/24 天(即 1 小时
    • PASSWORD_GRACE_TIME:7
    • PASSWORD_VERIFY_FUNCTION:VERIFY_FUNCTION_11G
  • 登录审计与告警:启用登录触发器记录 用户名/时间,便于审计与溯源(示例表与触发器见下)。
  • 空闲连接保活与半开连接检测:在 sqlnet.ora 设置 SQLNET.EXPIRE_TIME=15(单位:分钟),定期探测死连接。
  • 示例(创建登录日志表与触发器):
    CREATE TABLE logon_table(session_user VARCHAR2(256), create_time DATE);
    CREATE OR REPLACE TRIGGER tri_logon AFTER LOGON ON DATABASE
    BEGIN INSERT INTO logon_table VALUES(SYS_CONTEXT(‘USERENV’,‘SESSION_USER’), SYSDATE); END; /
    上述策略可提升口令强度、降低暴力破解成功率并增强可审计性。

四 网络与监听安全

  • 白名单访问控制:在 sqlnet.ora 启用 tcp.validnode_checking=yes,通过 tcp.invited_nodes=(IP1,IP2…) 仅允许受信主机连接数据库。
  • 监听安全:为 LISTENER 设置管理口令(LSNRCTL> change_password / save_config),并视版本与需求关闭 LOCAL_OS_AUTHENTICATION_LISTENER 以避免本地 OS 认证绕过;注意 11g 起即使设置监听密码,恶意者仍可能通过本地 OS 认证停止监听,需配合 OS 权限与流程管控。
  • 端口与远程管理:如业务允许,修改默认 1521 端口并限制监听的远程管理通道;变更后同步更新客户端与本地解析配置并回归测试。
  • 示例(sqlnet.ora 白名单与保活):
    tcp.validnode_checking=yes
    tcp.invited_nodes=(192.168.1.10,192.168.1.20)
    SQLNET.EXPIRE_TIME=15
    上述措施可有效缩小攻击面并提升监听与网络层的可控性。

五 审计、加密与运行环境

  • 审计策略:启用 审计 以覆盖 SYSDBA 与管理类操作,建议设置 audit_trail=osdb 并开启 audit_sys_operations=true;审计会产生额外 I/O 与存储 开销,需评估与分盘。
  • 传输加密:在 sqlnet.ora 配置 SQLNET.ENCRYPTION(客户端/服务器)与合适算法,启用 SQLNET.CRYPTO_CHECKSUM 校验,防止明文传输与篡改。
  • 归档与备份:启用 ARCHIVELOG 模式,配置本地与/或远程 LOG_ARCHIVE_DEST_n,定期验证备份可用性与恢复演练。
  • 文件权限与目录安全:限制 $ORACLE_BASE/oradata$ORACLE_HOME/bin 等目录与文件的组/其他写权限,仅保留 属主root 必要权限;清理无用对象与测试数据。
  • 变更与回退:所有加固项先在测试环境验证,变更窗口内做好 全量备份回退预案,变更后复核监听、连接与应用可用性。
    上述措施覆盖审计取证、传输机密性与完整性、可恢复性与运行态文件安全,建议在合规框架内持续运营与优化。

0