温馨提示×

Oracle在Linux上如何进行安全加固

小樊
36
2025-12-26 08:06:52
栏目: 云计算

Linux 上 Oracle 安全加固清单

一 系统与账户安全

  • 保持系统与安全补丁为最新:定期执行系统更新(如 yum update/apt upgrade),并关注 Oracle 安全公告CPU(Critical Patch Update),及时修补数据库与操作系统漏洞。
  • 强化 OS 口令策略:安装并配置 libpam-pwquality,设置最小长度、字符类别与重试次数,例如:minlen=12、minclass=3、retry=3
  • 最小权限与专用账户:仅创建必要的 oracle/oinstall/dba 等账户与组,禁止共享 OS 账户;限制 DBA 组中的 OS 用户数量,仅保留必要的管理员。
  • 资源与登录限制:在 /etc/security/limits.conf 为 oracle 设置 nproc/nofile 等上限,避免资源耗尽与滥用;禁用不必要的本地/远程服务与端口,减少攻击面。
  • 日志与完整性:集中与保护日志(如 /var/log 权限最小化、集中采集),开启系统审计(auditd),并定期巡检异常登录与权限变更。

二 Oracle 数据库安全配置

  • 关闭远程 SYSDBA 登录:将 REMOTE_LOGIN_PASSWORDFILE=NONE,仅允许本地 OS 认证SYSDBA,降低高权限被远程滥用的风险。
  • 数据字典保护:设置 O7_DICTIONARY_ACCESSIBILITY=FALSE,避免普通用户通过数据字典基表直接访问敏感元数据。
  • 口令复杂度与生命周期:通过 PROFILE 启用 PASSWORD_VERIFY_FUNCTION,要求包含大小写字母、数字与特殊字符;设置 PASSWORD_LIFE_TIME≤90 天、失败锁定与解锁时间,例如:FAILED_LOGIN_ATTEMPTS=5、PASSWORD_LOCK_TIME=1/24(1 小时)、PASSWORD_GRACE_TIME=10
  • 监听器安全:为 LISTENER 设置管理密码(LSNRCTL> change_password + save_config),并限制仅可信主机可管理;必要时修改默认监听端口 1521,降低自动化扫描命中率。
  • 可信网络访问控制:在 $ORACLE_HOME/network/admin/sqlnet.ora 启用 tcp.validnode_checking=yestcp.invited_nodes=(可信IP/网段),仅放行白名单。
  • 传输加密与空闲超时:在 sqlnet.ora 配置 SQLNET.ENCRYPTION=REQUIRED(或更高),并启用 SQLNET.EXPIRE_TIME=15(分钟)检测与断开僵死会话。
  • 会话与连接控制:结合业务设置 PROCESSES/Sessions 等资源上限,防止 DoS;对高并发场景采用连接池与中间件限流。

三 网络安全与监听加固

  • 启用主机防火墙并最小化放行:仅开放 SSH(22/TCP) 与数据库端口(如 1521/TCP),使用 firewalld/ufw 或边界防火墙实施白名单策略,避免直接关闭防火墙。
  • 监听与 Extproc 最小化:禁用或限制 Extproc(避免通过外部过程加载不安全库),必要时关闭 XDB(HTTP/XMLDB)服务端口,减少攻击面。
  • 端口与协议治理:变更默认监听端口、限制来源 IP、分离管理通道与业务通道,并在网络边界实施 ACL/安全组 双重控制。

四 审计与备份恢复

  • 启用数据库审计:设置 AUDIT_TRAIL=DB,EXTENDED(或 OS),审计关键操作(登录/登出、DDL、权限变更、敏感表访问),并定期归档与保护审计数据。
  • 审计日志保护:限制 $ORACLE_BASE/admin/*/adump 等目录与审计文件的访问权限,防止篡改与删除;将审计与系统日志集中到 SIEM 进行关联分析。
  • 备份与高可用:建立 RMAN 物理备份Data Guard 灾备与定期 Data Pump 逻辑备份;验证备份可用性与恢复演练,确保 RPO/RTO 达标。

五 快速检查清单与常用命令

检查项 关键配置 验证命令/位置
补丁与内核 系统与数据库最新安全补丁 yum/apt 更新记录、opatch lsinventory
远程 SYSDBA REMOTE_LOGIN_PASSWORDFILE=NONE SQL> show parameter remote_login_passwordfile
数据字典保护 O7_DICTIONARY_ACCESSIBILITY=FALSE SQL> show parameter O7_DICTIONARY_ACCESSIBILITY
口令策略 FAILED_LOGIN_ATTEMPTS/LOCK_TIME/LIFE_TIME/VERIFY_FUNCTION 查询 DBA_PROFILES
监听器安全 管理密码、监听端口 lsnrctl status、listener.ora
可信 IP sqlnet.ora 白名单 $ORACLE_HOME/network/admin/sqlnet.ora
传输加密 SQLNET.ENCRYPTION=REQUIRED $ORACLE_HOME/network/admin/sqlnet.ora
空闲超时 SQLNET.EXPIRE_TIME=15 $ORACLE_HOME/network/admin/sqlnet.ora
防火墙 仅放行 22/1521 firewall-cmd --list-ports / ufw status
审计 AUDIT_TRAIL=DB,EXTENDED SQL> show parameter audit_trail

提示:变更前在测试环境验证,变更窗口内做好回退方案;对 listener.ora/sqlnet.ora 等网络文件修改后需重启监听或重登录使配置生效。

0