centos

oracle在centos上的安全设置有哪些

小樊
50
2025-10-02 18:11:57
栏目: 云计算

Oracle在CentOS上的安全设置

Oracle数据库在CentOS上的安全配置需覆盖操作系统层面数据库层面持续维护三大维度,以下是具体关键措施:

一、操作系统层面安全配置

  1. 用户与组管理
    创建专用Oracle用户及组,实现权限分离:

    groupadd oinstall  # 安装组
    groupadd dba       # DBA权限组
    useradd -m -g oinstall -G dba oracle  # Oracle用户,属oinstall主组、dba附加组
    passwd oracle      # 设置强密码
    usermod -a -G oinstall oracle  # 确保用户属oinstall组
    

    限制系统用户数量,删除不必要的默认账户(如admlpsync),降低攻击面。

  2. 权限与目录安全

    • Oracle安装目录(如/u01/app/oracle)及数据目录(如/u01/app/oracle/oradata)需归属正确:
      chown -R oracle:oinstall /u01  # 递归修改属主/组
      chmod -R 775 /u01              # 递归设置权限(所有者可读写执行,组可读执行)
      
    • 监听器配置目录(/u01/app/oracle/network/admin)需限制为Oracle用户访问:
      chown -R oracle:oinstall /u01/app/oracle/network/admin
      chmod -R 775 /u01/app/oracle/network/admin
      
    • 若启用SELinux,需设置正确上下文(参考Oracle官方文档):
      chcon -Rv --reference=/var/lib/oracle /u01/app/oracle  # 匹配Oracle默认上下文
      

    这些设置可防止未授权用户篡改Oracle文件。

  3. 内核参数优化
    编辑/etc/sysctl.conf,调整内核参数以提升性能与安全:

    fs.file-max = 6815744          # 最大文件描述符数
    kernel.sem = 250 32000 100 128 # 信号量参数
    net.ipv4.ip_local_port_range = 9000-65500  # 本地端口范围
    net.core.rmem_default = 262144 # 接收缓冲区默认大小
    net.core.wmem_default = 262144 # 发送缓冲区默认大小
    

    执行sysctl -p使配置生效。

  4. 防火墙与网络隔离

    • 使用firewalld替代iptables,仅开放必要端口(如Oracle监听端口1521、企业管理器端口1158):
      firewall-cmd --permanent --add-port=1521/tcp
      firewall-cmd --permanent --add-port=1158/tcp
      firewall-cmd --reload
      
    • 配置sqlnet.ora限制可信IP访问,避免非法IP连接:
      tcp.validnode_checking = YES
      tcp.invited_nodes = (192.168.1.100, 10.0.0.5)  # 仅允许指定IP访问
      

    关闭不必要的网络服务(如FTP、Telnet),减少攻击面。

二、Oracle数据库层面安全配置

  1. 身份鉴别与访问控制

    • 密码策略:修改PROFILE(如DEFAULT)设置密码复杂度:
      ALTER PROFILE DEFAULT LIMIT 
        PASSWORD_LIFE_TIME 90        -- 密码有效期90天
        PASSWORD_REUSE_TIME UNLIMITED -- 不允许重用旧密码
        PASSWORD_REUSE_MAX UNLIMITED  -- 无重用次数限制
        FAILED_LOGIN_ATTEMPTS 5      -- 连续失败5次锁定账户
        PASSWORD_LOCK_TIME 1/24      -- 锁定1小时
        PASSWORD_GRACE_TIME 10;      -- 密码过期前10天提醒
      
    • 最小权限原则:为用户分配仅满足业务需求的权限,避免使用SYSDBA权限执行非必要操作;限制DBA组用户数量(如仅保留Oracle管理员)。
  2. 数据安全

    • 数据加密
      • 传输加密:在sqlnet.ora中启用SSL/TLS,保护客户端与数据库之间的通信:
        sqlnet.encryption = REQUIRED
        sqlnet.crypto_checksums = REQUIRED
        
      • 存储加密:使用Oracle透明数据加密(TDE)加密表空间或列,防止数据泄露(需购买对应许可证)。
    • 审计功能:启用审计跟踪数据库活动,便于事后追溯:
      -- 启用审计
      ALTER SYSTEM SET audit_trail = 'DB' SCOPE=SPFILE;  -- 数据库审计
      ALTER SYSTEM SET audit_sys_operations = TRUE;     -- 审计SYS用户操作
      SHUTDOWN IMMEDIATE;
      STARTUP;
      -- 示例:审计SELECT操作
      AUDIT SELECT TABLE BY ACCESS;
      
      定期审查DBA_AUDIT_TRAIL视图中的审计记录。
  3. 监听器安全

    • 配置监听器日志级别(如set log_level 10),记录详细连接信息:
      lsnrctl set log_level 10
      lsnrctl status  # 查看监听器状态
      
    • 限制监听器启动权限,确保仅Oracle用户可操作:
      chown oracle:oinstall /u01/app/oracle/diag/tnslsnr/<hostname>/listener/trace/listener.log
      chmod 640 /u01/app/oracle/diag/tnslsnr/<hostname>/listener/trace/listener.log
      
      避免监听器被非法重启或篡改。

三、持续维护与监控

  1. 补丁与更新
    定期检查Oracle官方补丁(如PSU、CPU)及CentOS系统更新,及时修补已知安全漏洞(如Oracle季度补丁、CentOS安全公告)。

  2. 备份与恢复
    建立完善的备份策略(如RMAN全备+增量备),定期测试备份可恢复性,确保数据丢失时可快速恢复。

  3. 监控与应急响应
    使用监控工具(如Zabbix、Prometheus)跟踪Oracle性能指标(如CPU、内存、磁盘I/O)及系统日志(如/var/log/messagesalert.log),制定应急响应计划(如入侵检测、数据恢复流程),应对安全事件。

以上措施覆盖了Oracle在CentOS上的安全配置核心环节,需根据实际业务需求调整(如是否启用TDE、SSL证书配置),并定期审查安全策略的有效性。

0
看了该问题的人还看了