Ubuntu Oracle 安全设置指南
Ubuntu环境下Oracle数据库安全设置指南
在Ubuntu系统上部署Oracle数据库时,需通过操作系统加固、Oracle数据库配置、网络安全防护、数据加密、监控审计等多层措施,全面提升系统安全性,防范未授权访问、数据泄露及恶意攻击。
一、操作系统级安全设置
1. 系统更新与补丁管理
定期更新Ubuntu系统和Oracle数据库软件包,修复已知安全漏洞。执行以下命令更新系统:
sudo apt-get update &
&
sudo apt-get upgrade -y
建议安装unattended-upgrades
包,配置自动更新策略,确保系统及时获取安全补丁。
2. 用户与权限管理
- 禁用root远程登录:编辑
/etc/ssh/sshd_config
文件,设置PermitRootLogin no
,禁止root账户通过SSH远程登录。 - 创建专用Oracle用户:新建
oracle
用户并加入oinstall
、dba
等组,限制其操作范围:sudo groupadd oinstall dba sudo useradd -g oinstall -G dba -s /bin/bash oracle sudo passwd oracle # 设置强密码
- 密码策略强化:通过
/etc/login.defs
文件设置密码有效期(如PASS_MAX_DAYS 90
)、最小长度(如PASS_MIN_LEN 12
),并使用chage
命令强制用户定期修改密码。
3. 文件与目录权限控制
Oracle安装目录(如/u01/app/oracle/product/19.3.0/dbhome_1
)和数据目录(如/u01/oradata
)需严格限制访问权限:
sudo chown -R oracle:oinstall /u01/app/oracle
sudo chmod -R 750 /u01/app/oracle # 确保只有owner和group可读写执行
配置文件(如/etc/hosts.allow
、/etc/passwd
)权限设为644
,避免非法修改。
二、Oracle数据库安全配置
1. 用户角色与口令管理
- 最小权限原则:为应用用户分配仅满足业务需求的权限(如
SELECT
、INSERT
),避免授予DBA
等高权限角色。 - 特殊账户保护:修改
SYS
、SYSTEM
账户的默认密码(默认为change_on_install
),禁用未使用的默认账户(如SCOTT
)。 - 密码策略强化:通过
ALTER PROFILE
命令设置密码复杂度、有效期及锁定策略:
强制所有用户使用强密码(包含大小写字母、数字及特殊字符)。ALTER PROFILE DEFAULT LIMIT PASSWORD_LENGTH 12 PASSWORD_LIFE_TIME 90 PASSWORD_LOCK_TIME 1 PASSWORD_REUSE_MAX 5 PASSWORD_STRENGTH MEDIUM;
2. 数据保护策略
- 定期备份:采用逻辑备份(
expdp
/impdp
)与物理备份(RMAN)相结合的方式,备份数据至加密存储介质,并定期测试备份可恢复性。 - 数据加密:启用Oracle透明数据加密(TDE)对敏感字段(如身份证号、银行卡号)加密,防止数据泄露;通过SSL/TLS加密客户端与数据库之间的通信,避免数据传输过程中被窃取。
3. 审计机制启用
激活Oracle审计功能,记录用户操作(如登录、数据修改、权限变更),便于追溯异常行为:
ALTER SYSTEM SET audit_trail = DB, EXTENDED SCOPE=SPFILE;
-- 开启数据库审计
ALTER SYSTEM SET audit_sys_operations = TRUE SCOPE=SPFILE;
# 审计SYS账户操作
重启数据库使配置生效,通过DBA_AUDIT_TRAIL
视图查看审计日志。
三、网络安全防护
1. 防火墙配置
使用UFW
(Uncomplicated Firewall)限制系统访问,仅开放必要端口(如SSH的22端口、Oracle监听端口1521):
sudo apt-get install ufw -y
sudo ufw allow 22/tcp # SSH
sudo ufw allow 1521/tcp # Oracle监听端口
sudo ufw enable # 启用防火墙
通过iptables
进一步限制对Oracle端口的访问,仅允许受信任IP地址连接。
2. SSH安全优化
修改SSH默认端口(如65534),禁用密码认证,仅允许密钥认证,降低SSH暴力破解风险:
sudo nano /etc/ssh/sshd_config
修改以下参数:
Port 65534
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
重启SSH服务使配置生效:sudo systemctl restart sshd
。
3. 网络参数调优
通过sysctl
配置限制本地端口范围、禁用TCP SACK机制(防范DoS攻击):
echo "net.ipv4.ip_local_port_range = 1024 65000" >
>
/etc/sysctl.conf
echo "net.ipv4.tcp_sack = 0" >
>
/etc/sysctl.conf
sysctl -p # 应用配置
减少攻击面,提升网络安全性。
四、监控与审计
1. 系统日志监控
定期检查Ubuntu系统日志(/var/log/syslog
、/var/log/auth.log
)和Oracle告警日志($ORACLE_BASE/diag/rdbms/<
db_name>
/<
instance_name>
/trace/alert_<
instance_name>
.log
),监控异常登录、权限变更等行为。使用journalctl
命令实时查看系统日志:
sudo tail -f /var/log/syslog
sudo journalctl -u sshd -f # 实时监控SSH日志
2. 安全监控工具
部署Zabbix、Nagios等监控工具,实时监控Oracle数据库的性能指标(如CPU使用率、内存占用、连接数)和系统资源状态,及时预警异常情况。
五、其他安全措施
- 修改默认配置:修改Oracle监听器端口(默认1521)、服务名(默认ORCL),减少被扫描攻击的风险;禁用不必要的Oracle服务(如自动工作负载存储库AWR、Enterprise Manager OEM),降低系统负载。
- 关闭自动启动服务:通过
systemctl disable
命令关闭不需要的系统服务(如Apache、MySQL),减少潜在攻击面。
以上安全设置需根据实际业务需求和环境调整,定期复查并更新安全策略,确保Oracle数据库在Ubuntu环境中的安全性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Oracle 安全设置指南
本文地址: https://pptw.com/jishu/722724.html