温馨提示×

Linux Oracle安全性怎样保障

小樊
33
2025-11-22 21:34:43
栏目: 云计算

Linux Oracle 安全性保障清单

一 操作系统与账户安全

  • 强化主机与账户基线:为 rootoracle 设置强口令并定期更换;禁用不必要的本地/远程登录方式;仅使用 SSH 密钥登录,禁用密码登录;限制 sudo 仅授予必要命令;开启 命令审计/历史记录;BIOS 设置 引导口令;对关键系统文件设置 不可变位(chattr +i);启用 **防火墙(firewalld/iptables)**仅放行必要端口(如 22/1521)。
  • 最小权限与职责分离:创建专用系统账户与组(如 oinstall/dba),仅将需要维护数据库的账户加入 dba;清理多余或共享的 DBA 操作系统账号;对 $ORACLE_HOME/bin 等目录实施严格权限与属主控制。
  • 服务与端口最小化:关闭不需要的系统服务与端口;必要时修改数据库监听 默认端口 1521;禁用或限制 ExtprocXDB 等易被滥用的组件。
  • 网络层最小化暴露:在可行时删除默认网关,仅通过 静态路由 开放到应用/管理网段的必要路径,降低横向移动风险。

二 数据库账户与权限治理

  • 最小权限原则:按业务最小集授予 系统权限/对象权限,优先通过 角色 进行授权与回收;避免授予 DBAANY 级别权限给普通账号;定期审计并回收过期/过度授权。
  • 关键账号与口令策略:保护 SYS/SYSTEM/DBSNMP 等内置账号,修改默认口令;启用 PROFILE 强制策略(如 PASSWORD_LIFE_TIME ≤ 90 天FAILED_LOGIN_ATTEMPTSPASSWORD_LOCK_TIME、复杂度校验函数);限制 SYSDBA 远程登录(见下一节网络部分)。
  • 数据字典与元数据保护:设置 O7_DICTIONARY_ACCESSIBILITY = FALSE,避免普通用户通过数据字典获取敏感对象元数据。
  • 连接与资源控制:结合业务设置合理的最大连接数(如 processes)、会话与资源限制,防止滥用与 DoS。

三 网络与传输安全

  • 边界与主机防火墙:仅放行 SSH(22) 与数据库端口(如 1521)到受控来源;在数据库主机与边界防火墙实施一致的白名单策略。
  • 监听器安全:为 LISTENER 设置管理密码并保存配置;限制远程管理;必要时修改默认端口;禁用或限制 Extproc 外部过程调用,减少攻击面。
  • 传输加密与认证:启用 SQL*Net 加密(如设置 sqlnet.encryption = required),对客户端/中间件与数据库之间的通信进行加密;结合 SSL/TLS、Kerberos、LDAP 等机制提升认证与通道安全。
  • 可信来源与空闲超时:在 sqlnet.ora 中使用 tcp.validnode_checking=yestcp.invited_nodes 限制可连来源;设置 SQLNET.EXPIRE_TIME 检测并断开长时间空闲连接,降低会话劫持风险。

四 审计、加密与备份恢复

  • 全面审计:启用数据库审计(如 audit_trail=DB/OS),对登录、权限变更、敏感表访问、DDL 等进行审计;集中采集并保护审计日志,防止篡改与删除;定期审计 LISTENER 管理操作。
  • 数据静态加密:对敏感数据启用 透明数据加密(TDE),保护数据文件与备份在存储层面的机密性。
  • 漏洞与补丁管理:建立 定期补丁 与变更评审流程,及时修复 LinuxOracle 已知漏洞;结合防病毒与主机加固形成纵深防御。
  • 备份与高可用:制定 RMAN 物理备份、Data Pump 逻辑备份与 Data Guard 高可用策略;定期演练恢复流程与备份有效性校验,确保 RPO/RTO 达标。

五 关键配置示例

  • 关闭远程 SYSDBA 登录(仅允许本机操作系统认证)
    • 将参数文件中的 REMOTE_LOGIN_PASSWORDFILE 设为 NONE,重启数据库生效。
  • 可信 IP 白名单(sqlnet.ora)
    • 配置示例:
      • tcp.validnode_checking = yes
      • tcp.invited_nodes = (192.168.1.10, 192.168.1.20, 10.0.0.0/24)
  • 传输加密(sqlnet.ora)
    • 配置示例:
      • sqlnet.encryption = required
  • 监听器口令(LSNRCTL)
    • 执行:
      • lsnrctl
      • LSNRCTL> set current_listener LISTENER
      • LSNRCTL> change_password
      • LSNRCTL> save_config
  • 审计启用
    • SQL> alter system set audit_trail=‘DB’ scope=spfile;(按需要选择 DB/OS,必要时重启)
  • 连接空闲超时
    • sqlnet.ora:SQLNET.EXPIRE_TIME=15(单位:分钟)
  • 最大连接数
    • SQL> alter system set processes=500 scope=spfile;(结合负载测试与资源评估设置)

0