温馨提示×

Ubuntu Oracle 安全性如何保障

小樊
33
2025-12-06 21:08:57
栏目: 云计算

Ubuntu 上 Oracle 数据库的安全性保障

总体思路Ubuntu 上保障 Oracle 安全,需要从 操作系统层数据库层网络层运维监控层 协同加固,覆盖补丁、身份鉴别、最小权限、加密、审计与备份恢复等关键面,形成闭环治理与持续验证机制。

操作系统层加固

  • 补丁与更新:保持系统与 Oracle 补丁同步。Ubuntu 启用自动安全更新(如安装 unattended-upgrades 并配置仅接收安全源);Oracle 定期获取并应用 CPU/PSU 等安全补丁。
  • 身份与权限:创建专用系统账户与组(如 oracle/oinstall/dba),设置强口令;通过 /etc/security/limits.conf 限制进程与文件句柄(示例:oracle soft/hard nproc 2047/16384,soft/hard nofile 1024/65536),并在 /etc/pam.d/login 加载 limits 配置。
  • 文件与目录:严格目录归属与权限(如 /u01/app/oracle/u01/oradata 设为 oracle:oinstall,750),网络配置文件(如 listener.ora/sqlnet.ora)限制为 640,仅 Oracle 用户可读写。
  • 强制访问控制:启用 AppArmor 并加载 Oracle 策略(如 /etc/apparmor.d/usr.sbin.oracle),必要时细化对 /tmp 等目录的访问限制。
  • 服务最小化:关闭不必要的系统与服务(如 telnet/ftp 等),减少攻击面。

数据库层安全

  • 账户与权限:锁定或移除默认弱账户(如 SCOTT),遵循最小权限原则,避免直接授予 DBA 角色,使用角色封装业务权限并定期审计授权。
  • 口令与策略:通过 PROFILE 强制复杂度与生命周期(如 PASSWORD_LENGTH 12PASSWORD_LIFE_TIME 90PASSWORD_LOCK_TIME 1PASSWORD_REUSE_MAX 5,必要时启用 PASSWORD_VERIFY_FUNCTIONPASSWORD_STRENGTH MEDIUM)。
  • 审计与追踪:启用数据库审计(如 audit_trail=DB,EXTENDED),记录关键操作与登录行为,便于溯源与合规。
  • 传输加密:配置 SSL/TLS(在 sqlnet.oralistener.ora 启用 TCPS,可改用 2484 等端口),强制客户端加密通道。
  • 存储加密:启用 TDE(透明数据加密),对敏感表空间(如 USERS)执行加密(示例:创建密钥库、主密钥,执行 ALTER TABLESPACE users ENCRYPTION USING ‘AES256’ ONLINE)。

网络与访问控制

  • 边界防护:使用 UFW 仅开放必要端口(如 SSH 22、Oracle 监听 1521),默认拒绝其他入站。
  • SSH 加固:禁用 root 远程登录,改用 密钥认证,可修改默认端口并设置空闲超时(如 ClientAliveInterval 300)。
  • 监听与访问限制:在 listener.ora 中限制可访问的 IP 段 或来源,降低扫描与暴力尝试风险。
  • 入侵防护:结合 fail2ban 对频繁失败的登录尝试进行自动封禁,缩短暴露窗口。

监控审计与备份恢复

  • 日志与审计:集中收集与监控 /var/log/syslog、/var/log/auth.log 与 Oracle alert.log/审计日志,使用 journalctl 实时查看 Oracle 相关日志,配置 logrotate 防止日志无限增长。
  • 运行时防护:启用 AppArmor 并定期核查状态(如 aa-status),对异常进程行为进行约束与告警。
  • 备份与演练:采用 RMAN 进行物理备份(全量+增量)并结合 Data Pump 逻辑导出关键对象;制定自动化备份策略并定期恢复演练验证可用性与完整性。
  • 持续复核:按季度或重大变更后复查安全配置基线,及时修补与加固。

关键配置示例

  • UFW 仅放通必要端口
    • 命令:sudo ufw allow 22/tcp;sudo ufw allow 1521/tcp;sudo ufw enable
  • SSH 安全基线
    • 配置:PermitRootLogin noPubkeyAuthentication yesPasswordAuthentication noPort 65534ClientAliveInterval 300
  • Oracle 目录权限
    • 命令:sudo chown -R oracle:oinstall /u01/app/oracle /u01/oradata;sudo chmod -R 750 /u01/app/oracle /u01/oradata
  • 审计与口令策略
    • SQL:ALTER SYSTEM SET audit_trail=DB,EXTENDED SCOPE=SPFILE;
    • SQL:ALTER PROFILE DEFAULT LIMIT PASSWORD_LENGTH 12 PASSWORD_LIFE_TIME 90 PASSWORD_LOCK_TIME 1 PASSWORD_REUSE_MAX 5;
  • SSL/TLS 强制加密
    • 配置:SQLNET.AUTHENTICATION_SERVICES=(TCPS);listener.ora 使用 PROTOCOL=TCPS 与端口 2484
  • TDE 表空间加密
    • SQL:ADMINISTER KEY MANAGEMENT CREATE KEYSTORE ‘/u01/app/oracle/keystore’ IDENTIFIED BY “keystore_pwd”;
    • SQL:ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY “keystore_pwd”;
    • SQL:ADMINISTER KEY MANAGEMENT CREATE MASTER KEY;
    • SQL:ALTER TABLESPACE users ENCRYPTION USING ‘AES256’ ONLINE;

0