Debian系统下Oracle数据库安全加固清单

一 系统与服务加固
- 保持系统与依赖更新:执行sudo apt update && sudo apt upgrade -y,及时修补Debian与依赖包的安全漏洞。
- 最小权限与专用账户:仅使用oracle操作系统账户运行数据库,禁止以root直接执行Oracle相关操作;按需创建oinstall、dba等组并严格授权。
- 资源与内核参数:为Oracle设置文件句柄、进程数、堆栈与内存锁定等资源限制;按实例规格调整sysctl内核参数(如fs.file-max、kernel.sem、kernel.shmmni、kernel.shmall、kernel.shmmax、fs.aio-max-nr、net.core.rmem_default/wmem_default、net.core.rmem_max/wmem_max、net.ipv4.ip_local_port_range),并使其生效。
- 关闭不必要服务与特性:禁用未使用的服务(如FTP、Telnet),关闭ZeroConf(A vahi)避免自动服务发布;按Oracle建议关闭透明大页(THP)与NUMA,在**/etc/default/grub添加transparent_hugepage=never numa=off后执行update-grub && reboot**。
- 审计与监控:启用系统日志与登录审计,部署Fail2ban对监听端口(默认1521)进行暴力破解防护,定期查看**/var/log/syslog与Oracle的alert_.log**、trace文件。
二 网络与访问控制
- 防火墙最小化放行:仅开放必要端口(如1521/TCP用于监听,及22/TCP用于SSH),其余默认拒绝;可按需细化来源网段。
- SSH安全:强制使用SSH密钥认证,禁用root远程登录,限制可登录用户与来源IP。
- 监听与本地访问:仅允许受控主机连接至监听;必要时限制本地IPC/ORACLE_SID访问,避免非授权本地提权。
- 传输加密:在客户端与服务器启用TLS/SSL对数据进行加密传输,防止明文嗅探与中间人攻击。
三、数据库账户与数据安全防护
- 强密码与PROFILE:通过Oracle PROFILE设置密码复杂度、有效期、重用限制等,例如创建strong_pwd并分配给用户;注意先创建或启用合适的verify_function(如verify_function_11G)。
- 权限最小化:遵循最小权限原则授予SYSDBA/SYSOPER等特权;按需创建应用专用账户与角色,分离运维与业务权限。
- 敏感数据加密:对敏感表或表空间启用TDE(Transparent Data Encryption),保护数据静态安全,配置密钥存储与轮换策略。
- 审计与告警:启用数据库审计(如登录/关键DDL/DML),集中采集与告警,定期审计DBA_USERS、DBA_SYS_PRIVS、DBA_ROLE_PRIVS等权限视图。
四 备份恢复与补丁管理
- 备份策略:使用RMAN制定定期全量/增量与归档日志备份策略,示例:
- RMAN> BACKUP DATABASE TO DEVICE TYPE DISK FORMAT ‘/backup/orcl_%U.bak’;
- RMAN> BACKUP ARCHIVELOG ALL DELETE INPUT;
将备份存放于异地/受控介质,定期校验与演练恢复。
- 补丁管理:持续关注Oracle安全公告,及时安装PSU/CPU等补丁;使用OPatch进行补丁应用,先在测试环境验证再上线。
- 变更与回退:任何安全加固与补丁上线需有变更单、回退方案与窗口期,并在变更前后进行备份与验证。
五 快速检查清单