Oracle数据库在CentOS上的安全配置需覆盖操作系统层面、数据库层面及持续维护三大维度,以下是具体关键措施:
用户与组管理
创建专用Oracle用户及组,实现权限分离:
groupadd oinstall # 安装组
groupadd dba # DBA权限组
useradd -m -g oinstall -G dba oracle # Oracle用户,属oinstall主组、dba附加组
passwd oracle # 设置强密码
usermod -a -G oinstall oracle # 确保用户属oinstall组
限制系统用户数量,删除不必要的默认账户(如adm、lp、sync),降低攻击面。
权限与目录安全
/u01/app/oracle)及数据目录(如/u01/app/oracle/oradata)需归属正确:chown -R oracle:oinstall /u01 # 递归修改属主/组
chmod -R 775 /u01 # 递归设置权限(所有者可读写执行,组可读执行)
/u01/app/oracle/network/admin)需限制为Oracle用户访问:chown -R oracle:oinstall /u01/app/oracle/network/admin
chmod -R 775 /u01/app/oracle/network/admin
chcon -Rv --reference=/var/lib/oracle /u01/app/oracle # 匹配Oracle默认上下文
这些设置可防止未授权用户篡改Oracle文件。
内核参数优化
编辑/etc/sysctl.conf,调整内核参数以提升性能与安全:
fs.file-max = 6815744 # 最大文件描述符数
kernel.sem = 250 32000 100 128 # 信号量参数
net.ipv4.ip_local_port_range = 9000-65500 # 本地端口范围
net.core.rmem_default = 262144 # 接收缓冲区默认大小
net.core.wmem_default = 262144 # 发送缓冲区默认大小
执行sysctl -p使配置生效。
防火墙与网络隔离
firewalld替代iptables,仅开放必要端口(如Oracle监听端口1521、企业管理器端口1158):firewall-cmd --permanent --add-port=1521/tcp
firewall-cmd --permanent --add-port=1158/tcp
firewall-cmd --reload
sqlnet.ora限制可信IP访问,避免非法IP连接:tcp.validnode_checking = YES
tcp.invited_nodes = (192.168.1.100, 10.0.0.5) # 仅允许指定IP访问
关闭不必要的网络服务(如FTP、Telnet),减少攻击面。
身份鉴别与访问控制
PROFILE(如DEFAULT)设置密码复杂度:ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 90 -- 密码有效期90天
PASSWORD_REUSE_TIME UNLIMITED -- 不允许重用旧密码
PASSWORD_REUSE_MAX UNLIMITED -- 无重用次数限制
FAILED_LOGIN_ATTEMPTS 5 -- 连续失败5次锁定账户
PASSWORD_LOCK_TIME 1/24 -- 锁定1小时
PASSWORD_GRACE_TIME 10; -- 密码过期前10天提醒
SYSDBA权限执行非必要操作;限制DBA组用户数量(如仅保留Oracle管理员)。数据安全
sqlnet.ora中启用SSL/TLS,保护客户端与数据库之间的通信:sqlnet.encryption = REQUIRED
sqlnet.crypto_checksums = REQUIRED
-- 启用审计
ALTER SYSTEM SET audit_trail = 'DB' SCOPE=SPFILE; -- 数据库审计
ALTER SYSTEM SET audit_sys_operations = TRUE; -- 审计SYS用户操作
SHUTDOWN IMMEDIATE;
STARTUP;
-- 示例:审计SELECT操作
AUDIT SELECT TABLE BY ACCESS;
定期审查DBA_AUDIT_TRAIL视图中的审计记录。监听器安全
set log_level 10),记录详细连接信息:lsnrctl set log_level 10
lsnrctl status # 查看监听器状态
chown oracle:oinstall /u01/app/oracle/diag/tnslsnr/<hostname>/listener/trace/listener.log
chmod 640 /u01/app/oracle/diag/tnslsnr/<hostname>/listener/trace/listener.log
避免监听器被非法重启或篡改。补丁与更新
定期检查Oracle官方补丁(如PSU、CPU)及CentOS系统更新,及时修补已知安全漏洞(如Oracle季度补丁、CentOS安全公告)。
备份与恢复
建立完善的备份策略(如RMAN全备+增量备),定期测试备份可恢复性,确保数据丢失时可快速恢复。
监控与应急响应
使用监控工具(如Zabbix、Prometheus)跟踪Oracle性能指标(如CPU、内存、磁盘I/O)及系统日志(如/var/log/messages、alert.log),制定应急响应计划(如入侵检测、数据恢复流程),应对安全事件。
以上措施覆盖了Oracle在CentOS上的安全配置核心环节,需根据实际业务需求调整(如是否启用TDE、SSL证书配置),并定期审查安全策略的有效性。