如何在Linux上配置Oracle安全策略
导读:1. 操作系统级安全加固 最小化软件与服务:安装Oracle数据库时,仅选择必要的软件包(如oracle-database-server),卸载无关组件(如X-Windows、CUPS打印服务),减少攻击面。通过Kickstart自动化安...
1. 操作系统级安全加固
- 最小化软件与服务:安装Oracle数据库时,仅选择必要的软件包(如
oracle-database-server
),卸载无关组件(如X-Windows、CUPS打印服务),减少攻击面。通过Kickstart自动化安装或手动rpm -e
卸载无用包。 - 调整内核参数:修改
/etc/sysctl.conf
优化网络与内存安全,例如:fs.file-max=6815744
(增大文件描述符上限)、kernel.sem=250 32000 100 128
(调整信号量参数)、net.ipv4.ip_local_port_range=9000-65500
(限制本地端口范围)。执行sysctl -p
使配置生效。 - 强化用户与权限管理:创建专用Oracle用户组(
oinstall
用于安装、dba
用于数据库管理),并添加Oracle用户(useradd -g oinstall -G dba oracle
)。设置强密码(passwd oracle
),并通过/etc/security/limits.conf
限制资源使用:oracle hard nproc 16384
(最大进程数)、oracle hard nofile 65536
(最大文件句柄数)。
2. Oracle数据库核心安全配置
- 数据字典保护:执行
ALTER SYSTEM SET O7_DICTIONARY_ACCESSIBILITY=FALSE SCOPE=SPFILE;
,禁止非SYSDBA用户访问数据字典基础表(如TAB$
、COL$
),重启数据库使设置生效。 - 口令策略强化:修改
PROFILE
(通常为DEFAULT
)设置口令复杂度:ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION verify_function PASSWORD_LIFE_TIME 90 PASSWORD_REUSE_TIME 0 FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 1/24;
。其中verify_function
需自定义(或使用Oracle内置函数),要求口令包含大小写字母、数字、特殊字符中的至少2类,长度≥6位。 - 审计功能开启:启用数据库审计以跟踪非法访问,执行
ALTER SYSTEM SET audit_trail='DB,EXTENDED' SCOPE=SPFILE;
(记录到数据库),或AUDIT_TRAIL='OS'
(记录到系统日志)。重启数据库后,可通过SELECT * FROM DBA_AUDIT_TRAIL;
查看审计记录。 - 监听器安全配置:为监听器设置密码(防止未授权重启/修改),执行
lsnrctl
进入命令行,依次输入:set current_listener LISTENER
→change_password
(输入旧密码与新密码)。修改$ORACLE_HOME/network/admin/listener.ora
,添加SECURE_REGISTER=< listener_name>
限制监听器注册。 - 可信IP访问控制:编辑
$ORACLE_HOME/network/admin/sqlnet.ora
,添加tcp.validnode_checking=YES
(启用IP检查)和tcp.invited_nodes=('192.168.1.10','10.0.0.5')
(允许访问的IP列表),重启监听器使配置生效。
3. 网络与传输安全防护
- 防火墙规则配置:使用
firewalld
或iptables
限制访问,仅开放数据库端口(默认1521)和SSH端口(默认22)。例如,firewall-cmd --permanent --add-port=1521/tcp
→firewall-cmd --reload
。建议将数据库服务器置于DMZ后,通过中间件(如WebLogic)访问。 - SSH安全优化:禁用root远程登录(
/etc/ssh/sshd_config
中设置PermitRootLogin no
),修改默认SSH端口(如Port 2222
),启用密钥认证(PubkeyAuthentication yes
)并禁用密码认证(PasswordAuthentication no
)。重启SSH服务(systemctl restart sshd
)。 - 网络传输加密:通过Oracle高级安全选件(ASE)启用SSL/TLS加密,编辑
$ORACLE_HOME/network/admin/sqlnet.ora
,添加sqlnet.encryption_server=REQUIRED
(服务器端强制加密)、sqlnet.encryption_types_server=(AES256)
(加密算法),客户端配置需同步。
4. 数据安全保护
- 透明数据加密(TDE):对敏感表空间或列进行加密,执行
ALTER TABLESPACE USERS ENCRYPTION USING 'AES256' ONLINE;
加密表空间,或通过CREATE TABLE emp (id NUMBER, name VARCHAR2(50) ENCRYPT) ENCRYPTION USING 'AES256';
加密列。需先设置钱包(ADMINISTER KEY MANAGEMENT CREATE KEYSTORE
)。 - 备份加密与恢复:使用
RMAN
加密备份,执行CONFIGURE ENCRYPTION FOR DATABASE ON;
开启数据库级加密,备份时自动加密。测试恢复流程(RESTORE DATABASE FROM TAG 'weekly_backup'
→RECOVER DATABASE
),确保备份可用性。
5. 监控与维护管理
- 日志审计与监控:定期检查系统日志(
/var/log/secure
查看SSH登录记录)、Oracle审计日志(DBA_AUDIT_TRAIL
),使用grep
或awk
筛选异常操作(如频繁失败登录FAILED_LOGIN_ATTEMPTS
)。部署SIEM工具(如Splunk)实现实时告警。 - 补丁与更新管理:订阅Oracle Linux安全公告(
yum updateinfo list security
),定期应用CPU(Critical Patch Update)和PSU(Patch Set Update)补丁。使用yum update --security
仅更新安全补丁,减少系统停机时间。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Linux上配置Oracle安全策略
本文地址: https://pptw.com/jishu/719902.html