一、操作系统层安全加固
oinstall用于安装、dba用于数据库管理)和用户(如oracle),并添加至对应组;清理DBA组中多余操作系统用户,仅保留必要账户。/etc、/root)的访问权限。$ORACLE_BASE/oradata、日志目录$ORACLE_HOME/network/log)设置750权限,所有者为oracle:oinstall;对核心配置文件(如listener.ora、sqlnet.ora)设置640权限。chattr +i /etc/passwd),防止关键系统文件被非法篡改。/etc/sysctl.conf调整内核参数,提升系统抗攻击能力:fs.file-max=6815744(最大文件描述符数)、kernel.shmmax=2147483648(共享内存最大大小)、net.ipv4.ip_local_port_range=9000-65500(本地端口范围)、net.ipv4.tcp_syncookies=1(防止SYN Flood攻击);执行sysctl -p使配置生效。telnet、ftp、sendmail),减少攻击面;仅开启Oracle必要服务(如OracleServiceORCL、OracleOraDB19Home1TNSListener)。iptables/firewalld)仅开放Oracle监听端口(默认1521)和SSH端口(建议修改为10000+),限制非必需网络访问。二、Oracle数据库层安全加固
PROFILE(如DEFAULT),启用密码复杂度检查:设置PASSWORD_VERIFY_FUNCTION=verify_function,要求密码长度≥6位,包含数字、小写字母、大写字母、特殊字符中的至少2类;设置密码有效期≤90天(PASSWORD_LIFE_TIME=90)、失败登录尝试次数≤5次(FAILED_LOGIN_ATTEMPTS=5)。REMOTE_LOGIN_PASSWORDFILE=NONE;限制DBA组成员数量,仅保留Oracle安装用户。ALTER SYSTEM SET O7_DICTIONARY_ACCESSIBILITY=FALSE SCOPE=SPFILE;重启数据库使配置生效。ALTER SYSTEM SET AUDIT_TRAIL='DB,EXTENDED' SCOPE=SPFILE;重启数据库后,可通过DBA_AUDIT_TRAIL视图查询审计日志。EMPLOYEE)的关键操作(如SELECT、UPDATE)记录详细信息,执行:BEGIN DBMS_FGA.ADD_POLICY( object_schema => 'HR', object_name => 'EMPLOYEE', policy_name => 'EMP_SALARY_AUDIT', audit_condition => NULL, audit_column => 'SALARY', enable => TRUE, statement_types => 'SELECT,UPDATE' ); END; $ORACLE_HOME/network/admin/sqlnet.ora文件,设置:SQLNET.ENCRYPTION_SERVER=REQUIRED(服务器端强制加密)、SQLNET.ENCRYPTION_TYPES_SERVER=(AES256)(加密算法)、SQLNET.CRYPTO_CHECKSUM_SERVER=REQUIRED(完整性校验);重启监听器使配置生效。lsnrctl→set current_listener LISTENER→change_password→输入新旧密码;保存配置(save_config)。$ORACLE_HOME/network/admin/sqlnet.ora文件,设置:TCP.VALIDNODE_CHECKING=YES(启用IP检查)、TCP.INVITED_NODES=('192.168.1.10','10.0.0.5')(允许访问的IP列表);重启监听器。ALTER SYSTEM SET PROCESSES=200 SCOPE=SPFILE;重启数据库。/etc/audit/audit.rules添加规则:-w /u01/app/oracle/product/19.0.0/dbhome_1/bin/oracle -p x -k oracle_exec(监控Oracle启动)、-w $ORACLE_HOME/diag/rdbms/orcl/trace -p rwxa -k oracle_trace(监控诊断日志)。三、持续维护与监控
CONFIGURE ENCRYPTION FOR DATABASE ON);将备份介质离线存储(如磁带、异地存储),定期测试备份恢复流程。