一、操作系统层安全配置
oracle)及组(如oinstall、dba),将oracle用户加入dba(数据库管理员)和oinstall(安装权限)组;清理DBA组中多余操作系统用户,仅保留必要的Oracle管理账户,遵循最小权限原则。/etc/security/limits.conf文件,限制Oracle用户的系统资源使用(如进程数、文件描述符),例如:oraclesoft nproc 2047(软限制)、oraclehard nproc 16384(硬限制)、oraclesoft nofile 1024(软文件描述符限制)、oraclehard nofile 65536(硬文件描述符限制),防止资源滥用。/etc/redhat-release文件为标准化标识(如redhat-76),避免泄露敏感系统信息;编辑/etc/sysctl.conf调整内核参数(如fs.file-max=6815744提升文件句柄上限、net.ipv4.ip_local_port_range=9000-65500规范临时端口范围),增强系统稳定性与安全性,执行sysctl -p使配置生效。二、Oracle数据库层安全加固
ALTER SYSTEM SET O7_DICTIONARY_ACCESSIBILITY=FALSE SCOPE=SPFILE;并重启数据库,禁用普通用户直接访问数据字典基础表(如SYS.USER$),仅允许SYSDBA用户访问,防止敏感元数据泄露。CONNECT(登录)、RESOURCE(创建对象)权限;DBA用户授予DBA角色,但避免使用WITH ADMIN OPTION(防止权限随意传递)。定期审查用户权限(通过DBA_SYS_PRIVS、DBA_ROLE_PRIVS视图),回收不再需要的权限。PROFILE(如DEFAULT)设置口令复杂度与生命周期:PASSWORD_VERIFY_FUNCTION=verify_function(要求包含大小写字母、数字、特殊字符中的至少两类)、PASSWORD_LIFE_TIME=90(口令有效期90天)、FAILED_LOGIN_ATTEMPTS=5(连续输错5次锁定账户)、PASSWORD_LOCK_TIME=1/24(锁定1小时),编辑sqlnet.ora添加SQLNET.EXPIRE_TIME=10(每10分钟验证连接有效性),防止暴力破解与闲置连接风险。lsnrctl命令为监听器设置密码(SET CURRENT_LISTENER LISTENER; CHANGE_PASSWORD),防止未授权修改监听器配置;编辑listener.ora限制监听端口范围(如PORT=1521),避免使用默认端口(1521)降低被扫描风险。sqlnet.ora文件,启用IP白名单机制:tcp.validnode_checking=YES(开启节点验证)、tcp.invited_nodes=(192.168.1.10,10.0.0.5)(仅允许指定IP访问),拒绝非法IP的连接请求;配置SQLNET.ENCRYPTION=REQUIRED(强制网络传输加密),保护数据在传输过程中的保密性。三、网络安全防护
firewalld或iptables配置防火墙,仅开放Oracle必要端口(如1521/TCP、1158/TCP(企业管理器)),关闭其他无关端口;例如firewall-cmd --permanent --add-port=1521/tcp、firewall-cmd --reload,限制外部网络对数据库的非法访问。Port 2222),降低被自动化工具扫描到的概率;禁用root远程登录(PermitRootLogin no),使用普通用户(如oracle)通过su -切换至root;启用公钥认证(PubkeyAuthentication yes),禁用密码认证(PasswordAuthentication no),防止密码暴力破解。四、审计与监控
ALTER SYSTEM SET AUDIT_TRAIL='DB,EXTENDED' SCOPE=SPFILE;并重启数据库,开启审计功能(记录用户登录、数据修改、权限变更等操作);定期查看审计日志(DBA_AUDIT_TRAIL视图),及时发现异常行为(如未授权访问、频繁失败登录)。/var/log/secure(Linux登录日志)、/var/log/messages(系统日志),监控异常登录尝试(如来自陌生IP的登录)、权限提升操作(如su -命令的使用);配置实时日志监控工具(如auditd),通过邮件或短信通知管理员异常事件。五、数据安全保护
USERS)、列(如CREDIT_CARD)进行加密,执行ALTER TABLESPACE USERS ENCRYPTION ENABLE;或ALTER TABLE employees MODIFY (salary ENCRYPT);,防止数据在存储介质(如磁盘)泄露时被窃取。RMAN工具备份数据库(RMAN> BACKUP DATABASE PLUS ARCHIVELOG;);加密备份数据(通过RMAN的ENCRYPTION选项),将备份介质离线存储(如磁带库),定期测试备份恢复流程(如每月一次),确保数据可恢复性。六、持续维护与更新
yum update)与Oracle数据库补丁(如PSU、CPU),修复已知安全漏洞(如SQL注入、缓冲区溢出),降低被攻击的风险。