Linux Oracle如何安全设置
导读:一、操作系统层安全配置 用户与组管理:创建专用Oracle用户(如oracle)及组(如oinstall、dba),将oracle用户加入dba(数据库管理员)和oinstall(安装权限)组;清理DBA组中多余操作系统用户,仅保留必要的...
一、操作系统层安全配置
- 用户与组管理:创建专用Oracle用户(如
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数据库层安全加固
- 数据字典保护:执行SQL命令
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,限制外部网络对数据库的非法访问。 - SSH安全加固:修改SSH默认端口(如
Port 2222),降低被自动化工具扫描到的概率;禁用root远程登录(PermitRootLogin no),使用普通用户(如oracle)通过su -切换至root;启用公钥认证(PubkeyAuthentication yes),禁用密码认证(PasswordAuthentication no),防止密码暴力破解。
四、审计与监控
- 数据库审计启用:执行SQL命令
ALTER SYSTEM SET AUDIT_TRAIL='DB,EXTENDED' SCOPE=SPFILE;并重启数据库,开启审计功能(记录用户登录、数据修改、权限变更等操作);定期查看审计日志(DBA_AUDIT_TRAIL视图),及时发现异常行为(如未授权访问、频繁失败登录)。 - 系统日志监控:定期检查
/var/log/secure(Linux登录日志)、/var/log/messages(系统日志),监控异常登录尝试(如来自陌生IP的登录)、权限提升操作(如su -命令的使用);配置实时日志监控工具(如auditd),通过邮件或短信通知管理员异常事件。
五、数据安全保护
- 透明数据加密(TDE):使用Oracle TDE功能对敏感表空间(如
USERS)、列(如CREDIT_CARD)进行加密,执行ALTER TABLESPACE USERS ENCRYPTION ENABLE;或ALTER TABLE employees MODIFY (salary ENCRYPT);,防止数据在存储介质(如磁盘)泄露时被窃取。 - 备份与恢复策略:制定定期备份计划(每日增量备份、每周全量备份),使用
RMAN工具备份数据库(RMAN> BACKUP DATABASE PLUS ARCHIVELOG;);加密备份数据(通过RMAN的ENCRYPTION选项),将备份介质离线存储(如磁带库),定期测试备份恢复流程(如每月一次),确保数据可恢复性。
六、持续维护与更新
- 补丁管理:定期检查Oracle官方安全公告(如My Oracle Support),及时安装操作系统(如CentOS的
yum update)与Oracle数据库补丁(如PSU、CPU),修复已知安全漏洞(如SQL注入、缓冲区溢出),降低被攻击的风险。 - 安全评估:使用Oracle Database Security Assessment Tool(DBSAT)定期扫描数据库,识别安全配置弱点(如未启用的审计、弱口令),生成整改报告并落实修复措施;定期进行渗透测试(如使用Metasploit),模拟黑客攻击,验证安全措施的有效性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Oracle如何安全设置
本文地址: https://pptw.com/jishu/733429.html
