一、操作系统层安全加固
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
);定期测试备份恢复(如每月一次),确保备份有效性。