温馨提示×

centos下oracle安全设置方法

小樊
36
2025-12-27 06:01:22
栏目: 云计算

CentOS 下 Oracle 数据库安全设置清单

一 系统加固与网络边界

  • 保持 SELinux 为 enforcing,仅对 Oracle 相关进程做细化策略;如必须放宽,也应使用 targeted 策略而非全局关闭。
  • 使用 firewalld 仅放行必要端口(如 1521/TCP),并关闭不必要的服务与端口,减少攻击面。
  • 操作系统与依赖保持更新:执行 yum update 及时修补漏洞;安装必要依赖(如 libaio、libaio-devel、sysstat、unixODBC 等)以确保组件稳定与安全。
  • 仅使用专用系统账户运行 Oracle,禁止以 root 直接启动监听或实例。

二 内核与资源限制

  • 调整内核参数(/etc/sysctl.conf),示例值可按环境微调:
    • fs.aio-max-nr = 1048576
    • fs.file-max = 6815744
    • kernel.shmall = 2097152
    • kernel.shmmax = 物理内存的约一半(如 8GB 内存可设 4294967296
    • kernel.shmmni = 4096
    • kernel.sem = 250 32000 100 128
    • net.ipv4.ip_local_port_range = 9000 65500
    • net.core.rmem_default = 262144;net.core.rmem_max = 4194304
    • net.core.wmem_default = 262144;net.core.wmem_max = 1048576
      执行 sysctl -p 使配置生效。
  • 配置资源限制(/etc/security/limits.conf):
    • oracle soft nproc 2047;oracle hard nproc 16384
    • oracle soft nofile 1024;oracle hard nofile 65536
    • oracle soft stack 10240
      /etc/pam.d/login 加入 session required pam_limits.so 以加载限制。
  • 目录与权限:将 $ORACLE_BASE$ORACLE_HOME、数据目录(如 /data/oracle)属主设为 oracle:oinstall,权限最小化(如 0750/0640)。

三 数据库账户与权限最小化

  • 遵循 最小权限原则:仅授予完成工作所需权限;谨慎授予 SYS 级别连接与高权操作;优先通过自定义角色聚合权限,避免直接授予强大系统权限给普通用户。
  • 清理 PUBLIC 的默认权限:撤销不必要的 EXECUTE 等公共授权,降低“低权用户借 PUBLIC 提升权限”的风险。
  • 启用 数据字典保护:设置 O7_DICTIONARY_ACCESSIBILITY = FALSE,防止非授权用户通过数据字典基表直接访问敏感元数据。
  • 密码策略与复杂度:运行 @?/rdbms/admin/utlpwdmg.sql 创建校验函数,并在 PROFILE 中设置 FAILED_LOGIN_ATTEMPTS、PASSWORD_LIFE_TIME、PASSWORD_LOCK_TIME、PASSWORD_REUSE_MAX、PASSWORD_VERIFY_FUNCTION 等,强制复杂度与定期更换。
  • 连接安全:如业务允许,将 REMOTE_LOGIN_PASSWORDFILE 设为 NONE 以禁止远程使用口令文件登录(需重启实例);确需口令文件时,妥善保管并限制可写权限。

四 网络与传输安全

  • 监听与访问白名单:在 $ORACLE_HOME/network/admin/sqlnet.ora 启用
    • tcp.validnode_checking = yes
    • tcp.invited_nodes = (192.168.1.0/24, 10.0.0.10)
      执行 lsnrctl reload 使配置生效,仅允许受信网段/主机连接。
  • 空闲连接探测:在 sqlnet.ora 设置 SQLNET.EXPIRE_TIME = 15(单位:分钟),定期检测并清理半开/僵死连接。
  • 传输加密:在 sqlnet.ora 启用 SQLNET.ENCRYPTION = required(必要时配合 SQLNET.CRYPTO_CHECKSUM),对客户端与数据库之间的通信进行加密,防止窃听与篡改。

五 审计监控与备份恢复

  • 启用审计:
    • 标准审计:ALTER SYSTEM SET audit_trail = DB, EXTENDED
    • 关键系统操作:ALTER SYSTEM SET audit_sys_operations = TRUE
      定期导出与分析审计记录,关注异常登录、权限变更与敏感数据访问。
  • 登录审计与基线:可创建 AFTER LOGON 触发器记录登录时间、用户等,用于安全审计与合规检查(注意高并发场景的性能影响)。
  • 备份与应急:建立覆盖全库与归档的 RMAN 备份策略,定期演练恢复流程;变更前后进行备份,保留应急回滚方案。

0