一、操作系统层安全加固
oinstall用于安装、dba用于数据库管理)及用户(如oracle),并加入对应组;清理DBA组中多余操作系统用户,仅保留必要账户。/etc/security/limits.conf限制Oracle用户资源使用(如oraclesoft nproc 2047、oraclehard nproc 16384、oraclesoft nofile 1024、oraclehard nofile 65536),防止资源滥用。/etc/redhat-release)隐藏真实版本信息。fs.file-max=6815744、net.ipv4.ip_local_port_range=9000-65500)增强系统安全性,通过sysctl -p使配置生效。$ORACLE_HOME、数据文件目录、归档日志目录)设置合理权限(如oracle:oinstall拥有读写执行,其他用户无访问权限);对核心系统文件(如/etc/passwd、/etc/shadow)添加不可更改标志(chattr +i)。二、Oracle数据库层安全配置
ALTER SYSTEM SET O7_DICTIONARY_ACCESSIBILITY=FALSE,限制仅SYSDBA可访问数据字典基础表。userdel命令移除多余用户,仅保留Oracle安装专用账户。PROFILE(如DEFAULT)配置PASSWORD_VERIFY_FUNCTION,要求密码长度≥6位、包含数字/字母/特殊字符中的至少2类,设置PASSWORD_LIFE_TIME=90(密码有效期90天)、FAILED_LOGIN_ATTEMPTS=5(5次失败锁定账户)、PASSWORD_LOCK_TIME=1/24(锁定1小时)。SPFILE参数REMOTE_LOGIN_PASSWORDFILE=NONE,禁止远程SYSDBA连接。lsnrctl命令为监听器设置密码(set current_listener LISTENER; change_password),防止未授权监听器配置修改。$ORACLE_HOME/network/admin/sqlnet.ora,设置tcp.validnode_checking=YES、tcp.invited_nodes=(合法IP列表),拒绝非授权IP连接。sqlnet.ora中配置sqlnet.encryption=REQUIRED(强制加密)、sqlnet.crypto_checksum=REQUIRED(数据完整性校验),保护客户端与数据库间通信。ALTER SYSTEM SET audit_trail='DB,EXTENDED' SCOPE=SPFILE(数据库审计)并重启数据库,记录用户操作(如登录、DDL、DML);如需操作系统级审计,可设置为OS。DBMS_FGA.ADD_POLICY,记录特定操作(如SELECT、UPDATE)的详细信息(如SQL语句、执行时间、用户)。USERS)或列(如身份证号、手机号)加密,执行ALTER TABLESPACE users ENCRYPTION或ALTER TABLE customer MODIFY (phone_number ENCRYPT),防止数据泄露时被直接读取。三、持续安全运维
/var/log/secure)和Oracle审计日志($ORACLE_BASE/diag/rdbms/<db_name>/<instance>/trace/audit.log),使用grep、awk等工具分析异常登录(如频繁失败尝试)、未授权访问(如非工作时间查询敏感表)。BACKUP DATABASE PLUS ARCHIVELOG);定期测试备份恢复(如每月一次),确保备份有效性。