首页主机资讯如何在centos上配置oracle安全

如何在centos上配置oracle安全

时间2025-11-18 17:55:05发布访客分类主机资讯浏览830
导读:CentOS 上 Oracle 安全配置清单 一 系统层安全基线 加固操作系统与网络边界 保持 firewalld 开启,仅放行数据库端口(默认 1521/TCP)及必要的管理端口;避免使用“关闭防火墙”的做法。示例:firewall-...

CentOS 上 Oracle 安全配置清单

一 系统层安全基线

  • 加固操作系统与网络边界
    • 保持 firewalld 开启,仅放行数据库端口(默认 1521/TCP)及必要的管理端口;避免使用“关闭防火墙”的做法。示例:firewall-cmd --add-port=1521/tcp --permanent & & firewall-cmd --reload
    • SELinux 设为 enforcing,仅对 Oracle 相关路径做最小范围的布尔或类型放宽(如 setsebool -P oracle_can_network 1),避免直接 SELINUX=disabled
  • 运行账户与权限隔离
    • 创建专用账户与组:groupadd oinstallgroupadd dbauseradd -g oinstall -G dba oracle,并为 oracle 设置强口令。
    • 限制 DBA 组 的操作系统账户数量,仅保留必要的 DBA 账户,减少高权限 OS 入口。
  • 资源与内核参数
    • /etc/security/limits.conf 为 oracle 设置:nproc 2047/16384nofile 1024/65536stack 10240;在 /etc/pam.d/login 加入 session required pam_limits.so;在 /etc/profile 为 oracle 用户设置 ulimit -u 16384 -n 65536
    • /etc/sysctl.conf 设置关键内核参数(示例值,按内存与负载调优):
      • fs.file-max = 6815744fs.aio-max-nr = 1048576
      • kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096
      • kernel.sem = 250 32000 100 128
      • net.ipv4.ip_local_port_range = 9000 65500
      • net.core.rmem_default = 262144net.core.rmem_max = 4194304
      • net.core.wmem_default = 262144net.core.wmem_max = 1048576
        执行 sysctl -p 使配置生效。

二 数据库层安全配置

  • 账户与权限最小化
    • 遵循 最小权限原则:仅授予完成职责所需的系统/对象权限;优先通过自定义角色分配权限,谨慎授予含 ANY 的系统权限(如 CREATE ANY TABLEDROP ANY TABLE);减少可直连 SYS 的人员数量。
    • 使用 Secure Application Role(安全应用角色)将角色启用与业务条件绑定(如来源 IP、时间窗、应用上下文),避免通过直接赋权滥用高权限角色。
    • CDB/PDB 场景中区分常规与本地权限/角色,按需授予,避免跨容器过度授权。
  • 口令与账户策略
    • 启用口令复杂度校验(如 verify_function 或自定义口令校验包),并设置合理策略:
      • PASSWORD_LIFE_TIME = 90FAILED_LOGIN_ATTEMPTS = 5PASSWORD_LOCK_TIME = 1/24(锁定 1 小时)、PASSWORD_REUSE_TIME = 0PASSWORD_GRACE_TIME = 10
  • 数据字典与元数据保护
    • 设置 O7_DICTIONARY_ACCESSIBILITY = FALSE,禁止非 SYSDBA 直接访问数据字典基表,降低信息泄露与提权风险。
  • 网络访问控制
    • $ORACLE_HOME/network/admin/sqlnet.ora 启用白名单:
      • tcp.validnode_checking = yes
      • tcp.invited_nodes = (192.168.1.0, 192.168.1.1)(按需替换为可信网段/主机)
  • 传输加密
    • 启用 SQL*Net 加密(需要 Oracle Advanced Security 选项或等效配置):sqlnet.encryption = required,防止明文传输。
  • 会话与资源控制
    • 根据硬件与业务设置合理上限:processes = 200(示例),并配合 sessionstransactions 等参数避免资源被滥用。

三 审计与监控

  • 启用数据库审计
    • 开启审计并落库或落 OS:ALTER SYSTEM SET audit_trail='DB,EXTENDED' SCOPE=SPFILE; (或 'OS,EXTENDED'),重启后生效;按需审计关键对象与关键操作(如 CREATE USERDROP TABLEALTER SYSTEM)。
  • 持续权限审视
    • 使用 Privilege Analysis(权限分析)识别过度授权与未使用权限,基于策略收集使用数据并生成报告,定期回收不必要权限。
  • 日志与告警
    • 集中收集并长期保存审计日志与监听日志(如 listener.logalert.log),结合 SIEM 或日志平台进行异常检测与告警。

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

  • 系统与服务
    • 防火墙:firewall-cmd --list-ports | grep 1521(确保仅放行必要端口)
    • SELinux:getenforce(应为 Enforcing
    • 资源限制:ulimit -uulimit -n(oracle 会话下应达到 limits.conf 配置)
    • 内核参数:sysctl -p 生效后检查关键项(如 fs.file-maxkernel.sem
  • Oracle 关键配置
    • 白名单:grep -E "tcp.validnode_checking|tcp.invited_nodes" $ORACLE_HOME/network/admin/sqlnet.ora
    • 传输加密:grep "sqlnet.encryption" $ORACLE_HOME/network/admin/sqlnet.ora
    • 审计:SHOW PARAMETER AUDIT_TRAIL
    • 数据字典保护:SHOW PARAMETER O7_DICTIONARY_ACCESSIBILITY
    • 口令与锁定策略:查询 DBA_PROFILESPASSWORD_VERIFY_FUNCTIONFAILED_LOGIN_ATTEMPTSPASSWORD_LOCK_TIME
  • 权限与角色
    • 过度授权排查:查询含 ANY 的系统权限、授予给 PUBLIC 的对象权限
    • 安全应用角色:检查通过 PL/SQL 包控制角色启用的实现与调用链

五 安全加固注意事项

  • 避免在生产环境直接关闭 firewalld/SELinux;如必须临时关闭,应限定时间窗并完成替代加固后再恢复。
  • 谨慎授予 DBA 角色与含 ANY 的系统权限;优先通过自定义角色与职责分离实现最小权限。
  • 白名单与传输加密应同时启用;白名单变更需纳入变更管理流程,避免误封合法来源。
  • 审计策略需评估性能影响,先小范围试点再全量启用,并建立日志保留与保护机制。
  • 定期执行补丁与漏洞修复(OS 与 Oracle),并保留变更记录与回退方案。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在centos上配置oracle安全
本文地址: https://pptw.com/jishu/750332.html
CentOS环境下GitLab的权限管理设置 如何优化centos上的oracle存储

游客 回复需填写必要信息